メインコンテンツまでスキップ

API リソース

API リソース、別名 リソースインジケーター は、リクエストされるターゲットサービスまたはリソースを示します。通常、リソースのアイデンティティを表す URI 形式の変数です。これは Logto の認可 (Authorization) システムにおける重要な概念であり、認可ポリシーが保護するために設計されたエンドポイントを定義します。

リソースインジケーター

  • リソース値は、アクセスが要求されているターゲットサービスまたはリソースを示します。
  • その値は絶対 URI でなければなりません。
  • URI はフラグメントコンポーネントを含んではなりません。
  • クエリコンポーネントを含むべきではありません。
  • アクセスしようとする完全な API またはリソースセットに対して、可能な限り具体的な URI を提供するべきです。

実際には、クライアントは対話するアプリケーションまたはリソースのベース URI を知っているかもしれません。それをリソースパラメーターの値として使用するのが適切です。

例:Logto Management API のベース URI。

https://tenantId.logto.app/api

デフォルトでは、この API リソースは Logto サービスに事前登録されています。この URI の下にあるすべての Management API は Logto によって保護されています。

Logto API リソーススキーマ

プロパティ名プロパティの説明必須
API 名API リソースを識別するのに役立つユーザーフレンドリーな名前。true
API 識別子上記の制限付きの一意の API リソースインジケーター 値。
Logto はこれを使用して要求された API リソースを識別し、認可トークンを適切に付与します。true
トークンの有効期限(秒単位)アクセス トークン の有効期限を設定します。デフォルトの有効期限は 3600 です。false
デフォルト APIテナントごとにゼロまたは 1 つのデフォルト API のみを設定できます。
デフォルト API が指定されると、認証リクエストでリソースパラメーターを省略できます。後続のトークン交換では、その API がデフォルトでオーディエンスとして使用され、JWT が発行されます。false
注記:

期限切れの アクセス トークン を持つリクエストは制限されるべきです。これは、乱用されたトークンから API を保護するために実装されています。設定された値が大きいほど、発行された アクセス トークン は長く生存し、API はより脆弱になります。

デフォルト API

注記:

この機能は、主に OIDC リソースインジケーターをサポートしていないアプリケーション、例:ChatGPT プラグイン向けに意図されています。

Logto は RFC 8707: OAuth 2.0 のリソースインジケーター を活用してロールベースのアクセス制御 (RBAC) を実装しています。これは OAuth 2.0 の機能の一つですが、まだ広くサポートされていません。

Logto の実装では、ユーザー定義の権限 (スコープ) はすべて API リソースに関連付けられている必要があります。そうでない場合、OpenID Connect (または OAuth) 権限として扱われます。一般的に、これは認可プロセスに影響を与えません。しかし、RFC 8707 をサポートしていないサードパーティアプリと統合する際には、初期の認可リクエストに resource パラメーターが含まれていないため、問題が生じる可能性があります。その結果、Logto は常に不透明なアクセス トークンを発行します。

この問題に対処するために、API リソースをテナントレベルのデフォルトリソースとして指定できます。一度設定されると:

  • Logto は、認証リクエストresource パラメーターが存在しない場合、デフォルトの API リソースを使用します。
  • openid スコープが含まれている場合、後続の トークンリクエストresource パラメーターが存在しない場合、ユーザー情報エンドポイント のための不透明なアクセス トークンが発行されます。
  • openid スコープが含まれていない場合、後続の トークンリクエストresource パラメーターが存在しない場合、デフォルトの API リソースのための JWT アクセス トークンが発行されます。

デフォルトの API リソースを指定することで、RFC 8707 サポートが欠けているアプリとのスムーズな統合を確保しながら、適切なアクセス制御を維持できます。

Logto に API リソースを登録する

Logto からオーディエンス制限付き アクセス トークン を取得するには、まずバックエンド API を登録して Logto のオーディエンス制限付きアクセス トークンを有効にします。認可リクエストが受信されると、Logto は登録された API リソースを識別し、適切にアクセスを許可します。

API を登録するには、Console > API リソース に移動します。API 識別子が https://[your-tenant-id].logto.app/api と表示されている組み込みリソースが表示されます。このリソースは Logto のすべての Management API を包含し、Logto の認可されたユーザーのみがアクセスできるように保護されています。

Create API resource ボタンをクリックし、インタラクティブなフォームに従って独自の API リソースを作成します:

  • このエンティティを識別するのに役立つ人間が読みやすい API 名
  • URI 形式の一意の API 識別子。これは API リソースのアイデンティティを表します。

新しい API は作成されるとリストに表示されます。エンティティをクリックして API 詳細ページで管理または削除できます。

関連リソース

不透明トークン vs JWT JWT を使用するべき時は? API 認可 (Authorization) 方法