どうも何回調べてもピンと来なかったり、その都度理解が変わったり・・。ということで、ビル入館を例に整理してみました。わかりやすくなったんだかどうなのか。。
全体像の例え:オフィスビルへの入館
あなたは社員で、IDカードを使ってビル内の様々な部屋(アプリケーション)に入ろうとしています。
あなた: サービスを使いたいユーザー
ID プロバイダー (IdP): あなたの身元を保証し、IDカードを発行してくれる中央受付
Active Directory (AD): 全社員の情報が載っている社員名簿(受付はこれを見てあなたを確認する)
SAML と OpenID Connect: IDカードの規格や形式(例: ICカード形式、QRコード形式)
各部屋 (アプリケーション): あなたが使いたいサービス(例: Google Workspace, Salesforce)
それぞれの役割
1. ID プロバイダー (IdP) - Identity Provider
これは「IDカードを発行してくれる中央受付」です。
役割: ユーザーの本人確認(認証)を行い、「この人は確かに本人ですよ」という身元保証をするサービスのことです。
主な機能: シングルサインオン (SSO) を実現します。一度この中央受付で認証すれば、その日はいちいち本人確認をしなくても、様々な部屋(アプリケーション)に入れるようになります。
具体的なサービス: Okta, Google, Microsoft Entra ID, Auth0 などがこれに該当。
2. Active Directory (AD)
これは「受付が参照する公式の社員名簿」です。
役割: Microsoftが開発した、組織内のユーザー情報(ID, パスワード)やコンピューター情報を一元管理するためのディレクトリサービスです。いわば、社内のあらゆる情報の「源泉」です。
IdPとの関係: 多くのIdPは、本人確認を行う際にこのADに問い合わせて、「本当にこの社員は存在するか?」「パスワードは合っているか?」を確認します。
ポイント: AD自体がIdPの機能を持つこともありますが(ADFS)、基本的には IdPが利用する「ユーザー情報の台帳」 と考えると分かりやすい。
3. SAML - Security Assertion Markup Language
以前からある「フォーマルな規格」。
役割: IdPとアプリケーションの間で、認証情報(あなたは誰か)と認可情報(あなたは何をしてよいか)を安全に交換するための XMLベースのルール(プロトコル) です。
例: 受付が発行する紙の「通行許可証」のようなものです。「氏名: キノコ 筍, 所属: 森林部部, アクセス権限: 1Fのみ」といった情報が厳密な書式で書かれています。
主な用途: 主に企業向けのWebアプリケーション(例: Salesforce, Google Workspace)のSSOで使われます。
4. OpenID Connect (OIDC)
「モダンでシンプルな規格」。SAMLより新しい
役割: IdPとアプリケーションの間で、主に認証情報(あなたは誰か)を安全に交換するための JSONベースのルール(プロトコル) です。
例: 受付が発行するスマホの「デジタルID(QRコード)」のようなものです。かざすだけで「この人は本人です」と証明でき、必要ならアプリが「名前とメールアドレスだけ教えて」と追加情報を取得できます。
主な用途: 「Googleでログイン」「LINEでログイン」のように、モダンなWebサービスやスマホアプリのログインで広く使われているっぽい