KeyCloak

Keycloak SSO環境構築の基礎と準備

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Keycloak SSO環境構築の基礎と準備

Keycloakを用いたSSO環境構築には、導入前の準備が不可欠です。特に公式ドキュメントとの整合性確認必要なツールの選定が成功の鍵となります。最新バージョン(2025年7月時点では19.0.3)と互換性のある環境を整えることで、後々の運用負担を軽減できます。

必要なツールと前提条件

SSO構築に必要な主なツールとその役割は以下の通りです。

項目 推奨バージョン 備考
Keycloak 19.0.3 最新版の公式リリース
Java OpenJDK 17 実行環境として必須
データベース PostgreSQL 15 認証情報管理に使用
Webサーバー Apache HTTPd 2.4.53 セキュリティ設定と負荷分散

上記の構成では、JavaとデータベースのバージョンがKeycloakの動作保証範囲内であることが重要です。公式サイトやGitHubリポジトリで最新情報は常に確認してください。


管理コンソールでのレルムとユーザー設定

Keycloakの管理コンソールを用いたレルム作成とユーザー登録は、SSO環境構築の基礎です。ここでは実務でよく使用される手順とセキュリティポリシーの初期値について解説します。

レルム作成のステップ

レルムは、認証情報を管理する仮想な組織単位として機能します。以下の手順で作成してください。

  1. 管理コンソール(https://<host>:8443/admin)にログイン
  2. 『Realms』 > 『Create Realm』 を選択
  3. レルム名を入力し、『Create』 をクリック

作成後のレルム設定では、暗号化アルゴリズム(例:PBKDF2)やトークン有効期限(デフォルトは5分)の変更が可能です。これらはセキュリティ強化に直接影響するため、必要に応じて調整してください。

ユーザーアカウント登録・ロール割当

ユーザーをレルムに追加し、適切なロール(Role)を割り当てることで、アクセス制御が可能になります。手順は以下の通りです。

  1. 『Users』 > 『Create User』 をクリック
  2. ユーザー名とメールアドレスを入力し、『Save』
  3. 作成したユーザーを選択し、『Roles』 タブからロールを追加

ロールは「管理者」「一般ユーザ」などに分類され、アクセス制御ポリシー(Access Control Policy)と連携します。初期値のロール権限は最小限に設定することを推奨します。


クライアントアプリケーションとの連携設定

クライアントアプリケーションとKeycloakの連携を確立するには、Client Authenticationの有効化やリダイレクトURIの設定が不可欠です。これらの手順を誤ると認証エラーが発生します。

Client Authenticationの有効化手順

クライアントアプリケーションにKeycloakが信頼できるようにするには、以下の手順でClient Authenticationを有効化します。

  1. 管理コンソールの『Clients』 > 『Create Client』
  2. クライアントIDとシークレット(Client Secret)を生成
  3. 『Access Type』 を「confidential」に設定し、『Save』

このステップで生成されたクライアントIDとシークレットは、アプリケーション側での認証に使用されます。厳重に管理することをお忘れなく。

Redirect URIの正しい設定方法

Redirect URIは、認証後にユーザーが戻るURLを指定します。誤った設定ではSSOフローが中断するため注意が必要です。

  • 必須条件
  • リダイレクトURIはアプリケーション側の実際のエンドポイントと完全一致すること
  • サポートしているプロトコル(HTTP/HTTPS)を確認し、一致させる

例:https://app.example.com/callback

また、複数のリダイレクトURIを登録する場合は、『Root URL』 にアプリケーションベースURLを設定しておくと管理が楽です。


OpenID ConnectプロトコルによるSSOフロー構築

OpenID Connectは、OAuth 2.0に基づく認証プロトコルで、SSO環境の基盤技術です。ここではAuthorization Codeフロートークンライフタイム設定に焦点を当てます。

Authorization Codeフローの概要

Authorization Codeフローは、最もセキュアかつ一般的な認証フローです。以下の手順で動作します。

  1. ユーザーがアプリケーションにログインリクエストを送信
  2. Keycloakにリダイレクトされ、ユーザー認証と承諾を得る
  3. アプリケーションにコード(Code)が戻される
  4. Keycloakからトークン(Access Token / ID Token)が取得されて認証完了

このフローでは「Client Authentication」が必須です。これにより、不正なアプリケーションからのアクセスを防ぎます。

トークンライフタイム設定の最適化

トークンの有効期間はセキュリティとユーザー体験のバランスに大きく影響します。

  • Access Tokenのデフォルト: 5分
  • ID Tokenのデフォルト: 同じく5分

これらを変更するには、『Realm Settings』 > „Tokens“ セクションで調整可能です。企業内では10分以内に設定し、セキュリティリスクを最小限にすることが推奨されます。


フェデレーション設定における実践例

フェデレーション(Federation)は、外部認証プロバイダー(Google、SAMLなど)とKeycloakの連携を指します。特に企業ではGoogle Cloudとの連携が一般的です。

Google Cloudとの連携手順

  1. Google Cloud Console でOAuthクライアントIDを作成
  2. Keycloak管理コンソールの『Identity Providers』 > „Create Identity Provider“ を選択
  3. プロバイダータイプに「Google」を選択し、Client IDとClient Secretを入力
  4. 『Save』 してテスト認証を実施

このとき注意点として、以下の情報を正しく設定する必要があります。

  • クライアントID(Client ID):Google Cloudプロジェクト内で取得したもの
  • リダイレクトURI(Redirect URI):https://your-keycloak-host/realms/your-realm-name/protocol/openid-connect/callback/google

セキュリティ強化と運用ベストプラクティス

Keycloakのセキュリティを高めるには、メタデータファイルの導入証明書管理が不可欠です。以下に具体的な手順と注意点を紹介します。

メタデータファイルの導入手順

OpenID Connectプロトコルでは、認証情報を取得するために「メタデータファイル」が必要です。このファイルは以下のURLで参照できます。

このURLはクライアントアプリケーションが自動的に読み込むため、外部アクセス可能に設定する必要があります。

証明書の定期更新ポリシー

Keycloakでは、トークン署名に使用される証明書を管理できます。以下の手順で確認・更新しましょう。

  1. 『Realm Settings』 > „Keys“ から証明書一覧を表示
  2. 切替対象の証明書を選択し、『Rotate Key』 を実施
  3. 更新後は、認証フローをテストして正常動作を確認

証明書の更新周期は6か月〜1年程度が一般的です。自動更新機能があれば、運用負担を軽減できます。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-KeyCloak