マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

汎用認証サイトにSAML2.0を実装するため作成中。

参考

Qiita

SAML2.0ベースのSSOをわかりやすく解説してみる

https://qiita.com/hanenao/items/27c1219d41828ec7532d

SAML2.0 ID プロバイダをつくるときの参考資料まとめ

https://qiita.com/suemoc/items/276e709aa51936689254

OSSTech

OpenSSO社内勉強会第二回 - SAML -

https://www.osstech.co.jp/_media/techinfo/opensso/osstech-opensso-study-02-saml.pdf

クラウド時代の シングルサインオン

https://www.osstech.co.jp/_media/techinfo/seminar/hbstudy-20110416-sso.pdf

SAML概要

  • SAML : Secure Assertion Markup Lauguage
  • 認証、認可、ユーザ属性情報などをXMLで送受信するための仕様
  • Webアプリの”認証処理”を、外部で代行してもらうための仕組み。

SAML用語

  • 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

シーケンス

  • 認証シーケンス
    • 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アサーション

事前に 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>

認証要求・認証応答

  • 認証要求(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利用時の認証方式の指定について

https://www.osstech.co.jp/_media/techinfo/openam/saml_authncontext_20150417.pdf

Cybozu

SAML認証ができるまで Cybozu Inside Out サイボウズエンジニアのブログ

http://developer.cybozu.co.jp/tech/?p=4224

SAMLはSecurity Assertion Markup Languageの略で、OASIS3によって策定された、
異なるセキュリティドメイン間で、認証情報を連携するためのXMLベースの標準仕様。

SAML用語

  • 認証情報を提供する側をIdentity Provider(IdP)
  • 認証情報を利用する側をService Provider(SP)

SAMLの仕様

  • 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国際標準, :認証基盤, :クレームベース認証


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-02-27 (水) 21:14:21 (24d)