SP 証明書の更新時に ADFS を IDP として使用すると SSO ログインに失敗する
フィードバックがある場合
ADFS を IDP として SP 証明書を更新する場合、SSO ログインに失敗しました。
IdP (ADFS) で新しい SP 証明書を更新すると SSO が失敗します。
エラー: 応答に無効なステータス コードがあります。
調査するステップ:
- SAML トレースをキャプチャして SAML 応答を検索します。
- SAML Message Decoder プラグインをブラウザに追加します。
Chrome の場合: https://chrome.google.com/webstore/detail/saml-message-decoder/mpabchoaimgbdbbjjieoaeiibojelbhm?hl=en
Firefox の場合: https://addons.mozilla.org/en-US/firefox/addon/saml-message-decoder-extension/ - プラグインを開き、[このメッセージをコピー] をクリックします。
- Notepad++ を開いて、インストールします ここをクリックしてください。
- メッセージを貼り付けて、XML 言語の SAML 応答を直接検索します。
- 属性が IdP からの SAML 応答に存在しているかどうかを確認します。
- 属性が表示されない場合は、Webex が IdP から属性を受け取っていないことを意味します。 そのため、IdP 側から問題を調査する必要があります。
- パーティ構成に依存している ADFS Webex を確認するには、ここをクリックしてください。
- 設定が正常に表示されたら、イベント ビューアのログを確認してください。
- Windows ログで ADFS エラーを確認します。
- Windows ログで、ADFS イベント ログ エラー コード 364 を検索します。 イベント詳細により無効な証明書が識別されます。 このような場合、ADFS ホストはポート 80 のファイアウォールを通じて証明書を検証することを許可しません。
- ファイアウォールを介してインターネットにポート 80 への IdP アクセスを許可して、CRL チェックを実行できるようにします。
- ポートが開いている場合は、Microsoft とそのファイアウォールをフォローアップします。
- ファイアウォールでポート 80 が開いていない場合、または CRL チェックが動作していない場合は、CRL を無効にします。
- ADFS サーバー > [イベントビューア] > [アプリケーション] > [ADFS] > [管理者] の順にクリックして、ログインを複製したタイムスタンプでエラーログを検索します。 次のエラーが表示される場合:
エラー: 「フェデレーション パッシブ リクエスト中にエラーが発生しました。
追加データ
プロトコル名: サムル
信頼できる当事者: https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx
例外詳細:
プロトコル名: サムル
信頼できる当事者: https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx
例外詳細:
Microsoft.IdentityServer.Service.SecurityTokenService.RevocationValidationException: msis3014: 「754B9208F1F75C5CC962750F3675C5D129471D80」で識別された証明書利用者信頼「https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx」の暗号化証明書は有効ではありません。 証明書が失効しているか、有効期限が切れているか、または証明書チェーンが信頼されていないことを示します。
Microsoft.IdentityModel.Threading.AsyncResult.End(IAsyncResult result) で
Microsoft.IdentityModel.Threading.TypedAsyncResult1.End(IAsyncResult result) at Microsoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.Issue(RequestSecurityToken request, IList1& identityClaimSet, List1 additionalClaims) at Microsoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.Issue(RequestSecurityToken request, List1 additionalClaims)
Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String relayState, String& newSamlSession, String& samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext, Boolean isKmsiRequested)
Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider)at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlProtocolHandler.BuildSignInContext コンテキスト, 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) で"
Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String relayState, String& newSamlSession, String& samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext, Boolean isKmsiRequested)
Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider)at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlProtocolHandler.BuildSignInContext コンテキスト, 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) で"
解像度は次のとおりです。
- 管理者として ADFS で Powershell を開き、次のコマンドを実行します。
Get-AdfsRelyingPartyTrust -Identifier 'https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx' | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
注意:
- 識別子 URL を必ず引用符で入力し、識別子 URL がエラーメッセージに表示されていることを確認し、コピーして貼り付けます。
- 政府版 Webex (FedRAMP) Control Hub は、 https://admin-usgov.webex.com/ を使用する必要があります。
または
- 管理者として ADFS で Powershell を開き、次のコマンドを実行します。
Get-AdfsRelyingPartyTrust -Name "Cisco Webex" | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
メモ: ADFS で作成された顧客と同じ返信側信頼の名前を、二重引用符で入力してください。
- Control Hub で SSO をテストして検証します。
この投稿記事は役に立ちましたか?