2016-04-01 22 views
2

"SAML for dummies"やSAML wikiの記事を含め、SAMLに関するいくつかの記事を読んだ後も、SAMLが実際にSSOの問題をどのように解決するかはまだ完全にはわかりません。 Googleアカウントのようなものを例に取ってみましょう。私が理解しているところは、Gmailに行ってSAMLを実装すると、私はIDPにリダイレクトされます。つまり、Googleのサインイン権限です。その後、ブラウザはリダイレクトされ、ログインするように求められます。正しいログイン情報を入力した後、Google Sign-inの秘密鍵で暗号化されたトークンとSAML応答でGMailに戻り、Gmailの認証で認証されます公開鍵を使用して、私が実際に私が誰であると言うのかを実証します。SAMLはどのようにSSOを解決しますか?

私は混乱していますが、初めてのサインインの問題や単一のアプリケーションに問題があるようですが、Googleドライブに行くと何が起こるのか分かりません。私のブラウザがSAMLトークン/レスポンスをクッキーとして保存しても、トークンの有効期限が切れた後にもう一度サインインする必要があります。これは2分後のものです。さらに、同じアプリケーション内であっても、リソースやエンドポイントを分離する要求は、同じ方法でタイムアウトするように見えます。

唯一のヒントは、wikiの記事によれば、ステップ1は「有効なセキュリティコンテキスト」のSPチェックでターゲットリソースを持っているということです。ただし、Gmailとドライブが互いに通信していない別々のアプリケーションである場合、ドライブは既に有効なセキュリティコンテキストを持っていることをどのように知っていますか?

質問:

  1. 初期認証した後、どのような情報は、同じまたは異なるアプリケーション/エンドポイントへの将来の要求を送信する必要がありますか?たとえば、おそらくSAMLアサーションは保存され、すべての要求に再送信されます。
  2. この情報はどのように保護/検証されていますか?
  3. SAMLのSSOにはどのようなタイムアウトが関連付けられており、SPとIDPの両方の側でタイムアウトが強制されますか?

答えて

4

あなたの欠点は、Idp(例のGoogleのログインページ)が最初のログイン時にセッションCookieを設定することです。 2番目のアプリケーションとしてGoogleドライブにアクセスすると、実際にGmailセッションについての知識はありません。 Googleドライブはidpにリダイレクトして認証を取得します。

ここで、idpには、idpドメインのcookieのおかげでアクティブなセッションがあります。これにより、idpが持続的なセッション情報から生成された新しいアサーションでgoogleドライブに返信することが可能になります。

通常、各アサーションは数分間有効ですが、idpがアプリケーションごとに新しいアサーションを作成できるため、問題はありません。

タイムアウトの場合IdpはアサーションでSessionNotOnOrAfter条件を設定して、指定した時間にセッションを終了する必要があることをSPに伝えることができます。

+0

私のブラウザにはIDPドメインのCookieが含まれているため、同じIDPで登録された追加アプリケーションにアクセスするたびに、IDPドメインにシームレスにリダイレクトされ、Cookieによって即座に認証され、気づかずに私が要求したページに? – Teofrostus

+0

@Teofrostusはい、そうです。 –

関連する問題