[小ネタ] ALB のユーザー認証を Keycloak で設定してみた(OpenID Connect)

[小ネタ] ALB のユーザー認証を Keycloak で設定してみた(OpenID Connect)

2026.02.25

クラスメソッドオペレーションズの hato です。
ALB のユーザー認証は、Cognito と OpenID Connect(OIDC)準拠の独自 IdP がサポートされていますが、独自 IdP(Keycloak)を設定する機会がありましたので、小ネタとして紹介します。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-authenticate-users.html

やってみた

構成図

ALB OIDC Authentication Keycloak 99

前提

手順

  1. Realm を作成
  2. 認証用のユーザーを作成
  3. ALB 用のクライアントを作成
  4. IdP エンドポイント情報の確認
  5. ALB のユーザー認証を設定

Realm を作成

テナントに相当する Realm を作成します。
作成済みの場合はスキップしてください。

Keycloak 管理コンソールから「Create realm」をクリックします。

ALB OIDC Authentication Keycloak 1

「Realm name」に任意の名前を入力し、「Create」をクリックします。

ALB OIDC Authentication Keycloak 2

左上の「Current realm」で、作成した Realm が選択されていることを確認します。

ALB OIDC Authentication Keycloak 3

認証用のユーザーを作成

認証用のユーザーを作成します。
対象の Realm を選択した状態で、「Create New User」をクリックします。

ALB OIDC Authentication Keycloak 4

次の値を入力して「Create」をクリックします。
Username以外はオプションですが、設定しないと初回ログインの際に設定することになります。

  • Username
  • Email
  • First name
  • Last name

ALB OIDC Authentication Keycloak 5

パスワードを設定するため「Credentials」タブから「Set password」をクリックします。

ALB OIDC Authentication Keycloak 6

任意のパスワードを入力して、「Save」をクリックします。

ALB OIDC Authentication Keycloak 7

再度「Save password」をクリックします。
ALB OIDC Authentication Keycloak 8

ALB 用のクライアントを作成

対象の Realm を選択した状態で、「Create Client」をクリックします。

ALB OIDC Authentication Keycloak 9

Client typeOpenID Connectを選択。
任意のClient IDを入力して、「Next」をクリックします。

ALB OIDC Authentication Keycloak 10

Client authenticationのトグルを有効にして「Next」をクリックします。

ALB OIDC Authentication Keycloak 11

それぞれ次のように入力して「Save」をクリックします。

  • Valid redirect URIshttps://<アプリケーションドメイン>/oauth2/idpresponse
  • Web originshttps://<アプリケーションドメイン>/

※仕様上、Valid redirect URIsの「/oauth2/idpresponse」は固定です。

ALB OIDC Authentication Keycloak 12

クライアントのシークレットを確認します。
「Credentials」タブの「Client Secret」のアイコンからコピーします。

ALB OIDC Authentication Keycloak 13

IdP エンドポイント情報の確認

ALB に設定するエンドポイント情報を確認します。

「Realm settings」の「OpenID Endpoint Configuration」リンクをクリックして、JSON ファイルをダウンロードします。

ALB OIDC Authentication Keycloak 14

ダウンロードした JSON に含まれる各種 URL を次の手順で ALB に設定します。

{
  "issuer": "https://example.com/realms/hato-realm",
  "authorization_endpoint": "https://example.com/realms/hato-realm/protocol/openid-connect/auth",
  "token_endpoint": "http://example.com/realms/hato-realm/protocol/openid-connect/token",
  "introspection_endpoint": "http://example.com/realms/hato-realm/protocol/openid-connect/token/introspect",
  "userinfo_endpoint": "http://example.com/realms/hato-realm/protocol/openid-connect/userinfo",
...

ALB のユーザー認証を設定

認証を設定する ALB のリスナーを選択します。

ALB OIDC Authentication Keycloak 20

リスナーから具体的に設定するルールを選択します。

ALB OIDC Authentication Keycloak 21

「ユーザーを認証」を選択して、ダウンロードした JSON、発行したクライアントの情報を入力します。

  • アイデンティティプロバイダー
    • OIDC (OpenID Connect)
  • 発行者
    • JSON ファイルのissuerの値
  • 認証エンドポイント
    • JSON ファイルのauthorization_endpointの値
  • トークンエンドポイント
    • JSON ファイルのtoken_endpointの値
  • ユーザー情報エンドポイント
    • JSON ファイルのuserinfo_endpointの値
  • クライアント ID
    • 入力したクライアントの ID
  • クライアントのシークレット
    • 確認したクライアントのシークレット

ALB OIDC Authentication Keycloak 19

認証を設定したリスナー(ドメイン)にアクセスして、Keycloak のログイン画面が表示されたら完了です。お疲れ様でした。

ALB OIDC Authentication Keycloak 18

最後に

この記事が誰かのお役にたてば幸いです。

参考資料

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 採用サイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

この記事をシェアする

FacebookHatena blogX

関連記事