SP 証明書の更新時に ADFS を IDP として使用すると SSO ログインに失敗する

SP 証明書の更新時に ADFS を IDP として使用すると SSO ログインに失敗します。

IdP (ADFS) で新しい SP 証明書を更新すると SSO に失敗します。

エラー: 応答に無効なステータスコードが含まれています。

調査する手順:

  1. SAML トレースを取得して SAML 応答を探す
ユーザーにより追加されたイメージ
  • Notepad++ を開きます。インストールするには こちらをクリック
    • メッセージを貼り付けて、XML 言語の SAML 応答を直接検索します。
  1. IdP からの SAML 応答に属性が含まれているか確認
  2. 属性が表示されない場合、Webex が IdP から属性を受け取っていないことになります。 そのため、IdP 側で問題を調査する必要があります。
  3. ADFS Webex 証明書利用者の設定を確認 こちらをクリック
  4. 設定に問題がなければイベント ビューアのログを確認
  5. Windows ログの ADFS エラーを確認:
  • Windows ログで ADFS イベント ログのエラー コード 364 を確認します。 イベントの詳細によって無効な証明書を識別します。 この場合、ADFS ホストはポート 80 のファイアウォールを通じて証明書を有効化することを許可されていません。
  • ファイアウォールを経由してインターネットに接続するポート 80 へのアクセスを IdP に許可して CRL チェックを実行できるようにします。
    • ポートが開いている場合は、Microsoft と同社のファイアウォールでフォローアップします。
    • ファイアウォールでポート 80 が開かない場合や、CRL チェックが機能しない場合は CRL を無効にします。
  1. [ADFS サーバー] で [イベントビューア] > [アプリケーション] > [ADFS] > [管理者] の順にクリックして、ログインを複製した時間のタイム スタンプでエラーログを検索します。 次のエラーが表示される場合:
エラー: 「パッシブな要求のフェデレーション中にエラーが発生しました。
追加データ
プロトコル名: Saml
証明書利用者: 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'」の暗号化証明書が無効です。 これは、証明書が失効しているか、有効期限が切れているか、または、証明書チェーンが信頼されていないことを示している可能性があります。
at Microsoft.IdentityModel.Threading.AsyncResult.End(IAsyncResult result)
at 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)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String relayState, String& newSamlSession, String& samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext context, Boolean isKmsiRequested)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext context, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider)at  Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest, WrappedHttpListenerContext context, String relyingPartyIdentifier, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken(SamlSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process(ProtocolContext context)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)"

解決策を以下に示します。
  • ADFS で管理者として Powershell を開き、次のコマンドを実行します。
Get-AdfsRelyingPartyTrust -Identifier 'https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx'  | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
メモ: 識別子の URL は必ず引用符で囲んで入力してください。識別子の URL がエラーメッセージの中に見つかった場合はコピーして貼り付けます。
 
または
  • ADFS で管理者として Powershell を開き、次のコマンドを実行します。
Get-AdfsRelyingPartyTrust -Name "Cisco Webex" | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None-EncryptionCertificateRevocationCheck None
 
メモ: 証明書利用者信頼の名前は、顧客が ADFS で作成したものと同じものを必ず二重引用符で囲んで入力してください。
  • Control hub で SSO をテストして確認します。

この投稿記事は役に立ちましたか?