SAMLを使ったSSO

前回の勉強内容

ponsuke-tarou.hatenablog.com

シングルサインオンにはクッキーやリバースプロキシ、SAMLを使う方法があります。

シングルサインオンは、1度(single)の認証(sign on)で複数のシステムやサービスが使えるようになるので、「Single Sign On」、略してSSOです。
そんなSSOはいくつかの方法で実現されます。

シングルサインオンの説明のうち,適切なものはどれか。

  1. クッキーを使ったシングルサインオンの場合,サーバごとの認証情報を含んだクッキーをクライアントで生成し,各サーバ上で保存,管理する。
  2. クッキーを使ったシングルサインオンの場合,認証対象のサーバを,異なるインターネットドメインに配置する必要がある。
  3. リバースプロキシを使ったシングルサインオンの場合,認証対象のWebサーバを,異なるインターネットドメインに配置する必要がある。
  4. リバースプロキシを使ったシングルサインオンの場合,利用者認証においてパスワードの代わりにディジタル証明書を用いることができる。 << 正解

出典 : 平成24年 秋期 応用情報技術者試験 午前問36

エージェント方式 : Cookieを使うSSOの流れ

  1. ユーザのログイン時にWebサーバが認証サーバに接続して認証を行う。
  2. その認証情報をCookieに設定してユーザーに返す。
  3. 別のWebサーバにアクセスする時は、Webサーバが認証サーバにCookieの情報で認証を行う。

Cookieを使うSSOでは、サービスのWebサーバにエージェントというソフトウェアを設定する必要があります。
そのため「エージェント方式」といいます。

エージェント方式におけるSSO認証処理のシーケンスは,次のとおりである。

  1. PCからWebアプリケーションサーバに、サービス要求を行う。
  2. Webアプリケーションサーバ内のエージェントは、サービス要求中のCookieに認証済資格情報(以下、アクセスチケットという)が含まれているか確認する。含まれていなければ,サービス要求はSSOサーバヘ[ イ : リダイレクト ]される。
  3. SSOサーバからPCに、認証画面を送る。
  4. PCからSSOサーバに、UserIDとPasswordを送出する。
  5. SSOサーバは、UserIDとPasswordから利用者のアクセスの正当性を確認したら、アクセスチケットを発行して、Cookieに含めて応答を返す。サービス要求は、Webアプリケーションサーバヘ[ イ : リダイレクト ]される。
  6. Webアプリケーションサーバ内のエージェントは、SSOサーバにアクセスチケット確認要求を送り、SSOサーバは、確認して応答を返す。
  7. Webアプリケーションサーバは、6.の応答によって利用者のアクセスの正当性が確認できた場合、Webアプリケーション画面を送出する。

エージェント方式におけるSSO認証処理のシーケンスの1~7を図示すると,図2のようになる。
f:id:ponsuke_tarou:20220331231703p:plain
出典 : 平成27 年秋期 ネットワークスペシャリスト試験 午後Ⅰ

リバースプロキシを使うSSOの流れ

  1. リバースプロキシがアクセスしてきたユーザを認証する。
  2. リバースプロキシはWebサーバに代理アクセスし結果をユーザに返す。

f:id:ponsuke_tarou:20220330233238j:plain
練馬区石神井台にあるたつの湯には広い駐車場があるがそこまでの道が超細い

SAMLは、認証情報を交換するためのマークアップ言語です。

安全(security)を判定(assertion)するためのマークアップ言語(markup language)ということで、「Security Assertion Markup Language」、略してSAML(サムル)です。
異なるインターネットドメイン間で認証情報を交換するためのXMLをベースにした規格です。

SAML(Security Assertion Markup Language)の説明として,最も適切なものはどれか。

  1. Webサービスに関する情報を公開し,それらが提供する機能などを検索可能にするための仕様
  2. 権限がない利用者による読取り,改ざんから電子メールを保護して送信するための仕様
  3. ディジタル署名に使われる鍵情報を効率よく管理するためのWebサービスの仕様
  4. 認証情報に加え,属性情報とアクセス制御情報を異なるドメインに伝達するためのWebのサービス仕様 << 正解

出典 : 令和2年 秋期 情報処理安全確保支援士試験 午前Ⅱ 問2

IdPは、認証情報を管理するサービスです。

認証する(identify)サービスを供給する(provider)ので、「Identify Provider」、略してIdPです。

使うサービスがたくさんあると、その分IDやらパスワードやらの認証情報を管理しなくてはならなくなります。
IdPが、ユーザとサービスの間を仲介してくれることで1つの認証情報でたくさんのサービスを使うことができます。

また、ユーザを管理する人も1か所で管理できるので、ユーザの追加や削除が楽になりますね。

SAMLを使うSSOの流れ

  1. ユーザがサービスに接続する
  2. サービスがSAML認証要求をユーザを経てIdPに送信する
  3. IdPの認証画面でユーザはログインすることで認証処理をする
  4. IdPがSAML認証応答をユーザ経てサービスに送信する(SAMLアサーション)
  5. ユーザがサービスにログインできる

f:id:ponsuke_tarou:20220403212105j:plain

シングルサインオンの実装方式の一つであるSAML認証の特徴はどれか。

  1. IdP(Identity Provider)がSP(Service Provider)の認証要求によって利用者認証を行い,認証成功後に発行されるアサーションをSPが検証し,問題がなければクライアントがSPにアクセスする。<< 正解
  2. Webサーバに導入されたエージェントが認証サーバと連携して利用者認証を行い,クライアントは認証成功後に利用者に発行されるcookieを使用してSPにアクセスする。
  3. 認証サーバはKerberosプロトコルを使って利用者認証を行い,クライアントは認証成功後に発行されるチケットを使用してSPにアクセスする。
  4. リバースプロキシで利用者認証が行われ,クライアントは認証成功後にリバースプロキシ経由でSPにアクセスする。

出典 : 令和3年 秋期 情報処理安全確保支援士 午前Ⅱ 問4

ぽんすけは、Chromeを使う時にChromeにログインしようとするとCloudGate UNOのログイン画面が表示されてログインするとChromeのアカウントにログインできます。

これは「CloudGate UNOというIdP」が「Google Workspaceというサービスプロバイダ」から認証要求を受けて「ぽんすけというクライアント」をSSOできるようにしているのです。
参考 : Google Workspace向けSSOサービス | CloudGate UNO(クラウドゲートウノ)

f:id:ponsuke_tarou:20220331225421j:plain
練馬35の貫井浴場には岩風呂な水風呂がある

次回の勉強内容

ponsuke-tarou.hatenablog.com