本稿ではKeyCloakでGitHub認証をセットアップする手順を解説します。
KeyCloakとは
KeyCloakはオープンソースの認証基盤です。ユーザーの登録やログインなど、ウェブアプリケーションでよく使うアカウント周りを、HTTPサーバーとして提供するマイクロサービス的なものです。KeyCloakは、GoogleアカウントやGitHubアカウントをはじめとした、複数の認証プロバイダーと連携することができ、いわゆるGitHub認証などをサクッと実現できるのも売りのひとつです。
KeyCloakでGitHub認証をセットアップする手順
KeyCloakの起動
まず、KeyCloakを立ち上げます。起動方法はいろいろありますが、Dockerを使うのが最も手軽で確実です。
docker run \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
-p 8080:8080 quay.io/keycloak/keycloak:18.0.2 start-dev
管理画面にログインする
起動したら、ブラウザでhttp://localhost:8080/を開きます。
開くと、次のようなKeyCloakのUIが表示されるので、「Administration Console」を開きます。
管理画面へのログイン画面が出るので、admin/adminでログインします。
レルムを作成する
「Add realm」ボタンをクリックし、レルム追加画面を出します。
「Name」フィールドにレルム名を入れます。なんでもいいですが、ここでは「myrealm
」と入力します。入力したら「Create」ボタンを押します。
GitHubを認証プロバイダーに追加する
ログインできたら、ここからはGitHubを認証プロバイダーに追加する作業を行っていきます。
左のメニューの「Configuration」→「Identity Providers」を開きます。開いたら、「Add provider...」セレクトボックスから「GitHub」を選択します。
すると、「Add identity provider」という画面が表示されるので、そこに表示された「Redirect URI」の値をコピーしておきます。これは、GitHubでOAuth Appを作るときに使います。
この画面は開いたままにしておいてください。まだ「Save」しないでください。
GitHubにてOAuth Appを作成する
ここからは一旦KeyCloakは置いておいて、GitHub側でのOAuth Appを作っていきます。
次のURLを開き、
「New OAuth App」を開きます。
開いたら、次のフィールドを埋めます。
- Application name:
KeyCloakローカルテスト
- Homepage URL:
http://localhost:8080
- Authorization callback URL: 上でコピーした「Redirect URI」をペーストする
上のフィールドを埋めたら、「Register application」をクリックします。
すると、OAuth Appが作成されるので、
- 「Client ID」の値を控えます。これは後でKeyCloak側に入力するのに使います。
- 「Generate a new client secret」ボタンを押して、「Client secrets」を生成します。
「Client secrets」が生成されたら、その値も控えておきます。
GitHubでの作業は以上で完了です。
KeyCloakのGitHub設定にClient IDなどを設定する
続いて、先程のKeyCloakの「Add identity provider」の画面に戻り、上の手順で得た
- Client ID
- Client Secret
を入力し、「Save」ボタンを押します。
関連