> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Authlete のフロントエンドとして動作する認可サーバーをセットアップし、OAuth2 および OpenID Connect フローをテストしてみましょう。

<Note>
  このページは **Authlete 3.0** 用です。2.x で Java による認可サーバー・リソースサーバーのチュートリアル（ロイヤルティ／eコマースデモ）は [JavaでのAuthlete API入門（2.x）](/ja/v2/get-started/quickstarts/getting-started-with-the-authlete-apis-in-java) をご覧ください。**入力フィールドで接続情報を入れると authlete.properties が動的に表示されるインタラクティブ版**は [www.authlete.com のサンプル認可サーバーのセットアップ](https://www.authlete.com/ja/developers/tutorial/signup/) をご利用ください。
</Note>

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

## 前提条件

このガイド手順の実施にあたっては、事前に[クイックスタート](/ja/get-started/setting-up-authlete)に従い Authlete を設定し、以下の値を控えておいてください。

| 項目             | 値                                                |
| -------------- | ------------------------------------------------ |
| API クラスターのホスト名 | 例: `https://jp.authlete.com`                     |
| サービスアクセストークン   | 例: `jd_P2VXffUXNCESflQCNOCF76bgHXDV6kulIMax5ArA` |
| サービス ID        | 例: `2382899440`                                  |

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

* Docker（推奨）バージョン 1.29 以上
* Java

## 1. クライアントの作成

### クライアント作成を開始

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/ja/017.jpg" alt="Create Client Screenshot" width="800" />

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/create-client-1.jpg" alt="Create Client Screenshot" width="800" />

### クライアント ID を取得

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/create-client-2.jpg" alt="Create Client Screenshot" width="800" />

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

| 項目        | 値               |
| --------- | --------------- |
| クライアント ID | 例: `1449670235` |

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

### リダイレクト URI を指定

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/create-client-3.jpg" alt="Create Client Screenshot" width="800" />

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/create-client-4.jpg" alt="Create Client Screenshot" width="800" />

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

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

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

[GitHub に公開されている](https://github.com/authlete)、様々な認可サーバー参照実装の中から、[java-oauth-server](https://github.com/authlete/java-oauth-server) リポジトリをクローンします。

```bash theme={null}
$ git clone https://github.com/authlete/java-oauth-server.git
$ cd java-oauth-server
```

### 接続情報を設定

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

```properties theme={null}
api_version = V3
base_url = https://<region>.authlete.com
service.api_key = 986126671
service.access_token =
```

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

| 項目                    | 値                            | 説明                               |
| :-------------------- | :--------------------------- | :------------------------------- |
| api\_version          | `V3`                         | `V3` のまま                         |
| base\_url             | 例: `https://jp.authlete.com` | `<region>` を API クラスタリージョンに応じて変更 |
| service.api\_key      | サービス ID                      | サービス ID を指定                      |
| service.access\_token | サービスアクセストークン                 | サービスアクセストークンを指定                  |

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

```properties theme={null}
api_version = V3
base_url = https://jp.authlete.com
service.api_key = 2382899440
service.access_token = jd_P2VXffUXNCESflQCNOCF76bgHXDV6kulIMax5ArA
```

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

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

#### Docker を使用（推奨）

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

```bash theme={null}
docker compose up
```

#### Java を使用

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

```bash theme={null}
mvn jetty:run
```

### セットアップの確認

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/4.png" alt="homepage" width="800" />

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

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

### 認可コードの発行（OAuth2 認可コードグラント）

Web ブラウザから [OpenID Connect Debugger](https://oidcdebugger.com/) にアクセスし、以下の情報を設定します。

* **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** ボタンをクリックし、認可フローを開始します。

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/7.png" alt="Create Client Screenshot" width="800" />

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

* **Login ID**: `max`
* **Password**: `max`

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/8.png" alt="Create Client Screenshot" width="800" />

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

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

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

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

<img src="https://storage.googleapis.com/authlete-website/resources/tutorial/v3/signup/9.png" alt="ID Token Screenshot" width="800" />

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

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

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

* サンプル認可サーバー（java-oauth-server）のカスタマイズについては、[CUSTOMIZATION.ja.md](https://github.com/authlete/java-oauth-server/blob/master/doc/CUSTOMIZATION.ja.md) を参照してください。
* 認可サーバーが使用している Authlete API の詳細については、[API リファレンス](/api-reference)を参照してください。
