Table of Contents
本記事では、Authlete のサービスアクセストークン (Service Access Token、以下 SAT) について説明します。
SAT は、単一の Authlete サービスに対して発行されるベアラークレデンシャル(bearer credential)です。これは、認可サーバー、リソースサーバー、CLI スクリプト、または CI/CD パイプラインが、Authlete のランタイム API やサービス管理 API を呼び出す際に提示するクレデンシャルです。
プリセットの利用、または個別の権限選択によって権限をカスタマイズすることで、呼び出し元が必要とするものだけにトークンのスコープを正確に絞り込むことができます。これにより、リソースサーバーにはイントロスペクション権限のみ付与、管理ツールには必要なクライアント管理権限のみ付与、といったことが可能になります。
サービスアクセストークン一覧でトークンを区別するために使用される、人間が読める形式の識別子です。この名前は、トークンの動作や権限には影響しません。
トークンの有効期限が切れ、無効になる日時を指定します。
自動化で使用されるトークンについては、明示的に有効期限を設定することを強く推奨します。コンソール上では、1ヶ月以内に有効期限が切れるトークンは赤色で表示されます。
トークンの値は、トークンが作成またはローテーションされた際に一度だけ表示されます。
トークンをローテーションして、新しい値を生成することができます。
すべてのサービスアクセストークンはテーブルに一覧表示されます。テーブルには以下のカラムが含まれます。
標準的な OAuth 2.0 のロールに合わせた、事前設定された権限セットです。プリセットを選択すると、固定の権限の組み合わせが適用されます。その後、手動で権限を追加または削除すると、プリセットの選択は解除されます。
| プリセット | 説明 | 権限 |
|---|---|---|
| Authorization Server | 標準的な認可サーバーが必要とする、すべてのランタイム OAuth/OIDC エンドポイントへのアクセスを許可します。 | use_ |
| Admin Authorization Server | デフォルトで選択されているプリセットです。サービスに対する完全な管理権限を付与します。ランタイムエンドポイント、クライアント管理、およびサービス設定が含まれます。 | modify_ |
| Resource Server | リソースサーバーがアクセストークンを検証するために必要な、最小限のアクセス権です。 | use_ |
ユースケースに合うプリセットがない場合は、権限を個別に選択できます。権限は、権限の継承で説明されている継承ルールに従い、上位レベルの権限を選択すると、暗黙的に下位レベルの権限も付与されます。
preset と permissions の両方が省略された場合は、トークンを作成ボタンが無効化されます。トークンを発行する前に、プリセットを選択するか、少なくとも 1 つの権限を選択する必要があります。プリセットが選択された後で、呼び出し元が個別の権限を追加または削除した場合、プリセットの選択は解除されます。
use_serviceランタイムの OAuth/OIDC 操作です。認可サーバーの運用における標準的な権限です。以下の呼び出しを許可します。
/auth/authorization /auth/token /auth/userinfo /auth/introspection /auth/revocation /pushed_auth_req /service/configuration /service/jwks/get /backchannel/authentication /device/authorization /device/verification /device/complete /federation/* /vci/* (Verifiable Credentials)/jose/verify /idtoken/reissue /token/create /token/update /token/delete /token/revoke /token/get/list /rs/sign /hsk/get /client/authorization/get/list /client/registration (動的クライアント登録)また、暗黙的に use_、view_、および view_ も付与します。
use_introspectionトークンイントロスペクションのみ。リソースサーバーがアクセストークンを検証するために必要な最小限の権限です。以下の呼び出しを許可します。
/auth/introspection /auth/introspection/standard /auth や /auth といったランタイムのエンドポイントへのアクセスは許可しません。
view_serviceサービス設定の参照です。以下の呼び出しを許可します。
/service/get /service/get/list また、暗黙的に view_ も付与します。モニタリングダッシュボードや参照のみのインテグレーションに使用してください。
view_clientクライアントの詳細の参照です。以下の呼び出しを許可します。
/client/get /client/get/list /client/granted_scopes/get /client/extension/requestable_scopes/get クライアントの作成、変更、削除は許可しません。クライアントの登録状況を検査する、監査ツールやダッシュボードに使用してください。
modify_clientクライアントの更新および削除です。これには、認可を削除してユーザーのログアウト処理を実行するために必要なエンドポイントも含まれます。以下の呼び出しを許可します。
/client/update /client/delete /client/secret/update /client/secret/refresh /client/lock_flag/update /client/extension/requestable_scopes/update /client/granted_scopes/delete /client/authorization/delete (ユーザーセッションの取り消し / ログアウト)/client/authorization/update また、暗黙的に view_ も付与します。
create_clientOAuth クライアントの新規登録をプログラムから行う場合に適します。以下の呼び出しを許可します。
/client/create /client/get/default また、暗黙的に use_、modify_、view_、および view_ も付与します。プラットフォームが OAuth クライアントを動的にプロビジョニングする場合に使用してください。
modify_serviceサービスの完全な管理を行います。以下の呼び出しを許可します。
/service/update /hsk/create /hsk/delete /client/extension/requestable_scopes/delete 他のすべての SAT 権限を含みます。サービスに対する完全な制御が必要な管理ツールや CI/CD パイプラインに使用してください。
上位レベルの権限は、依存する下位レベルの権限を暗黙的に付与します。継承の連鎖は以下の通りです:
modify_service → すべての権限create_client → use_service , modify_client , view_service , view_client use_service → use_introspection , view_service , view_client modify_client → view_client view_service → view_client Authlete のサービスレベル API を呼び出す際、Authorization ヘッダーにベアラークレデンシャルとしてトークンを指定し、さらに、サービス ID および適切な API サーバー URL と組み合わせて使用してください。
以下は、use_ 権限を持つ SAT を使用して、認可サーバーから Process Token Request API を呼び出す例です。
curl --oauth2-bearer ${SERVICE_ACCESS_TOKEN} \
https://${AUTHLETE_SERVER}/api/${SERVICE_ID}/auth/token \
--data-urlencode "parameters=grant_type=authorization_code&code=…&redirect_uri=…" \
--data-urlencode "clientId=client001" \
--data-urlencode "clientSecret=${CLIENT_SECRET}"
以下は、use_ のみを保持する SAT を使用して、リソースサーバーから Process Introspection Request API を呼び出す例です。
curl --oauth2-bearer ${SERVICE_ACCESS_TOKEN} \
https://${AUTHLETE_SERVER}/api/${SERVICE_ID}/auth/introspection \
--json '{
"token": "${ACCESS_TOKEN_TO_VALIDATE}"
}'
Authlete API サーバーは呼び出されるたびにトークンの権限をチェックします。エンドポイントの要求する権限がトークンに付与されていない場合、レスポンスは 403 Forbidden となります。例えば、use_ のみが付与されたトークンでは /auth を呼び出すことはできません。
サービスアクセストークンは、Authlete IdP の /api エンドポイントによって発行されます。管理者がトークンを作成ボタンをクリックすると、管理コンソールが代行してこのエンドポイントを呼び出します。このエンドポイントは、呼び出し元を IdP ユーザー(セッションまたはユーザーアクセストークン経由)として認証し、対象サービスに対する MODIFY_SERVICE 権限を要求します。サービスアクセストークンおよび組織アクセストークンは、このエンドポイントのベアラークレデンシャルとしては受け付けられません。
コンソールが送信するリクエストボディの形式は以下の通りです。
| リクエストパラメーター | 必須/任意 | 説明 |
|---|---|---|
serviceId |
必須 | トークンが対象とするサービスの ID です。 |
organization |
必須 | サービスを所有する組織の ID です。 |
api |
必須 | サービスをホストしている API サーバー(クラスター)の ID です。 |
description |
必須 | コンソールに表示され、トークンを区別するために使用される、人間が読める形式の名前です。 |
preset |
必須 | standard_as、admin_as、resource_server、または custom のいずれかです。 |
permissions |
条件付き必須 | 明示的な権限のリストです。preset が custom の場合は必須、それ以外のプリセットの場合は指定すると拒否されます。権限は use_、use_、view_、view_、create_、modify_、modify_ から選択する必要があります。 |
durationSeconds |
任意 | 作成からのトークンの有効期間を秒単位で指定します。無期限のトークンの場合は省略(または null を設定)できます。 |
レスポンスボディの形式は以下の通りです。
{
"serviceId": 12345,
"organizationId": 67890,
"apiServerId": 111,
"accessToken": "sat_3Yq9bP0u1NiqU6Pz_uIH7n3Z2bP7Sg5K…",
"tokenId": "01HW…",
"description": "prod-as",
"permissions": ["use_service"],
"createdAt": "2026-05-12T07:34:22Z",
"expiresAt": "2026-06-11T07:34:22Z"
}
Authlete の API 呼び出しが HTTP 403 Forbidden で失敗した場合、レスポンスボディにはエンドポイントが要求する正確な権限名を記載した resultMessage が含まれます。
[A457101] (/client/create) Function requires access rights ([CREATE_CLIENT])
for service (233044842478), access token does not have sufficient access.
[A456101] (/client/delete/{clientIdentifier}) Function requires access rights
([MODIFY_CLIENT]) for service (1495709902) and client (4140464843).
角括弧で囲まれたアクセス権(例: [CREATE_CLIENT]、[MODIFY_CLIENT])をカスタム権限のいずれかの権限にマッピングし、その権限でトークンを再発行してください。オプションは以下の2つです:
modify_service ) が、すべてのクライアント管理およびサービス管理のエンドポイントをカバーします。create_client を有する必要があります。この単一の権限により、暗黙的に use_service 、modify_client 、view_service 、および view_client が付与されます。resultMessage のアクセス権 |
エンドポイント | 修正に必要な最小限の権限 |
|---|---|---|
[CREATE_CLIENT] |
/client, /client |
create_ (または modify_) |
[MODIFY_CLIENT] |
/client, /client, /client, /client, … |
modify_ (または create_ / modify_) |
[MODIFY_SERVICE] |
/service, /hsk, /hsk |
modify_ |
[USE_INTROSPECTION] |
/auth, /auth |
use_ (または use_) |
[VIEW_CLIENT] |
/client, /client, /client |
view_ (または任意のより上位レベルの権限) |
[VIEW_SERVICE] |
/service, /service |
view_ (または任意のより上位レベルの権限) |
| ユースケース | 推奨されるプリセット | 重要な権限 |
|---|---|---|
| 標準的な認可サーバー | Authorization Server | use_ |
| リソースサーバー(イントロスペクションのみ) | Resource Server | use_ |
| ユーザーのログアウト / セッション管理 | Custom | modify_ |
| 動的なクライアントプロビジョニング | Custom | create_ |
| モニタリング / インベントリダッシュボード | Custom | view_ |
| クライアント設定の監査 / 設定レビュー | Custom | view_ |
use_introspection のみを、また読み取り専用のダッシュボードには view_service のみを付与すべきです。modify_service は、信頼された管理ツール専用としてください。サービスアクセストークンは、Authlete API を呼び出す各ランタイムワークロードに対して、スコープが絞られた単一のクレデンシャルを Authlete の運用環境に提供します。プリセットモデルは、標準的な認可サーバー、リソースサーバー、および管理ユースケースを、すぐに利用できる形でカバーします。一方、カスタム権限と継承ルールにより、その他のインテグレーション向けに最小権限のトークンを簡単に発行できます。
詳細については、お問い合わせフォームよりご連絡ください。