- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>SAML]]
* 目次 [#b2a7541f]
#contents
*概要 [#ifcd76fe]
汎用認証サイトにSAML2.0を実装するため作成中。
*参考 [#f7980123]
-SAML 実装仕様書 第Ⅰ編 概要、用語及び参考文献 第 1.0 版~
医療分野共通認証基盤整備コンソーシアム~
https://www.keieiken.co.jp/medit/pdf/240423/7-data.pdf
*詳細 [#e34dac4b]
-SAML認証に関する自分なりのまとめ - なんとな~くしあわせ?の日記~
https://nantonaku-shiawase.hatenablog.com/entry/2016/07/13/081053
**[[SAMLの仕様を読む。]] [#sb600ce3]
*Qiita [#i80f170a]
**SAMLを実装する。 [#y7fba5ee]
**SAML2.0ベースのSSOをわかりやすく解説してみる [#s11590a8]
https://qiita.com/hanenao/items/27c1219d41828ec7532d
*参考 [#q968ebd8]
...
**SAML2.0 ID プロバイダをつくるときの参考資料まとめ [#ab412874]
https://qiita.com/suemoc/items/276e709aa51936689254
*OSSTech [#i952f8dc]
**OpenSSO社内勉強会第二回 - SAML - [#d78049dd]
https://www.osstech.co.jp/_media/techinfo/opensso/osstech-opensso-study-02-saml.pdf
**クラウド時代の シングルサインオン [#bc874894]
https://www.osstech.co.jp/_media/techinfo/seminar/hbstudy-20110416-sso.pdf
***SAML概要 [#g7fa118a]
-SAML : Secure Assertion Markup Lauguage
-認証、認可、ユーザ属性情報などを[[XML]]で送受信するための仕様
-Webアプリの”認証処理”を、外部で代行してもらうための仕組み。
***SAML用語 [#t41413c4]
-SP/IdP
--Identity Provider(IdP)
---認証・認可の情報を提供する役割を担う。~
---IdPで認証されたユーザーは SP のサービスにアクセスできるようになる。
--Service Provider(SP)
---シングルサインオン対象の Web アプリケーションなどを意味する。
---IdP が発行した認証・認可の情報に応じてクライアントにサービスを提供する。
-トラストサークル(Circle Of Trust)~
--IdP と SP の間で結ばれた信頼関係を意味する。
--シングルサインオンを実現するためには、~
IdP と SP との間で事前に信頼関係を結んでおく必要がある。
--IdP-SP 間でお互いを事前に登録し、お互いの証明書を交換する。
--一つのトラストサークル内に複数の IdP が存在することもある
>※同じ言葉でも、他のプロトコルでは意味が違うことがあるので注意
-アカウント連携
--IdP のアカウントと SP のアカウントを紐付ける
--NameID というユーザー識別子を IdP と SP 間で共有することで実現する
--NameID には以下のものが使用される
---メールアドレス
---ユーザー名
---GUIDなどの識別子
---X.509 の Subject
***シーケンス [#of7ce633]
-認証シーケンス
--SP-initiated SSO
---ユーザーは最初にSPにアクセスし、IdPでの認証に成功した後に、再びSPにアクセスする。
--IdP-initiated SSO~
---ユーザーは最初にIdPにアクセスし、IdPでの認証に成功した後にSPにアクセスする。
---SAML RelayStateというパラメタに遷移先情報を埋め込む。
-メッセージの送受信方法
--HTTP Redirect/HTTP POST Binding
---IdP-SP間の直接的な通信が発生しない
---ブラウザが通信を中継する(HTTP Redirect/HTTP POST を利用)
--HTTP Artifact Binding
---IdP-SP間の直接的な通信が発生する
---アサーションへのリファレンスである Artifact をブラウザを介してIdPとSPの間で送受信する。~
IdPと SP は Artifact を利用して直接相手に SAML 認証要求/認証応答メッセージを問い合わせる。
---Artifact のデータサイズは小さい。
***SAMLアサーション [#gb7ace7c]
事前に IdP の証明書を SP に登録しておく必要がある([[JWT]]みたいなもの)
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Version="2.0"
ID="s2907181983bc6f588aeb045fca183d671224506ec"
IssueInstant="2009-11-18T08:28:09Z">
アサーション発行者
アサーションのデジタル署名
ユーザー識別子(NameID)
</saml:Assertion>
***認証要求・認証応答 [#uc6a393c]
-認証要求(AuthnRequest)~
SPがIdPに対して、ユーザーの認証情報(アサーション)を要求するメッセージ
<samlp:AuthnRequest ID=”xxx” Version=”2.0”
Destination=”http://idp.osstech.co.jp/idp/sso”>
認証要求情報
</samlp:AuthnRequest>
-認証応答(Response)~
IdPがSPにユーザーの認証情報(アサーション)を送付するメッセージ
<samlp:Response ID=”xxx” Version=”2.0”
Destination”http://sp.osstech.co.jp/sp/sso”>
< saml:Assertion ...>
アサーション
</saml:Assertion>
</samlp:AuthnRequest>
**OpenAMのSAML利用時の認証方式の指定について [#l06dcf33]
https://www.osstech.co.jp/_media/techinfo/openam/saml_authncontext_20150417.pdf
*Cybozu [#a583f88d]
**SAML認証ができるまで Cybozu Inside Out サイボウズエンジニアのブログ [#b96fa2da]
http://developer.cybozu.co.jp/tech/?p=4224
SAMLはSecurity Assertion Markup Languageの略で、OASIS3によって策定された、~
異なるセキュリティドメイン間で、認証情報を連携するための[[XML]]ベースの標準仕様。
***SAML用語 [#n5a6bfc5]
-認証情報を提供する側をIdentity Provider(IdP)
-認証情報を利用する側をService Provider(SP)
***SAMLの仕様 [#ge5ed415]
-SAML Core~
認証情報を表す[[XML]]のスキーマ(SAML Assertions)と、~
メッセージ交換のプロトコル(SAML Protocols)を定義。
-SAML Bindings~
SAMLのメッセージを実際の通信プロトコル(HTTPなど)にマッピングする方法を定義。
-SAML Profiles~
特定のユースケースを実現するための組み合わせ方を定義。
--SAML Assertions
--SAML Protocols
--SAML Bindings
-SAML Metadata~
IdPやSPに関する情報を表現するための[[XML]]のスキーマを定義(IdPとSPの信頼関係を構築)。
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]]