SpnEndpointIdentity 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩에서 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
- 상속
예제
다음 코드에서는 이 클래스의 인스턴스를 만드는 한 가지 일반적인 방법을 보여 줍니다.
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) |