SecurityBindingElement 認証モード
Windows Communication Foundation (WCF) はクライアントとサービスがそれぞれ認証する複数のモードを提供します。SecurityBindingElement クラスの静的メソッドまたは構成を使用して、この認証モード用のセキュリティ バインディング要素を作成できます。このトピックでは、18 の認証モードについて簡単に説明します。
認証モードのいずれかで要素を使用する例については、「方法 : 指定した認証モード用の SecurityBindingElement を作成する」を参照してください。
基本的な構成プログラミング
構成ファイルで認証モードを設定する手順を次に示します。
構成で認証モードを設定するには
<bindings> 要素に、customBinding Elementを追加します。
子要素として、<binding> 要素を <customBinding> 要素に追加します。
<security> 要素を <binding> 要素に追加します。
authenticationMode 属性を、以下で説明する値のいずれかに設定します。たとえば、次のコードによりモードは AnonymousForCertificate に設定されます。
<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
プログラムでモードを設定するには
戻り値の型を決めます。SymmetricSecurityBindingElement、TransportSecurityBindingElement、AsymmetricSecurityBindingElement、または SecurityBindingElement のいずれかを指定できます。
SecurityBindingElement クラスの適切な静的メソッドを呼び出します。たとえば、次のコードは CreateAnonymousForCertificateBindingElement メソッドを呼び出します。
カスタム バインディングを作成するにはバインディング要素を使用します。詳細な情報については、次のページを参照してください。 「カスタム バインディング」を参照してください。
モードの説明
AnonymousForCertificate
この認証モードでは、クライアントは匿名になり、X.509 証明書を使用してサービスが認証されます。セキュリティ バインディング要素は、CreateAnonymousForCertificateBindingElement メソッドによって返される SymmetricSecurityBindingElement です。または、<security> 要素の authenticationMode 属性を AnonymousForCertificate に設定します。
AnonymousForSslNegotiated
この認証モードでは、クライアントが匿名になり、実行時にネゴシエートされる X.509 証明書を使用してサービスが認証されます。セキュリティ バインディング要素は、最初のパラメータに false の値が渡される場合に CreateSslNegotiationBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に AnonymousForSslNegotiated を設定します。
CertificateOverTransport
この認証モードでは、クライアントは、保証サポート トークン、つまりメッセージ署名を行うトークンとして SOAP 層に表示される X.509 証明書を使用して認証を行います。サービスはトランスポート層で X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateCertificateOverTransportBindingElement メソッドによって返される TransportSecurityBindingElement です。代わりに、authenticationMode 属性に CertificateOverTransport を設定します。
IssuedToken
この認証モードでは、クライアントはサービスに対する認証を行わず、セキュリティ トークン サービスによって発行されたトークンを提示して共有キーの有無を示します。サービスはクライアントに対して認証されませんが、そのサービスだけがキーを復号化できるように、セキュリティ トークン サービスは発行されたトークンの一部として共有キーを暗号化します。セキュリティ バインディング要素は、CreateIssuedTokenBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性を IssuedToken に設定します。
IssuedTokenForCertificate
この認証モードでは、クライアントはサービスに対する認証を行わず、セキュリティ トークン サービスによって発行されたトークンを提示して共有キーの有無を示します。発行されたトークンはトークンをサポートする証明として SOAP 層に表示され、つまり、トークンによってメッセージ署名が行われます。X.509 証明書を使用したクライアントに対するサービス認証。セキュリティ バインディング要素は、CreateIssuedTokenForCertificateBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に IssuedTokenForCertificate を設定します。
IssuedTokenForSslNegotiated
この認証モードでは、クライアントはサービスに対する認証を行わず、セキュリティ トークン サービスによって発行されたトークンを提示して共有キーの有無を示します。発行済みトークンは、保証サポート トークン (メッセージ署名を行うトークン) として SOAP 層に表示されます。サービスは X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateIssuedTokenForSslBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に IssuedTokenForSslnegotiated を設定します。
IssuedTokenOverTransport
この認証モードでは、クライアントはサービスに対して認証されず、セキュリティ トークン サービスによって発行されたトークンを提示して共有キーの有無を示します。発行済みトークンは、保証サポート トークン (メッセージ署名を行うトークン) として SOAP 層に表示されます。サービスはトランスポート層で X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateIssuedTokenOverTransportBindingElement メソッドによって返される TransportSecurityBindingElement です。代わりに、authenticationMode 属性に IssuedTokenOverTransport を設定します。
Kerberos
この認証モードでは、クライアントは Kerberos チケットを使用してサービスに対する認証を行います。また、その同じチケットによってサーバーが認証されます。セキュリティ バインディング要素は、CreateKerberosBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に Kerberos を設定します。
メモ : |
---|
この認証モードを使用するには、サービス アカウントをサービス プリンシパル名 (SPN: Service Principal Name) に関連付ける必要があります。この関連付けを行うには、NETWORK SERVICE アカウントまたは LOCAL SYSTEM アカウントでサービスを実行します。または、SetSpn.exe ツールを使用して、サービス アカウントの SPN を作成します。いずれの場合も、クライアントは <servicePrincipalName> 要素の正しい SPN を使用するか、EndpointAddress コンストラクタを使用して正しい SPN を使用する必要があります。詳細な情報については、次のページを参照してください。 「サービス ID と認証」を参照してください。 |
メモ : |
---|
Kerberos 認証モードを使用する場合、Anonymous および Delegation の各偽装レベルはサポートされません。 |
KerberosOverTransport
この認証モードでは、クライアントは Kerberos チケットを使用してサービスに対する認証を行います。Kerberos トークンは、保証サポート トークン、つまりメッセージ署名を行うトークンとして SOAP 層に表示されます。サービスはトランスポート層で X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateKerberosOverTransportBindingElement メソッドによって返される TransportSecurityBindingElement です。代わりに、authenticationMode 属性に KerberosOverTransport を設定します。
メモ : |
---|
この認証モードを使用するには、サービス アカウントを SPN に関連付ける必要があります。この関連付けを行うには、NETWORK SERVICE アカウントまたは LOCAL SYSTEM アカウントでサービスを実行します。または、SetSpn.exe ツールを使用して、サービス アカウントの SPN を作成します。いずれの場合も、クライアントは <servicePrincipalName> 要素の正しい SPN を使用するか、EndpointAddress コンストラクタを使用して正しい SPN を使用する必要があります。詳細な情報については、次のページを参照してください。 「サービス ID と認証」を参照してください。 |
MutualCertificate
この認証モードでは、クライアントは、保証サポート トークン、つまりメッセージ署名を行うトークンとして SOAP 層に表示される X.509 証明書を使用して認証を行います。また、サービスは X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateMutualCertificateBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に MutualCertificate を設定します。
MutualCertificateDuplex
この認証モードでは、クライアントは、保証サポート トークン、つまりメッセージ署名を行うトークンとして SOAP 層に表示される X.509 証明書を使用して認証を行います。また、サービスは X.509 証明書を使用して認証されます。バインディングは、CreateMutualCertificateDuplexBindingElement メソッドによって返される AsymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に MutualCertificateDuplex を設定します。
MutalSslNegotiation
この認証モードでは、クライアントとサービスは X.509 証明書を使用して認証を行います。セキュリティ バインディング要素は、最初のパラメータに true の値が渡される場合に CreateSslNegotiationBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に MutualSslNegotiated を設定します。
SecureConversation
セキュリティ バインディング要素は、CreateSecureConversationBindingElement メソッドによって返される SymmetricSecurityBindingElement です。このメソッドは、パラメータとして SecurityBindingElement を受け取り、初期化時にこれを使用してセキュリティで保護されたセッションを確立します。代わりに、authenticationMode 属性に SecureConversation を設定します。
ブートストラップ バインディングを指定していない場合は、ブートストラップのために SspiNegotiated 認証モードが使用されます。
SspiNegotiation
この認証モードでは、ネゴシエーション プロトコルを使用して、クライアントとサーバーの認証を行います。Kerberos を使用できる場合は Kerberos が使用され、それ以外の場合は、NTLM (NT LanMan) が使用されます。セキュリティ バインディング要素は、CreateSspiNegotiationBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に SspiNegotiated を設定します。
SspiNegotiatedOverTransport
この認証モードでは、ネゴシエーション プロトコルを使用して、クライアントとサーバーの認証を行います。Kerberos プロトコルを使用できる場合は Kerberos プロトコルが使用され、それ以外の場合は NTLM が使用されます。発行されたトークンは、保証サポート トークン、つまりメッセージ署名を行うトークンとして SOAP 層に表示されます。サービスは、トランスポート層で X.509 証明書により追加的に認証されます。セキュリティ バインディング要素は、CreateSspiNegotiationOverTransportBindingElement メソッドによって返される TransportSecurityBindingElement です。代わりに、authenticationMode 属性に SspiNegotiatedOverTransport を設定します。
UserNameForCertificate
この認証モードでは、クライアントは、署名付きサポート トークン、つまりメッセージ署名で署名されたトークンとして SOAP 層に表示されるユーザー名トークンを使用してサービスに対する認証を行います。X.509 証明書を使用したクライアントに対するサービス認証。セキュリティ バインディング要素は、CreateUserNameForCertificateBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に UserNameForCertificate を設定します。
UserNameForCertificate 認証モードでは、クライアントとサービスの両方が WS-Security 1.1 を使用している必要があります。
UserNameForSslNegotiated
この認証モードでは、クライアントは、署名付きサポート トークン、つまりメッセージ署名で署名されたトークンとして SOAP 層に表示されるユーザー名トークンを使用して認証を行います。サービスは X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateUserNameForSslBindingElement メソッドによって返される SymmetricSecurityBindingElement です。代わりに、authenticationMode 属性に UserNameForSslNegotiated を設定します。
UserNameOverTransport
この認証モードでは、クライアントは、署名付きサポート トークン、つまりメッセージ署名で署名されたトークンとして SOAP 層に表示されるユーザー名トークンを使用して認証を行います。サービスはトランスポート層で X.509 証明書を使用して認証されます。セキュリティ バインディング要素は、CreateUserNameOverTransportBindingElement メソッドによって返される TransportSecurityBindingElement です。代わりに、authenticationMode 属性に UserNameOverTransport を設定します。
関連項目
タスク
方法 : 指定した認証モード用の SecurityBindingElement を作成する