今回は、SAML(Security Asserting Markup Language)についてメモしていきたいと思います。
SAMLとは
SAMLとはセキュリティ認証についての情報を記述するマークアップ言語くらいで思えば良いかと思います。または認証、認可の情報を含んでいるXMLだと思えば良いでしょう。
どこに使われるのか
SSO(Single Sign-On)を構築するために使います。
SSOは1回ログインして複数の違うドメインを利用するときに必要な技術です。
SAML認証の仕組み

- ユーザはサービスプロバイダーに接続します。
- サービスプロバイダーはSAMLRequestを生成し、生成された SAMLRequestはXML formatのテキストで構成されています。
- ユーザーのブラウザを利用して認証プロバイダー(Identity Provider)にRedirectします。
- 認証プロバイダー(Identity Provider)はSAMLRequestをパーシングしてユーザー認証を行います。
- 認証プロバイダー(Identity Provider)は SAML Responseを生成します。
- 認証プロバイダー(Identity Provider)はユーザーブラウザを利用してSAMLResponse dataをACSで渡します。
- ACSはService Providerが運用していますがSAMLResponseを確認し、実際のサービスサイトへユーザーをForwardingします。
- ユーザーはログインに成功し、サービスを提供されます。
