問題タブ [idp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
saml - SAML 2.0 のシングル ログアウトに関する問題 - IdP は、異なるユーザー エージェントで実行されている SP セッションをどのように終了する必要がありますか?
SAML 2.0シングル ログアウトに問題があります。
IdP (ID プロバイダー) と SP (サービス プロバイダー) として機能する Web アプリケーションを備えた SAML 2.0 環境があります。
ユーザーとして、ユーザー エージェント (ブラウザー) で Web アプリケーション セッションを開始します。ユーザーは IdP を使用して認証されます。
別のブラウザー (同じクライアント マシンで実行中) で、同じ Web アプリケーション (つまり、SAML に関して同じ SP) で同じユーザーとして別のセッションを開始します。
これで、同じユーザーが認証される 2 つの独立した Web アプリケーション セッションができました。
その後、ブラウザーの 1 つで IdP によって開始された単一のログアウトを実行すると、IdP は、そのブラウザーで実行されているセッションを終了する 1 つのログアウト要求のみを発行します。IdP によって発行されたログアウト要求の要素は、そのブラウザ (ユーザー エージェント) を使用して SP に送信されたアサーションの AuthnStatement の属性 SessionIndex で IdP によって送信されたものと同じです。
真の「シングル ログアウト」を実現するには、IdP が開いているすべてのセッションに対してログアウト リクエストを送信する必要があるのではないでしょうか?
single-sign-on - Keycloak: 外部 IdP による無効な SAML 応答
外部 IdP で SAML を使用して SSO オプションを実装しています。ブラウザーの SSO ボタンをクリックした後に受信した SAML 応答を調べると、必要な認証データ (ユーザーの名前や電子メールなど) を確認できるため、IdP との通信は問題なく機能します。
ただし、Keycloakはログインを実行せず、「申し訳ありません...ログインがタイムアウトしました。もう一度ログインしてください。」というページが表示され、新しいユーザーは登録されません。私のレルムのトークンのログイン タイムアウトは 30 分に設定されています。
ログを見ると、次のエラーが見つかりました。
これは、IdP と SP の EntityID の不一致が原因である可能性があることがわかりましたが、IdP に連絡したところ、EntityID は同じです。
何が問題なのですか?