0

次のコンポーネントがあります。

  • RP-1(Ws-Fed、WIFで接続)
  • RP-2 (SAML、Federation Provider で接続、実際には別の ADFS)
  • MY-ADFS (プライマリ STS としての ADFS サーバー 2019)
  • MY-IP (個別の ID プロバイダー Web サービス、Identity Server 4)

したがって、RP-1 (Ws-Fed) からサインアウト要求を行うと、単純な Ws-Fed Logout が ADFS への要求として形成されます。

https:/MY-ADFS/adfs/ls/ を取得します

次の ADFS は IP にリダイレクトします。

GET https://MY-IP/WsFederation

  • : wsignout1.0
  • wreply : https://MY-ADFS/adfs/ls/?redirectContextId=2dd581d2-6e02-4476-915b-a581e3c855d4

したがって、ユーザーは ADFS および IP からセッションをクリアします。- 予想通り。

ただし、ログアウト前に SAML RP への移行が行われ、SAML セッションがアクティブになった場合、ADFS の終了時に次のエラーが発生します。

MSIS7055:すべての SAML セッション参加者が適切にログアウトされたわけではありません。ブラウザを閉じることをお勧めします。

これを修正するために、SAML 証明書利用者信頼のログアウト エンドポイント (URL) を次のように構成しました。

https://RP-2/adfs/ls/ ?wa=wsignout1.0

POSTバインディング付き。これらの変更の後、エラーは消えました。しかし、ADFS はログアウトを IP にリダイレクトしなくなりましたが、代わりに SAML ログアウトを RP-2 にリダイレクトします。

投稿https://RP-2/adfs/ls/?wa=wsignout1.0

  • SAMLRequest : PHNhbWxwOkxvZ291dFJl

その結果、IP に切り替える代わりに、RP-2 (ADFS も) のページにとどまり、終了が成功したと書かれています。ただし、ユーザーはまだ IP 側でアクティブなセッション (Cookie) を保持しています。

ここでいくつかの質問:

  • ADFS が SAML アクティブ セッションで呼び出しのチェーンを変更する理由は明らかではありません。
  • SAML ログアウト リダイレクトを除外する方法や、ADFS に強制的に IP へのログアウトを強制する方法も明確ではありません。
4

1 に答える 1

0

ADFS を介して SaaS アプリケーションからサインアウトすることによって生成された SAML トークンが ID プロバイダーに転送され、IP 承認プロバイダー側​​でログアウト用に更新されるように、IP (ID プロバイダー) 側にもログアウト URL を追加する必要があります。 . これにより、ブラウザの Cookie が更新され、サインアウトがスムーズに処理されます。

ID プロバイダー側​​でログアウト URL を更新するには、次の手順を実行してください: -

  1. 認証プロバイダー ワークスペースを開きます。
  2. ログアウト URL を見つけます。
  3. URL を、ADFS サーバーで構成されているものと同じ「https://RP-2/adfs/ls/?wa=wsignout1.0」に更新します。
  4. 変更を保存します。

また、ADFS が SAML アクティブ セッションで呼び出しのチェーンを変更する最初のクエリについては、ログアウト要求を成功させるためにシステムから Cookie とキャッシュを削除する必要があるため、サインアウト時に記録されたログアウト時間が SaaS で更新されるためです。アプリが終了するため、ブラウザを閉じてシステムでも更新することをお勧めします。

したがって、両方の RP 信頼アプリが異なるトークン プロバイダー用に構成されているため、両方の RP 信頼アプリを異なるブラウザー ウィンドウで開くことをお勧めします。

詳細については、以下のスレッドを参照してください: -

ADFS とフェデレーションされたアプリケーションのログアウト プロセスをどのように処理しますか?

ありがとう、

于 2021-08-09T10:58:18.810 に答える