pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

NextSet SSO検証 & SAML2.0勉強メモ

NextSet SSOとNextCloudで検証してみた!
NextSet SSOは日本語が充実してて、使いやすかった!
動画も公開されてて、セットアップが短時間でできた!

環境

NextSet SSO(評価アカウント)
NextCloud Ver18.0.4

検証結果 & SAML2.0自分なりの理解メモ(かなり勘違いありかも!ただ動作確認はした!)

SAML2.0の主流なやりかたでは、SPとIdP間で直接通信しない
ブラウザ経由で認証結果をやりとりする(SAML Request & Response)
IdPで鍵ペア & SSO証明書を発行、SSO証明書をSPに設定
ブラウザがSPにアクセスするとIdPにリダイレクト (SAML Request付与)
IdPにログインするとSPにリダイレクトする(SAML Response付与)

※認証失敗時はリダイレクトせず

SAML Response、RequestともにXML形式
SAML Responseには以下が含まれる。


SSO証明書(SPに設定したもの、公開鍵含む)
署名対象(Assertion or Response)をハッシュ化した文字列(デジタル署名)
デジタル署名をIdPの秘密鍵で暗号化した文字列(シグネチャ)

SPはSAML Responseから以下点をチェックしログイン許可するかを判定してるのだろう(勝手な推測)

SSO証明書が同じか(?)
シグネチャをSSO証明書の公開鍵で復号したデータがデジタル署名と同じか
発行済みRequestに対するResponseか(どこ見てるのだろう?)

SAML ResponseのAssertion or Responseどちらを署名対象とするか設定できる

署名アルゴリズムも設定可能(sha1 or sha256)

SSO連携で、デジタル署名が使われる機能は以下。(★重要★)


1) IdP⇔SP間のHTTPS通信のSSL証明書のデジタル署名
2) IdP⇔SP間のSSO証明書のデジタル署名
3) IdP⇔SP間のSAML Responseのデジタル署名

3)で、
Assertion or Responseどちらを署名対象とするか?
またSHA-1 or SHA-256どちらを署名アルゴリズムとするか?
を設定する必要あり。

SSO証明書やSAML Responseのデジタル署名の設定変更しても、変更前にSPにログイン済みのセッションには影響なし

SPへのログインセッションはCookieで管理されてるからだろう。
FireFox SAML Tracerを見てても、ログイン後はSAML関連やりとりはなかった!