SAMLについて調べてみた
業務でVMware Workspace ONE取り扱っていますが、Workspace ONEでも使用されるSAMLについてちゃんと理解できいていないと思ったので備忘録として調べた内容をまとめます。
SAMLとは
Security Assertion Markup Language(SAML)は、ドメイン間でのユーザー認証を行うためのXMLベースの標準規格です。このSAMLを使用することでシングルサインオンの仕組みを利用することが可能です。
SAML認証について
従来の認証では、サービスを利用する際などに自分自身のユーザーIDやパスワードといった情報を入力してサービスにログインしていたかと思います。
SAML認証では、AMLアサーションと呼ばれるユーザーの認証情報や属性、権限の情報を記述されたXMLをやり取りすることで認証を実現します。
SAML認証時の登場要素
SAML認証のフローを説明する上で重要になってくる3つの要素について説明します。
- ユーザー
サービスを利用するユーザーのこと - Identify Provider(IdP)
認証情報を提供するシステムやサービス(Workspace ONE Access等) - Service Provider(SP)
利用するサービスのこと(Microsoft 365やZoomなどのアプリケーション)
SAML認証のフロー
では実際にSAML認証時のフローについて説明していきます。SAMLには、SPを起点とした認証とIdPを起点とした認証の2つがありますので一つ一つ見ていきます。
SPを起点とした認証(SP Initiate)
- SPにアクセス
SP InitiateはSPを起点とした認証のため、ユーザーはSPにアクセスしに行きます。 - SAML認証要求を作成
SAMLの認証に必要な認証要求を作成します。 - IdPへリダイレクト
作成した認証要求を持ってIdPへリダイレクトします。 - IdPの認証画面が表示
IdPの認証画面が表示されます。 - 認証要求
IdPにログインしていないとここでユーザーに認証要求を求めます。 - IdPの認証
ユーザーはIdPの認証情報をもとにログインします。 - SAMLアサーションの準備
ユーザーの属性や認証情報をSAMLアサーションとして準備します。 - SPへリダイレクト
SAMLアサーションを持ってSPへリダイレクトします。 - SAMLアサーションを元にアクセス可否
IdPから送られてきたSAMLアサーションを元にアクセス可否を判断し、ユーザーに通知します。 - ログイン
ユーザーはSPにアクセスしてサービスの利用が可能になります。
IdPを起点とした認証(IdP Initiate)
- IdPへアクセス
IdP InitiateはIdPを起点とした認証のため、ユーザーはIdPにアクセスしに行きます。 - IdPの認証画面が表示
IdPの認証画面が表示されます。 - 認証要求
IdPの認証に必要な要素をユーザーに要求します。 - IdPの認証
ユーザーはIdPの認証情報をもとにログインします。 - SAMLアサーションの準備
ユーザーの属性や認証情報をSAMLアサーションとして準備します。 - ユーザーに送信
IdPはユーザーにSAMLアサーションの情報を送信します。 - SAMLアサーションを持ってSPにアクセス
ユーザーは対象のSPにアクセスをする際、SAMLアサーションをもってアクセスしに行きます。 - SAMLアサーションを元にアクセス可否
送られてきたSAMLアサーションを元にアクセス可否を判断し、ユーザーに通知します。 - ログイン
ユーザーはSPにアクセスしてサービスの利用が可能になります。
SAML認証を行うための事前準備
SAML認証をするためにはIdPとSP間で信頼関係を結ぶ必要があります。その際に必要なのがメタデータです。SPはIdPのメタデータを登録し、IdPはSPのメタデータを登録することで事前準備が完了します。
メタデータとして登録する情報はアクセス先のURLや証明書などになります。
まとめ
今回は、SAMLについて簡単に調べてみました。まだまだSAMLメタデータの中身などは全然読み解けないのでもう少しキャッチアップしていきます....