-
Notifications
You must be signed in to change notification settings - Fork 0
MS_SAMLImplementationVerification
- 戻る(SAMLを実装する。)
- SAMLの実装を検証する。
- SAMLの仕様を読む。
- SAML
-
IdP 側のテスト
テスト用 SP を使用してテストすると良い。- SimpleSAMLphp
- SAML 2.0 Test Service Provider
-
SP 側のテスト
著名な IdP を使用してテストすると良い。
移行メモ: 元ページは「著名、IdPを使用して」となっていたので、
「著名な IdP を使用して」に整えた。
補足(テストで必ず確認すべき異常系): 正常系(ログインできる)だけでは
検証にならない。次の異常系がすべて「拒否」されることを確認する。
これらは SAML Profiles の処理規則に対応する。
# 細工 期待する結果 1 署名を削除する 拒否 2 署名は残し、 <NameID>の値を書き換える拒否(ダイジェスト不一致) 3 別の(信頼していない)鍵で署名し直す 拒否 4 署名アルゴリズムを SHA-1 に落とす 拒否 5 <Audience>を別の SP の EntityID にする拒否 6 NotOnOrAfterを過去にする拒否 7 Recipientを別 URL にする拒否 8 InResponseToを書き換える/削除する拒否 9 同じアサーションを 2 回 POST する 2 回目は拒否(リプレイ) 10 署名済み <Assertion>を複製し、片方を改ざん(XSW)拒否 11 DTD / 外部実体を含む XML を送る(XXE) 拒否・外部アクセスしない 特に 9(リプレイ)と 10(XSW) は、
正常系のテストだけでは絶対に見つからないうえ、
実際に多数の製品で脆弱性として報告されている。
一度は手で細工した XML を投げてみること。
- SimpleSAMLphp
- SAML 2.0 Test Service Provider
以下の参考を参照。
補足(現在使えるテスト SP): 元ページ記載のもの以外にも、
現在は次が使いやすい。
ツール 形態 用途 SAMLTool.com(OneLogin) オンライン エンコード / デコード、署名、検証 samltest.id オンライン Shibboleth ベースのテスト IdP / SP SimpleSAMLphp 自前ホスト IdP / SP どちらにもなれる Keycloak 自前ホスト(Docker) IdP。SAML / OIDC 両対応 SAML-tracer(ブラウザ拡張) ブラウザ やり取りされる SAML を復号して表示 特に SAML-tracer は必携である。
Base64 + Deflate されたメッセージを自動で展開して表示してくれるため、
「何が送られているか」を目視できる。オンライン ツールに本番の鍵やアサーションを貼らないこと
(SAMLを実装する。を参照)。
- Okta Developer
以下の参考を参照。
補足: SP 側のテストでは、
複数の IdP と繋いでみることが重要である。
IdP ごとに次が異なるため、1 つで動いても他で壊れることが多い。
<Response>と<Assertion>のどちらに署名するか- 名前空間プレフィックスの付け方(SAML Core を参照)
NameIDFormatの既定値- 属性名の形式(URI 形式 / 短い名前)
- 時刻の粒度・有効期間の長さ
-
IdP 側のテスト
マネージド ドメイン用(AD FS なし) Hybrid Azure AD Join を一から構成する
https://qiita.com/Shinya-Yamaguchi/items/73016fcdb5beeaefa5ba -
SP 側のテスト
Box と Azure AD を統合して、 Box にシングル サインオン (SSO) する環境を一から構成する
https://qiita.com/Shinya-Yamaguchi/items/58524d1b62f218514423
-
IdP 側のテスト — IdM実験室
- [Azure/SAML]Azure Webアプリにお手軽テスト用SAML SPをデプロイする
https://idmlab.eidentity.jp/2015/04/azuresamlazure-websaml-sp.html - [SAML]IdPの動作テストに使えるテストSPサイト
https://idmlab.eidentity.jp/2018/02/samlidpsp.html
- [Azure/SAML]Azure Webアプリにお手軽テスト用SAML SPをデプロイする
-
SP 側のテスト — SlideShare
- Azure ADと外部アプリのID連携/SSO - Deep Dive
https://www.slideshare.net/naohiro.fujie/azure-adidsso-deep-dive
- Azure ADと外部アプリのID連携/SSO - Deep Dive
-
IdP 側のテスト
汎用認証サイトのSAML2連携テスト、.NET Core版へのマージが完了。
https://www.osscons.jp/jo021eogb-537/
- How to Authenticate with SAML in ASP.NET Core and C#
https://developer.okta.com/blog/2020/10/23/how-to-authenticate-with-saml-in-aspnet-core-and-csharp
Tags: 移行, IT国際標準, 認証基盤, クレームベース認証, SAML
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。