SAMLとは
SAML(Security Assertion Markup Language)とは、異なるインターネットドメイン間でユーザー認証を行うための フェデレーション認証です。
SAMLを利用することで他のドメインに識別情報を安全に渡すことができ、渡されたシステムは識別情報からサービスへのシングルサインオンを実現します。つまり、ユーザーは認証サーバーを1回だけログインすれば、SAML対応しているクラウドサービスやWebアプリケーションを利用することができるシングルサインオンを実現できるようになります。
また、SAMLはユーザーの属性情報なども付与することができます。単純にユーザーの認証を行うだけでなく、サービスに利用できるようなユーザー固有の情報やユーザー種別からアクセス制御を行うことができます。
SAMLの関係性はユーザー情報を渡す側と受け取る側に分けられます。
- IdPとは、ユーザーを認証しユーザー情報を連携する方です。
- SPとは、ユーザー情報を連携される方です。
IdPから連携される情報をアサーションといいます。SPはこのアサーションを元に、アクセス制御などを行います。
SAMLフロー
SP Initiated
SPから始まるフローです。
- ユーザーがSPにアクセスすると、SPはSAML認証要求を生成し、IdPへとリダイレクトします。
- IdPは認証要求から、ユーザーの認証処理を実行します。
- IdPでのユーザー認証が成功すると、IdPはSPに対してアサーションを発行します。
IdP Initiated
IdPから始まるフローです。
- ユーザーは、まずIdPに認証し、IdPに対して SPの利用を要求します。
- IdPはSPにアクセスするためのアサーション作成し、ブラウザに渡します。
- ブラウザは、受け取った 情報をSPに渡します。
- SPは受け取った情報の内容を確認し、ユーザーにサービスの利用を認可します。
SAMLはとても認知されており、どの環境でもすぐに実装できるものでしょう。SAMLの後発としてOAuthという仕組みが整備されたため、SAMLは社内向けアプリや社内環境を中心に使われ続けています。
おすすめ書籍
新版 CISSP CBK 公式ガイド
セキュリティ専門家の国際的認証基準として需要が高まっているCISSP(Certified Information Systems Security Professional)。2005年既刊の邦訳版から12年が経ち、CISSPのドメインが変更され内容・訳語が古くなったため、最新の第4版の邦訳版を日本語公式ガイドブックとして出版。技術知識はもちろん、経営・法律知識まで完全に網羅し、セキュリティの設計・運用・実装を理解するための最高のテキスト。