2

SAML 2 SSO 認証を有効にする小さな bitbucket プラグインを作成しようとしています。

bitbucket のサンプル認証プラグインのソース コードを見てきましたが、非常に簡単に見えます。

ただし、私の質問は、個別のリクエストにまたがる認証を処理するための最良のアプローチは何かということです。

SAML SSO を行うには、ユーザーのブラウザーを介して POST を IdP に送信する必要があります。その後、POST を介して SAML トークンを再度送信しますが、認証の途中ではありません。そのため、認証プロセスを再び開始する最もクリーンな方法を見つけようとしています。現在の考えは次のとおりです。

  1. 実装する認証ハンドラーcom.atlassian.bitbucket.auth.HttpAuthenticationHandlerに、メソッドで SAML 認証が行われたかどうかを確認してもらいauthenticate()、必要に応じてそれらを IdP にリダイレクトします。(リダイレクトにより認証処理が停止しました)
  2. 別のサーブレットで IdP から SAML トークンを受け取り、SAML トークンが適切であることを確認します。問題がなければ、サーブレット リクエスト属性 (またはセッション属性) に検証済みのユーザー名を設定し、アクセスしようとした元のページにユーザーを転送します。これにより、認証プロセスが再び開始されます。
  3. 認証ハンドラが再度実行され、リクエスト/セッション属性がチェックされ、今回は、正常に完了ApplicationUserするために必要な が作成されます。authenticate()

これは良いアプローチのように聞こえますか? Crowd SSO ハンドラーがどのように機能するかについてビットバケットのソース コードを確認しましたが、Crowd SSO では外部ログイン ページにリダイレクトする必要がないため、このフローの例はありません。

アイデア?

4

0 に答える 0