다음을 통해 공유


SpnEndpointIdentity 클래스

정의

바인딩에서 Kerberos를 사용하는 경우 ID의 SPN(서비스 사용자 이름)을 나타냅니다.

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

예제

다음 코드에서는 이 클래스의 인스턴스를 만드는 한 가지 일반적인 방법을 보여 줍니다.

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

설명

SPN은 클라이언트에서 서비스의 인스턴스를 고유하게 식별하는 이름입니다. 포리스트를 통해 컴퓨터에 여러 서비스 인스턴스를 설치하는 경우 각 인스턴스에 고유한 SPN이 있어야 합니다. 클라이언트에서 인증에 사용할 수 있는 이름이 여러 개인 경우 지정한 서비스 인스턴스에 여러 개의 SPN이 있을 수 있습니다.

클라이언트에서 서비스에 연결하려는 경우 클라이언트가 서비스의 인스턴스를 찾고, 해당 인스턴스의 SPN을 구성하며, ID를 SpnEndpointIdentity로 설정합니다 메시지가 해당 서비스에 적합한지 검사가 수행됩니다.

Kerberos에서 사용되는 세 가지 인증 모드는 다음과 같습니다.

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

생성자

SpnEndpointIdentity(Claim)

지정된 ID 클레임을 사용하여 SpnEndpointIdentity의 새 인스턴스를 초기화합니다.

SpnEndpointIdentity(String)

지정된 SPN(서비스 사용자 이름)을 사용하여 SpnEndpointIdentity의 새 인스턴스를 초기화합니다.

속성

IdentityClaim

ID에 해당하는 ID 클레임을 가져옵니다.

(다음에서 상속됨 EndpointIdentity)
SpnLookupTime

SPN(서비스 사용자 이름)을 찾을 수 있는 최대 시간을 지정합니다.

메서드

Equals(Object)

지정된 개체가 현재 ID 개체와 같은지 또는 보안 속성이 동일한지 결정하는 값을 반환합니다.

(다음에서 상속됨 EndpointIdentity)
GetHashCode()

ID의 현재 인스턴스에 대한 해시 코드를 제공합니다.

(다음에서 상속됨 EndpointIdentity)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
Initialize(Claim)

지정된 클레임을 사용하여 EndpointIdentity를 초기화합니다.

(다음에서 상속됨 EndpointIdentity)
Initialize(Claim, IEqualityComparer<Claim>)

지정된 클레임 및 인터페이스를 사용하여 EndpointIdentity를 초기화하고 동일한지 비교합니다.

(다음에서 상속됨 EndpointIdentity)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

ID를 반환합니다.

(다음에서 상속됨 EndpointIdentity)

적용 대상