Ishii_IT_Garden’s blog

VMware EUC(HorizonやWorkspace ONE)で気になったことを検証して記載しています。

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)

  1. SPにアクセス
    SP InitiateはSPを起点とした認証のため、ユーザーはSPにアクセスしに行きます。
  2. SAML認証要求を作成
    SAMLの認証に必要な認証要求を作成します。
  3. IdPへリダイレクト
    作成した認証要求を持ってIdPへリダイレクトします。
  4. IdPの認証画面が表示
    IdPの認証画面が表示されます。
  5. 認証要求
    IdPにログインしていないとここでユーザーに認証要求を求めます。
  6. IdPの認証
    ユーザーはIdPの認証情報をもとにログインします。
  7. SAMLアサーションの準備
    ユーザーの属性や認証情報をSAMLアサーションとして準備します。
  8. SPへリダイレクト
    SAMLアサーションを持ってSPへリダイレクトします。
  9. SAMLアサーションを元にアクセス可否
    IdPから送られてきたSAMLアサーションを元にアクセス可否を判断し、ユーザーに通知します。
  10. ログイン
    ユーザーはSPにアクセスしてサービスの利用が可能になります。

 

 

IdPを起点とした認証(IdP Initiate)

  1. IdPへアクセス
    IdP InitiateはIdPを起点とした認証のため、ユーザーはIdPにアクセスしに行きます。
  2. IdPの認証画面が表示
    IdPの認証画面が表示されます。
  3. 認証要求
    IdPの認証に必要な要素をユーザーに要求します。
  4. IdPの認証
    ユーザーはIdPの認証情報をもとにログインします。
  5. SAMLアサーションの準備
    ユーザーの属性や認証情報をSAMLアサーションとして準備します。
  6. ユーザーに送信
    IdPはユーザーにSAMLアサーションの情報を送信します。
  7. SAMLアサーションを持ってSPにアクセス
    ユーザーは対象のSPにアクセスをする際、SAMLアサーションをもってアクセスしに行きます。
  8. SAMLアサーションを元にアクセス可否
    送られてきたSAMLアサーションを元にアクセス可否を判断し、ユーザーに通知します。
  9. ログイン
    ユーザーはSPにアクセスしてサービスの利用が可能になります。

 

 

SAML認証を行うための事前準備

SAML認証をするためにはIdPとSP間で信頼関係を結ぶ必要があります。その際に必要なのがメタデータです。SPはIdPのメタデータを登録し、IdPはSPのメタデータを登録することで事前準備が完了します。

メタデータとして登録する情報はアクセス先のURLや証明書などになります。

 

まとめ

今回は、SAMLについて簡単に調べてみました。まだまだSAMLメタデータの中身などは全然読み解けないのでもう少しキャッチアップしていきます....