キーで保護された API と API プラグインを統合する

完了

API をセキュリティで保護する一般的な方法の 1 つは、API キーを使用することです。 API キーは、API 所有者が API へのアクセスを許可するために発行する任意の文字列です。 一般的なサービスの多くは、API キーを使用して API へのアクセスをセキュリティで保護します。 API キーを発行する API プロバイダーは、キーによって API サーフェス全体とすべてのリソース、またはその特定の部分にのみアクセスできるかどうかを制御します。 このサービスでは、キーの有効期間も制御します。

API キーは、そのシンプルさのおかげで使用するのに便利です。 API キーでセキュリティ保護された API を呼び出すには、API 要求に API キーを含める必要があります。 その後、API はキーを検証し、要求を処理するか、認証または承認エラーで拒否します。 ただし、このシンプルさはコストがかかります。 API キーはユーザーを認証しません。つまり、API がユーザーの代わりに動作することはできません。 同じ API キーを使用して API を呼び出すすべてのユーザーは、同じアクセス許可を持ちます。

各 API プロバイダーは、要求で API キーを渡す方法を定義します。 たとえば、API では、特定のクエリ文字列パラメーターまたは要求ヘッダーを使用する必要がある場合があります。

Microsoft 365 Copilotでは、API キーを次のように渡すことがサポートされています。

  • JSON Web トークン (JWT)
GET https://api.contoso.com/orders
Authorization: Bearer API_KEY 
  • クエリ文字列パラメータ
GET https://api.contoso.com/orders?api_key=API_KEY
  • カスタム ヘッダー
GET https://api.contoso.com/orders
X-API-Key: API_KEY

API キーは、パブリックに共有してはならないシークレット値です。 API キーで保護された API と統合する API プラグインを構築する場合は、API キーを Microsoft 365 のセキュリティで保護されたストレージの場所 (コンテナーとも呼ばれます) に格納します。 次に、アプリでコンテナー エントリの ID を参照します。 実行時に、宣言型エージェントはプラグイン (2) を読み込み、エントリ ID を API (3b) の呼び出しに使用する実際の API キー (3a) に解決します。 次の図は、このプロセスを示しています。

宣言型エージェントが、キーで保護された API に接続された API プラグインを実行する方法を示す図。

API キーをコンテナーに格納すると、API キーをパブリックに公開することなく、安全に管理できます。 また、アプリは API キーを直接参照しないため、アプリを更新しなくても更新できます。

開発中は、 Teams 開発者ポータル に移動し、[ ツール ] セクションで API キーの登録を開くか、Microsoft 365 Agents Toolkit を使用して、開発 API キーをコンテナーに自分で登録できます。 運用環境では、通常、管理者が API キーを登録し、API プラグインで使用するコンテナー エントリの ID を指定します。

Teams 開発者ポータルの API キー登録ページのスクリーンショット。