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 は、クライアントがサービスのインスタンスを一意に識別する名前です。 フォレストの複数のコンピューターに 1 つのサービスの複数のインスタンスをインストールする場合、各インスタンスには独自の 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) |
指定したクレームを使用して、EndpointIdentity を初期化します。 (継承元 EndpointIdentity) |
Initialize(Claim, IEqualityComparer<Claim>) |
指定したクレームとインターフェイスを使用して EndpointIdentity を初期化し、同等性を比較します。 (継承元 EndpointIdentity) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
ID を返します。 (継承元 EndpointIdentity) |
適用対象
.NET