メインコンテンツへスキップ
このページは Authlete 3.0 用です。2.x で Java による認可サーバー・リソースサーバーのチュートリアル(ロイヤルティ/eコマースデモ)は JavaでのAuthlete API入門(2.x) をご覧ください。入力フィールドで接続情報を入れると authlete.properties が動的に表示されるインタラクティブ版www.authlete.com のサンプル認可サーバーのセットアップ をご利用ください。
このガイドでは、Authlete のフロントエンドとして動作する認可サーバー(AS)のセットアップと、クライアント(OpenID Connect Debugger)を用いたテスト方法を説明します。

前提条件

このガイド手順の実施にあたっては、事前にクイックスタートに従い Authlete を設定し、以下の値を控えておいてください。
項目
API クラスターのホスト名例: https://jp.authlete.com
サービスアクセストークン例: jd_P2VXffUXNCESflQCNOCF76bgHXDV6kulIMax5ArA
サービス ID例: 2382899440
また、認可サーバーの実行環境として、以下のいずれかが必要です。
  • Docker(推奨)バージョン 1.29 以上
  • Java

1. クライアントの作成

クライアント作成を開始

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

クライアント ID を取得

作成後、クライアントの基本設定が表示されます。 Create Client Screenshot 自動生成されている、クライアント ID の値を控えておきます。
項目
クライアント ID例: 1449670235
次に左ペインのエンドポイントをクリックし、さらに基本設定をクリックします。

リダイレクト 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_versionV3V3 のまま
base_url例: https://jp.authlete.com<region> を API クラスタリージョンに応じて変更
service.api_keyサービス IDサービス ID を指定
service.access_tokenサービスアクセストークンサービスアクセストークンを指定
編集後のプロパティを以下に示します。
api_version = V3
base_url = https://jp.authlete.com
service.api_key = 2382899440
service.access_token = jd_P2VXffUXNCESflQCNOCF76bgHXDV6kulIMax5ArA

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

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 リファレンスを参照してください。