前回はSP initiated SSOで

  1. SPにアクセス
  2. リダイレクトとかPOSTとかでIdPにアクセス[SAMLリクエスト]
  3. IdPに対して認証処理
  4. 認証OKならSPにSAMLレスポンスを返してSP側の認証も完了

というフローでしたが、今回はIdP initiated SSOをやってみます。

 

IdP initiated SSOのフローは

  1. IdPにログイン
  2. 特定のリンククリック(IdPに対するGETリクエスト)
  3. SPにSAMLレスポンスを返して認証完了

と、最初の起点が異なるだけで、結局はSAMLアサーションをSPに渡すことになります。

 

OpenAMを使う場合は工程2のリンクは以下のようになります。

SSOの場合

SLOの場合

 

ついでに勉強した内容を箇条書き

  • HTTP-Redirect方式は長いリクエスト、レスポンスには対応できない(URL文字数制限)
  • HTTP-POST方式はJavaScriptを有効化しないと自動遷移ができない
  • SalesforceはSAMLアサーションがHTTP-POST方式でしか対応していないっぽい(ちょっと自信ないのでもう少し調べてみます)。
  • SalesforceからIdPにSAMLリクエスト投げるときはHTTP-RedirectかHTTP-POST形式オンリーっぽい(これももうちょい調べます。)

参考URL