システムアーキテクト 2025年 午前2 問03
問題文
A社は、各種のサービスを複数のWebサイトで提供している。現在、利用者は,Webサイトにログインするたびに、そのサイト用の利用者IDとパスワードを入力する必要がある。この煩わしさを解消するために、いずれかのWebサイトで一度ログインすれば、全てのWebサイトを利用できる仕組みとしたい。この仕組みを実現するための機能を有するOSSはどれか。
選択肢
ア:BIND
イ:Keycloak(正解)
ウ:Logstash
エ:OpenSSL
一度のログインで複数のWebサイトを利用できる仕組みを提供するOSSはどれか【午前2 解説】
要点まとめ
- 結論:A社の要件である「いずれかのWebサイトで一度ログインすれば全サイト利用可」を実現するOSSは、IDプロバイダ機能を持つKeycloakです。
- 根拠:KeycloakはOpenID Connect、OAuth2、SAMLなどの標準認証プロトコルを実装し、IdPとしてセッション管理やトークン発行でシングルサインオンを提供します。
- 差がつくポイント:BINDはDNS、OpenSSLは暗号処理、Logstashはログ収集処理であり、認証・SSOの機能を持たない点で明確に区別できます。
正解の理由
正解は イ:Keycloak です。
Keycloakはユーザ認証、認可、セッション管理、ユーザフェデレーション(LDAP/AD連携)、ソーシャルログイン、トークン(JWT)発行などを備え、複数アプリケーションや複数ドメイン間で一度のログインで利用できるシングルサインオン(SSO)を実現します。OpenID ConnectやSAMLといった標準プロトコルにより、既存アプリとの接続も容易であり、要件に合致します。
Keycloakはユーザ認証、認可、セッション管理、ユーザフェデレーション(LDAP/AD連携)、ソーシャルログイン、トークン(JWT)発行などを備え、複数アプリケーションや複数ドメイン間で一度のログインで利用できるシングルサインオン(SSO)を実現します。OpenID ConnectやSAMLといった標準プロトコルにより、既存アプリとの接続も容易であり、要件に合致します。
よくある誤解(2〜3 行)
- 「OpenSSLがあれば認証はできる」は誤りで、OpenSSLは暗号化ライブラリであり認証フレームワークではありません。
- 「DNS(BIND)やログ処理(Logstash)でSSOが実現できる」は誤解で、これらは認証機能を持ちません。
解法ステップ
- 要件を短く整理:一度のログインで全サイト利用=シングルサインオン(SSO)を求めている。
- SSOを提供するソフトウェアの特徴を挙げる:IdP機能、トークン発行、標準プロトコル対応。
- 選択肢を機能で比較:BIND(DNS)、OpenSSL(暗号化)、Logstash(ログ処理)、Keycloak(IdP/SSO)。
- 標準プロトコルの有無で絞る:OpenID Connect/SAML/OAuth2を実装しているのはKeycloak。
- 結論:要件を満たすのはKeycloakであり、よって イ を選ぶ。
選択肢別の誤答解説
- ア: BIND
DNSサーバソフトウェアであり、名前解決の提供が主目的です。認証やSSOの機能はありません。 - イ: Keycloak
正解。IdPとしてSSOを実現するための機能(OpenID Connect、SAML、OAuth2、ユーザフェデレーション、管理コンソールなど)を備えます。 - ウ: Logstash
ログ収集・変換・転送パイプラインのOSSで、認証やトークン発行などの機能は提供しません。 - エ: OpenSSL
暗号化処理・証明書管理のライブラリ/ツール群であり、認証サービスやSSOプロバイダではありません。
補足コラム(関連知識など)
- Keycloakの基本概念:Realm(認証領域)、Client(アプリケーション)、Identity Provider(外部IdP連携)、User Federation(LDAP/AD接続)。
- SSOでよく使われるプロトコル:SAML(主に企業間・教育機関)、OAuth2(認可)、OpenID Connect(OAuth2上の認証)。
- 実環境での注意点:クロスドメインのクッキー制約やリバースプロキシ構成、トークンの有効期限と更新(リフレッシュトークン)管理を設計する必要があります。
- 代替OSS例:CASやShibbolethなどもSSOを提供しますが、Keycloakは多機能かつUIでの管理がしやすい点が特徴です。
FAQ
Q: Keycloakは社内のLDAPやADと連携できますか?
A: はい。User FederationでLDAP/Active Directoryと連携し、既存ユーザをそのまま利用できます。
A: はい。User FederationでLDAP/Active Directoryと連携し、既存ユーザをそのまま利用できます。
Q: SSOは本当に「一度のログイン」で複数ドメインを跨げますか?
A: 原理的には可能ですが、クロスドメインCookie制約やCORS、トークン伝達方法(リダイレクトやフロントチャネル/バックチャネル)に注意が必要です。
A: 原理的には可能ですが、クロスドメインCookie制約やCORS、トークン伝達方法(リダイレクトやフロントチャネル/バックチャネル)に注意が必要です。
関連キーワード: SSO, Keycloak, OAuth2, OpenID Connect, SAML, IdP, JWT, シングルサインオン、認証、認可

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

