はじめに
SAMLについてあまりよくわかっていなかったため、記事にまとめました。
シングルサインオン(SSO)とは?
SAMLが何かを述べる前に、シングルサインオン(SSO)について簡単にまとめます。
SSOは、ユーザーが1度認証を行えば複数のアプリケーションやサービスを利用できるようになる仕組みのことです。
この仕組みを利用することで、ユーザーはアプリケーションやサービスごとのログイン情報を管理する必要がなくなるので、利便性やセキュリティが向上します。
SAMLとは?
こちらのページから引用すると、SAMLは以下のようなものを指します。
x
SAMLとは、Security Assertion Markup Languageの略称であり、OASISによって策定された異なるインターネットドメイン間でのユーザー認証を実現するXMLベースの標準規格です。
「異なるインターネットドメイン間でのユーザー認証を実現する」とありますが、すなわちSAMLはSSOを実現するための標準規格と言い換えることができます。
SAML認証の仕組み
用語の確認
サービスプロバイダ(SP)
認証済みのユーザーに、アプリケーションやサービスを提供するシステムを指します。
具体例:Slack, Figmaなど
アイデンティティプロバイダ(IdP)
アプリケーションやサービスを利用するために必要な認証情報(SAMLアサーション)を提供するシステムを指します。
具体例:Okta, Google Workspaceなど
SAMLアサーション
IdPが生成する認証の結果などのデータのことを指します。このSAMLアサーションいは、認証の結果やユーザーの情報などが含まれます。
認証の種類
SP Initiated
SP Initiatedは、SP起点のSAML認証です。利用したいアプリケーションやサービス(SP)にアクセスから始まるので、わかりやすい認証フローになっています。
認証フロー
- ユーザーがSPにアクセスする
- SPがIdPにリダイレクト
- IdPで認証を行う
- IdPがSAMLアサーションをSPに送る
- SPがSAMLアサーションを検証する
- アクセスが許可される
IdP Initiated
IdP Initiatedは、IdP起点のSAML認証です。SP Initiatedとは違い、IdPにアクセスしてから利用したいアプリケーションやサービス(SP)にアクセスします。
認証フロー
- ユーザーがIdPにアクセスする
- IdPで認証を行う
- ユーザーがSPを選択する
- IdPがSAMLアサーションをSPに送る
- SPがSAMLアサーションを検証する
- アクセスが許可される