サンプル認可サーバーのセットアップ

このガイドでは、Authlete のフロントエンドとして動作する認可サーバー(AS)のセットアップと、クライアント(OpenID Connect Debugger)を用いたテスト方法を説明します。

前提条件

このガイド手順の実施にあたっては、事前にクイックスタートに従い Authlete を設定し、以下の値を控えておいてください。

項目
API クラスターのホスト名
サービスアクセストークン
サービス ID

また、認可サーバーの実行環境として、以下のいずれかが必要です。

  • Docker(推奨)バージョン 1.29 以上
  • Java

1. クライアントの作成

クライアント作成を開始

Authlete コンソールの Sample Service に移動し、初めてのクライアントを作成しましょう(もしくはクライアントを新規作成)をクリックします。

Create Client Screenshot

クライアントの名前(例: Sample Client)を入力し、作成をクリックします。

Create Client Screenshot

クライアント ID を取得

作成後、クライアントの基本設定が表示されます。

Create Client Screenshot

自動生成されている、クライアント ID の値を控えておきます。

項目
クライアント ID

次に左ペインのエンドポイントをクリックし、さらに基本設定をクリックします。

リダイレクト URI を指定

エンドポイントの基本設定が表示されます。リダイレクト URI セクションの追加をクリックします。

Create Client Screenshot

「URI を追加」の項目に、値として https://oidcdebugger.com/debug を追加します。他の設定はすべてデフォルトのままにし、変更を保存をクリックします。

Create Client Screenshot

これで Authlete 側の設定は完了です。

2. 認可サーバーのセットアップ

サンプル認可サーバーを入手

GitHub に公開されている、様々な認可サーバー参照実装の中から、java-oauth-server リポジトリをクローンします。

$ git clone https://github.com/authlete/java-oauth-server.git
$ cd java-oauth-server

接続情報を設定

Authlete サービスへの接続情報を設定します。まず、authlete.properties ファイルの最後の 4 行をアンコメント(行頭の # を削除)します。

api_version = V3
base_url = https://<region>.authlete.com
service.api_key = 986126671
service.access_token =

これらのプロパティを、以下のように編集します。

項目 説明
api_version V3 V3 のまま
base_url <region> を API クラスタリージョンに応じて変更
service.api_key サービス ID を指定
service.access_token サービスアクセストークンを指定

編集後のプロパティを以下に示します。

api_version =
base_url =
service.api_key =
service.access_token =

サンプル認可サーバーを実行

Docker または Java を使用してサーバーを実行します。

Docker を使用(推奨)

以下のコマンドでサーバーを起動します。

docker compose up

Java を使用

Maven がインストールされていて JAVA_HOME が正しく設定されていることを確認し、次のコマンドを実行します。

mvn jetty:run

セットアップの確認

ブラウザを開き、http://localhost:8080 にアクセスします。サンプル認可サーバーのホームページが表示されます。

homepage

これで、サンプル認可サーバーの設定が完了しました。

3. 認可サーバーのテスト

認可コードの発行(OAuth2 認可コードグラント)

Web ブラウザから OpenID Connect Debugger にアクセスし、以下の情報を設定します。

  • Authorize URI: http://localhost:8080/api/authorization を入力
  • Client ID: ステップ 1 で生成されたクライアント ID (例: ) を入力
  • Scope: 無し(初期値 openid を削除)
  • Response type: code を選択
  • Response mode: form_post を選択
  • Use PKCE: PKCE をテストする場合には選択(PKCE サポートは Authlete サービスのデフォルトで有効)

入力後、Send Request ボタンをクリックし、認可フローを開始します。

Create Client Screenshot

サンプル認可サーバーのログインページにリダイレクトされます。以下のログイン情報を入力し、Authorize をクリックします。

  • Login ID: max
  • Password: max

OpenID Connect Debugger にリダイレクトされ、サンプル認可サーバーの発行した認可コードが表示されます。

Create Client Screenshot

これで、サンプル認可サーバーがクライアント(OpenID Connect Debugger)に認可コードを発行するまでの確認ができました。このあと、クライアントは認可コードを用いてトークンリクエストを行うことで、アクセストークンが取得できます。(本ガイドでは割愛します)

ID トークンの発行 (OIDC インプリシットフロー)

次に、OpenID Connect のフローを試してみましょう。

  1. まず、さきほどのページ(認可コードが表示されているページ)の Start over をクリックし、OpenID Connect Debugger のホームページに戻ります。
  2. Authorize URI, Redirect URI および Client ID が設定済みであることを確認してください。
  3. Scopeopenid を入力します。
  4. Response type として id_token のみを選択します(code のチェックは外してください)。
  5. Send Request をクリックして新しい認可フローを開始します。
  6. サンプル認可サーバーのログインページにリダイレクトされます。Authorize をクリックします。
  7. OpenID Connect Debugger にリダイレクトされ、サンプル認可サーバーの発行した ID トークンが表示されます。
ID Token Screenshot

セキュリティ上の注意: ⚠️ このセットアップでは、ID トークンは client_secretHS256 アルゴリズムを使用して署名されています。この設定はデモ目的のみに使用してください。実際のアプリケーションでは、JSON Web Key (JWK) をアップロード し、RS256 のような非対称署名アルゴリズムを使用する必要があります。

以上です! 🎉 Authlete を使用した認可サーバーのセットアップおよびテストに成功しました。

この認可サーバーを使って、より高度な機能や設定を試してみましょう。

  • サンプル認可サーバー(java-oauth-server)のカスタマイズについては、CUSTOMIZATION.ja.md を参照してください。
  • 認可サーバーが使用している Authlete API の詳細については、API リファレンスを参照してください。