ADFS と SAML2.0 を使用して、Web アプリケーションに SSO を実装しようとしています。adfs 環境として Windows Server 2012 r2 を使用しています。Web アプリケーションも同じ環境にあります。
これまでのところ、アプリケーションを実行すると、sso を使用してログインすることを選択できるメインのサインイン ページが表示されます。sso オプションをクリックすると、adfs サインオン画面にリダイレクトされ、適切な資格情報でログインしようとすると、次のエラーが表示されます。
フェデレーション パッシブ リクエスト中にエラーが発生しました。 追加データ プロトコル名: サムル 依拠当事者: https://ADFSDomain/adfs/ls/ 例外の詳細: Microsoft.IdentityServer.Service.Policy.PolicyServer.Engine.MissingAssertionConsumerServicesPolicyException: MSIS3077: 証明書利用者信頼 'https://ADFSDomain/adfs/ls/' に対して AssertionConsumerServices プロパティが構成されていません。 Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.LookupAssertionConsumerServiceByUrl (コレクション `1 assertionConsumerServices、URI requestedAssertionConsumerServiceUrl、文字列 scopeIdentity) で Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.FindSamlResponseEndpointForAuthenticationRequest (ブール値の artifactEnabled、AuthenticationRequest 要求、ScopeDescription scopeDescription) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.GetResponseEndpointFromRequest (SamlRequest 要求、ブール値 isUrlTranslationNeeded、ScopeDescription スコープ) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue (HttpSamlRequestMessage httpSamlRequestMessage、SecurityTokenElement onBehalfOf、文字列 sessionState、文字列 relayState、文字列 & newSamlSession、文字列 & samlpAuthenticationProvider、ブール値 isUrlTranslationNeeded、WrappedHttpListenerContext コンテキスト、ブール値 isKmsiRequested) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken (WrappedHttpListenerContext コンテキスト、HttpSamlRequestMessage httpSamlRequest、SecurityTokenElement onBehalfOf、文字列 relyingPartyIdentifier、ブール値 isKmsiRequested、ブール値 isApplicationProxyTokenRequired、文字列 & samlpSessionState、文字列 & samlpAuthenticationProvider) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken (HttpSamlRequestMessage httpSamlRequest、WrappedHttpListenerContext コンテキスト、文字列 relyingPartyIdentifier、SecurityTokenElement signOnTokenElement、ブール値 isKmsiRequested、ブール値 isApplicationProxyTokenRequired) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken (SamlSignInContext コンテキスト、SecurityToken securityToken、SecurityToken deviceSecurityToken) で Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process (ProtocolContext コンテキスト) で Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest (ProtocolContext protocolContext、PassiveProtocolHandler protocolHandler) で Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext (WrappedHttpListenerContext コンテキスト) で
web.config は次のようになります。
<sustainsys.saml2 modulePath="/AuthServices" entityId="https://ADFSDomain/adfs/ls/" returnUrl="http://localhost:2181/">
<identityProviders>
<add entityId="http://ADFSDomain/adfs/services/trust"
signOnUrl="https://ADFSDomain/adfs/ls/"
allowUnsolicitedAuthnResponse="true"
binding="HttpRedirect"
wantAuthnRequestsSigned="false"
loadMetadata="true"
metadataLocation="https://ADFSDomain/federationmetadata/2007-06/federationmetadata.xml">
<signingCertificate fileName="~/App_Data/newCert.cer" />
</add>
</identityProviders>
</sustainsys.saml2>