SpnEndpointIdentity Clase

Definición

Representa un nombre entidad de seguridad (SPN) para una identidad cuando el enlace utiliza Kerberos.Represents a service principal name (SPN) for an identity when the binding uses Kerberos.

public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
    inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
Herencia
SpnEndpointIdentity

Ejemplos

El código siguiente muestra una manera común de crear una instancia de esta clase.The following code shows one common way to create an instance of this class.

static EndpointIdentity CreateIdentity()
 {
     WindowsIdentity self = WindowsIdentity.GetCurrent();
     SecurityIdentifier sid = self.User;

     EndpointIdentity identity = null;

     if (sid.IsWellKnown(WellKnownSidType.LocalSystemSid) ||
         sid.IsWellKnown(WellKnownSidType.NetworkServiceSid) ||
         sid.IsWellKnown(WellKnownSidType.LocalServiceSid))
     {
         identity = EndpointIdentity.CreateSpnIdentity(
             String.Format(CultureInfo.InvariantCulture, "host/{0}", GetMachineName()));
     }
     else
     {
         // Need an UPN string here
         string domain = GetPrimaryDomain();
         if (domain != null)
         {
             string[] split = self.Name.Split('\\');
             if (split.Length == 2)
             {
                 identity = EndpointIdentity.CreateUpnIdentity(split[1] + "@" + domain);
             }
         }
     }

     return identity;
 }
Private Shared Function CreateIdentity() As EndpointIdentity
     Dim self As WindowsIdentity = WindowsIdentity.GetCurrent()
     Dim sid As SecurityIdentifier = self.User

     Dim identity As EndpointIdentity = Nothing

     If sid.IsWellKnown(WellKnownSidType.LocalSystemSid) OrElse sid.IsWellKnown(WellKnownSidType.NetworkServiceSid) OrElse sid.IsWellKnown(WellKnownSidType.LocalServiceSid) Then
         identity = EndpointIdentity.CreateSpnIdentity(String.Format(CultureInfo.InvariantCulture, "host/{0}", GetMachineName()))
     Else
         ' Need an UPN string here
         Dim domain As String = GetPrimaryDomain()
         If domain IsNot Nothing Then
             Dim split() As String = self.Name.Split("\"c)
             If split.Length = 2 Then
                 identity = EndpointIdentity.CreateUpnIdentity(split(1) & "@" & domain)
             End If
         End If
     End If

     Return identity
End Function

Comentarios

SPN es el nombre por el que un cliente identifica de manera unívoca una instancia de un servicio.An SPN is the name by which a client uniquely identifies an instance of a service. Si instala varias instancias de un servicio en equipos a lo largo de un bosque, cada instancia debe tener su propio SPN.If you install multiple instances of a service on computers throughout a forest, each instance must have its own SPN. Una instancia de servicio determinada puede tener varios SPN si hay varios nombres que los clientes pueden usar para la autenticación.A given service instance can have multiple SPNs if there are multiple names that clients might use for authentication.

Cuando un cliente desea conectarse a un servicio, busca una instancia del servicio, crea un SPN para esa instancia y establece la identidad en SpnEndpointIdentity.When a client wants to connect to a service, it locates an instance of the service, composes an SPN for that instance, and sets the identity to a SpnEndpointIdentity. Se comprobará si el mensaje es para ese servicio.A check will be made that the message is intended for that service.

Los tres modos de autenticación utilizados con Kerberos son:The three authentication modes used under Kerberos are:

  • SSPINegotiateSSPINegotiate

  • KerberosKerberos

  • KerberosOverTransportKerberosOverTransport.

Constructores

SpnEndpointIdentity(Claim)

Inicializa una nueva instancia de SpnEndpointIdentity con la notificación de identidad especificada.Initializes a new instance of SpnEndpointIdentity with the specified identity claim.

SpnEndpointIdentity(String)

Inicializa una nueva instancia de SpnEndpointIdentity con el nombre de entidad de seguridad de servicio especificado (SPN).Initializes a new instance of SpnEndpointIdentity with the specified service principal name (SPN).

Propiedades

IdentityClaim

Obtiene la notificación de identidad que corresponde a la identidad.Gets the identity claim that corresponds to the identity.

(Heredado de EndpointIdentity)
SpnLookupTime

Especifica la hora máxima permitida para buscar el nombre de entidad de seguridad de servicio (SPN).Specifies the maximum time allowed to look up the service principal name (SPN).

Métodos

Equals(Object)

Devuelve un valor que determina si un objeto especificado equivale al objeto de identidad actual o si tienen propiedades de seguridad equivalentes.Returns a value that determines whether a specified object is equal to the current identity object or if they have equal security properties.

(Heredado de EndpointIdentity)
GetHashCode()

Proporciona un código hash para la instancia actual de la identidad.Provides a hash code for the current instance of the identity.

(Heredado de EndpointIdentity)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
Initialize(Claim)

Inicializa una EndpointIdentity con la notificación especificada.Initializes an EndpointIdentity with the specified claim.

(Heredado de EndpointIdentity)
Initialize(Claim, IEqualityComparer<Claim>)

Inicializa una EndpointIdentity con la notificación especificada y una interfaz y compara la igualdad.Initializes an EndpointIdentity with the specified claim and an interface and compares equality.

(Heredado de EndpointIdentity)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve la identidad.Returns the identity.

(Heredado de EndpointIdentity)

Se aplica a