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
- 継承
例
次のコードは、このクラスのインスタンスを作成する一般的な方法の 1 つを示しています。
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 で使用される 3 つの認証モードは次のとおりです。
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, IEqualityComparer<Claim>) |
指定した要求とインターフェイスを使用して EndpointIdentity を初期化し、等価性を比較します。 (継承元 EndpointIdentity) |
| Initialize(Claim) |
指定した要求を使用して EndpointIdentity を初期化します。 (継承元 EndpointIdentity) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
ID を返します。 (継承元 EndpointIdentity) |