はじめに
「SAML認証」はシングルサインオン(SSO)を実現するための代表的な技術です。しかし、専門用語も多く理解が難しい
と感じる方も多いのではないでしょうか。
本シリーズでは3回に分けて、SAML認証を Liberty と IBM Security Verify を使って体験しながら理解を深めます。
【1】SAML認証とは(本記事)
【2】動かして体験しよう
【3】仕組みの詳細を理解する
SAML認証の仕組み
SSOを実装する代表的な方式には、次の2つがあります。
- OIDC (OpenID Connect)
- SAML (Security Assertion Markup Language)
OIDCは比較的新しい技術ですが、SAMLも企業システムやクラウドサービスで広く利用されています。両者は機能や実装方法に違いがあるため、要件に応じて適切な技術を選択することが重要です。
本記事では、SAML認証の基本的な流れを、わかりやすい例を使って説明します。
リアル世界での認証の流れ:IT展示会に参加する
- あなたはIT展示会に申し込み、現地に到着しました
- 会場の入り口が見えたので、そこに向かっていくと入口の係員に「まず受付をしてください」と案内されます
- 受付で名前を伝え、確認が取れると入場パスを受け取ります
- 改めて会場の入り口に移動すると、係員がパスを確認して入場を許可します
- 展示ブースでは、入場パスの情報をもとに、あなたの立場に応じた対応が行われます
SAML認証は、この流れをITシステム上で再現する仕組みです。
SAMLの認証フロー
上記の例でいうと:
- IT展示会 → SP(Service Provider)
- 受付 → IdP(Identity Provider)
SPは、Libertyなどで構築するアプリケーションに相当します。IdPは、IBM Security Verifyのような認証サービスを指します。IdPはSPとは独立して認証を提供します。
処理のポイント:
- SPとIdPは直接通信せず、クライアント(ブラウザ)がリダイレクトされながら両者とやり取りします
- 入場パスにあたるのが SAMLアサーション(セキュリティトークン)です
SPとIdPは事前に次の情報を交換します。
- SPはIdPのエンドポイントを把握する
- IdPは認証後に遷移するSPのURLを把握する
- SAMLアサーションの改ざん防止のため、SPはIdPの公開鍵を保持する
これらは、SP、IdPが出力するメタデータファイルを相手側に渡して事前に登録・共有します。
ここまでのまとめ
SAMLは専門用語が多い技術ですが、現実世界の認証フローに置き換えて考えると理解しやすくなります。
次回【2】動かして体験しようは、実際にアプリケーションを動かして認証の動きを確認していきます。