シングルサインオンの実装方式|情報処理安全確保支援士 平成30年 春期午前Ⅱ試験 問5

出典:平成30年春期 午前Ⅱ 問5 分野:セキュリティ / 情報セキュリティ
シングルサインオンの実装方式に関する記述のうち,適切なものはどれか。
  • ア:cookieを使ったシングルサインオンの場合,サーバごとの認証情報を含んだcookieをクライアントで生成し,各サーバ上で保存,管理する。
  • イ:cookieを使ったシングルサインオンの場合,認証対象の各サーバを,異なるインターネットドメインに配置する必要がある。
  • ウ:リバースプロキシを使ったシングルサインオンの場合,認証対象のWebサーバを,異なるインターネットドメインに配置する必要がある。
  • エ:リバースプロキシを使ったシングルサインオンの場合,利用者認証においてパスワードの代わりにデジタル証明書を用いることができる。
解説

シングルサインオン(SSO)は、最初に1回ログインすれば、許可された複数のシステムを再ログインなしで利用できる仕組みです。

利用者にとっては、システムごとにIDやパスワードを入力する手間が減ります。管理者にとっても、認証情報を一元管理しやすくなるメリットがあります。

方式 仕組み ポイント
Cookieを使うSSO 最初のログイン後、認証・識別情報をCookieに含めてクライアントへ返し、別のWebサーバでもそのCookieを使って認証する Cookieを使って、ログイン済みであることを確認する
リバースプロキシ型SSO すべてのWebサーバへのアクセスをリバースプロキシに集約し、リバースプロキシが利用者を認証してから各Webサーバへ代理アクセスする 認証の入口をリバースプロキシにまとめる
SAMLを使うSSO 認証情報・属性情報・アクセス制御情報をXML形式でやり取りし、異なるドメイン間でも認証情報を共有する 別ドメインのサービス間でもSSOを実現しやすい

Cookieを使うSSOでは、各Webサーバに認証用のエージェントを入れておきます。利用者が最初にログインすると、認証サーバで確認が行われ、その結果をCookieとしてクライアントに保存します。別のWebサーバへアクセスしたときも、そのCookieをもとにログイン済みか確認します。

リバースプロキシ型SSOでは、利用者は各Webサーバへ直接アクセスするのではなく、まずリバースプロキシにアクセスします。リバースプロキシが認証を行い、認証済みであれば、内部のWebサーバへ代理でアクセスします。

SAMLを使うSSOでは、認証した結果をサービス間で安全に受け渡します。たとえば、ある認証基盤でログイン済みであることを、別のドメインのサービスに伝えることで、再ログインなしで利用できるようにします。

  • Cookie型:Cookieを使ってログイン済みか確認する
  • リバースプロキシ型:認証の入口を1カ所に集約する
  • SAML型:異なるドメイン間で認証情報をやり取りする

つまりSSOは、「1回の認証で複数システムを使えるようにする仕組み」です。方式ごとの違いは、認証済みであることをCookieで確認するのか、リバースプロキシでまとめて管理するのか、SAMLでドメインをまたいで認証情報を交換するのかにあります。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:cookieを使ったシングルサインオンの場合,サーバごとの認証情報を含んだcookieをクライアントで生成し,各サーバ上で保存,管理する。
⇒cookieは通常、認証を行ったサーバ側で生成され、Webブラウザに保存されます。クライアントがサーバごとの認証情報を含むcookieを自ら生成し、各サーバ上で保存・管理する方式ではありません。
イ:cookieを使ったシングルサインオンの場合,認証対象の各サーバを,異なるインターネットドメインに配置する必要がある。
⇒cookieは原則として、発行元のドメイン又は指定された範囲のドメインで利用されます。そのため、cookie方式では認証対象の各サーバを同一ドメイン又は共通の親ドメイン配下に配置する必要があり、異なるドメインに配置する必要があるという説明は誤りです。
ウ:リバースプロキシを使ったシングルサインオンの場合,認証対象のWebサーバを,異なるインターネットドメインに配置する必要がある。
⇒リバースプロキシ方式では、利用者からのアクセスをリバースプロキシが一元的に受け付けて各Webサーバへ中継します。認証対象のWebサーバを異なるインターネットドメインに配置することは必須ではありません。
TSUNAGARU-ADVICE

まず押さえたいこと

シングルサインオンは、一度の認証で複数のシステムやWebサーバを利用できるようにする仕組みです。リバースプロキシ方式では、利用者と各Webサーバの間にリバースプロキシを置き、そこで認証を集中して行うため、パスワードの代わりにデジタル証明書を用いた利用者認証も実装できます。

迷ったときの判断軸

cookieを使う方式では、クライアントが勝手にサーバごとの認証情報を生成して各サーバで保存するわけではありません。また、cookieを使う方式では、同じドメイン又は共有可能な範囲でcookieを扱う必要があり、各サーバを異なるインターネットドメインに配置する必要があるという説明は不適切です。リバースプロキシ方式も、認証対象Webサーバを異なるドメインに置くことが必須ではありません。判断するときは、認証をどこで集中的に行うかに注目しましょう。

科目Bにつなげるために

科目Bでは、SSO、リバースプロキシ、cookie、SAML、IdP、SP、クライアント証明書などを組み合わせて問われることがあります。SSOは利便性を高める一方で、認証基盤が停止すると複数サービスに影響するため、認証情報の保護、セッション管理、単一障害点への対策もあわせて整理しておきましょう。