Skip to main content

Copilot 拡張機能の OpenID Connect (OIDC)

OpenID Connect (OIDC) を使用して、有効期間の長い資格情報を格納せずに、Copilot Extensions がユーザーを安全に認証しクラウド リソースにアクセスできるようにする方法について説明します。

Copilot Extensions 用 OpenID Connect (OIDC) について

Copilot Extensions で OpenID Connect (OIDC) を使うと、有効期間の長い GitHub 資格情報を格納するのではなく、クラウド プロバイダーから有効期間の短いトークンを直接交換できます。 この機能により、Copilot エージェントとスキルセットの両方がより安全にユーザーを認証し、クラウド リソースにアクセスできるようになります。

OIDC の概要

多くの場合、Copilot Extensions は、ユーザーに代わってサード パーティのリソースまたは API にアクセスする必要があります。 これまでは、GitHub トークンをシークレットとして格納し、追加の API 呼び出しを行ってこれらのトークンをシステム内のユーザー ID にマップする必要がありました。 OIDC を使うと、拡張機能は、GitHub の ID 情報を交換することで、認証サービスから有効期間の短いアクセス トークンを直接要求できます。

有効にすると、GitHub の OIDC プロバイダーにより、ユーザーと要求コンテキストに関する要求を含むトークンが自動的に生成されます。 認証サービスにより、これらの要求が検証され、自分のサービス専用のスコープのアクセス トークンと交換されます。

GitHub 固有のエンドポイントを個別に維持することなく、既存の API エンドポイントを利用できるため、OIDC の使用は Copilot スキルセットの開発に特に役立ちます。 GitHub トークンを受け入れるためにエンドポイントを複製するのではなく、OIDC を使って GitHub ID をサービスのネイティブ認証トークンに変換できます。

OIDC を使う利点

Copilot Extension に OIDC トークン交換を実装すると、次のことが可能になります。

  • 有効期間の長い GitHub トークンを格納しないようにするか、GitHub とサービスの ID の間のマッピングを維持する。
  • 自動的に期限切れになり、サービスのニーズに合わせてスコープを指定できる有効期間の短いトークンを使う。
  • トークンの検証やユーザー情報のフェッチのために、GitHub の API を追加で呼び出すことを避ける。
  • GitHub 用に別のエンドポイントを維持することなく、Copilot スキルと既存の API の直接統合を有効にする。
  • GitHub の認証をサービスのネイティブ トークンに変換することで、既存の API エンドポイントを再利用する。

トークン交換フローについて

拡張機能への要求を認証するために、Copilot 拡張性プラットフォーム が OIDC トークンをアクセス トークンと交換する方法の概要を次に示します。

最初の要求

  1. ユーザーは、Copilot Extension にメッセージを送信します。
  2. GitHub により、ユーザー ID 情報を含む OIDC トークンが生成されます。
  3. GitHub により、OIDC トークンを使ってトークン交換エンドポイントが呼び出されます。
  4. サービスによってトークンが検証され、アクセス トークンが返されます。
  5. GitHub により、拡張機能への要求にアクセス トークンが追加されます。
# HTTP header
Authorization: Bearer <your-service-token>
X-GitHub-Token: <github-token>

後続の要求

  1. GitHub により、アクセス トークンは最長 10 分間キャッシュされます。
  2. キャッシュされたトークンは後続の要求で再利用されます。
  3. トークンの有効期限が切れるか無効になった場合、GitHub から新しいトークンが要求されます。

OIDC トークンの概要

GitHub の OIDC トークンは、ユーザーと要求コンテキストに関する要求を含む JWT です。

{
  "jti": "<unique-token-id>",
  "sub": "<github-user-id>",
  "aud": "<your-client-id>",
  "iss": "https://github.com/login/oauth",
  "nbf": 1632492967,
  "exp": 1632493867,
  "iat": 1632493567,
  "act": {
    "sub": "api.copilotchat.com"
  }
}

ベスト プラクティス

  • トークンのスコープを必要最小限のアクセス許可に限定します。
  • 適切なエラー処理とログを実装します。
  • セキュリティ上の異常がないか、トークン交換パターンを監視します。
  • セキュリティ リスクを最小限に抑えるために、トークンの有効期間を短くします。
  • アクセス トークンを発行する前に、すべての要求を検証します。
  • トークン交換エンドポイントにレート制限を実装することを検討してください。
  • すべてのトークン交換通信には HTTPS を使います。

次のステップ

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy