前回はSP initiated SSOで
- SPにアクセス
- リダイレクトとかPOSTとかでIdPにアクセス[SAMLリクエスト]
- IdPに対して認証処理
- 認証OKならSPにSAMLレスポンスを返してSP側の認証も完了
IdP initiated SSOのフローは
- IdPにログイン
- 特定のリンククリック(IdPに対するGETリクエスト)
- SPにSAMLレスポンスを返して認証完了
OpenAMを使う場合は工程2のリンクは以下のようになります。
SSOの場合
http://[IdPHostname]:8080/openam/idpssoinit?metaAlias=/idp
&spEntityID=https://[SPHostname]&binding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
SLOの場合
http://[IdPHostname]:8080/openam/IDPSloInit?
binding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
ついでに勉強した内容を箇条書き
- HTTP-Redirect方式は長いリクエスト、レスポンスには対応できない(URL文字数制限)
- HTTP-POST方式はJavaScriptを有効化しないと自動遷移ができない
- SalesforceはSAMLアサーションがHTTP-POST方式でしか対応していないっぽい(ちょっと自信ないのでもう少し調べてみます)。
- SalesforceからIdPにSAMLリクエスト投げるときはHTTP-RedirectかHTTP-POST形式オンリーっぽい(これももうちょい調べます。)