アプリケーション: addKey

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

アプリケーションにキー資格情報を追加します。 removeKey と共に、このメソッドをアプリケーションで使用して、期限切れのキーのローリングを自動化できます。

注:

引き続き [ アプリケーションの作成 ] 操作と [ アプリケーションの更新 ] 操作を使用して、ユーザー コンテキストの有無にかかわらず、任意のアプリケーションのキー資格情報を追加および更新できます。

公開キーの値は、証明書の資格情報をアプリケーションに追加する場合にのみ指定する必要があります。 秘密キー証明書をアプリケーションに追加すると、アプリケーションが危険にさらされるリスクがあります。

このメソッドの要求検証の一環として、操作を実行する前に、既存のキーの所有証明が検証されます。

既存の有効な証明書がない (証明書がまだ追加されていないか、すべての証明書の有効期限が切れている) アプリケーションは、このサービス アクションを使用できません。 代わりに、アプリケーションの更新操作を使用して更新を行うことができます。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Application.ReadWrite.All Directory.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

注:

アプリケーションは、独自のキーをロールするために特定のアクセス許可を必要としません。

重要

職場または学校アカウントを使用してアクセスを委任するには、サインインしたユーザーに、サポートされている Microsoft Entra ロール、またはこの操作に必要なアクセス許可を付与するカスタム ロールが割り当てられている必要があります。 この操作では、必要最小限の特権のみを提供する次の組み込みロールがサポートされます。

  • 既定のユーザー権限を持つ管理者以外のメンバー ユーザー (所有するアプリケーションの場合)
  • アプリケーション開発者 - 所有しているアプリケーションの場合
  • クラウド アプリケーション管理者
  • アプリケーション管理者

HTTP 要求

アプリケーションは、 ID または appId のいずれかを使用してアドレス指定できます。 idappId は、Microsoft Entra 管理センターでのアプリの登録において、それぞれオブジェクト IDアプリケーション (クライアント) ID と呼ばれます。

POST /applications/{id}/addKey
POST /applications(appId='{appId}')/addKey

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. 必須です。

要求本文

リクエストの本文には、次の必須プロパティを指定します。

プロパティ 説明
keyCredential keyCredential 追加する新しいアプリケーション キーの資格情報。 タイプ使用法キーは、この使用に必要なプロパティです。 サポートされているキーの種類は次のとおりです。
  • AsymmetricX509Cert: 使用法は Verify である必要があります。
  • X509CertAndPassword: 使用法は次の Sign
passwordCredential passwordCredential keyのパスワードを含む secretText のみを設定する必要があります。 このプロパティは、タイプ X509CertAndPassword のキーに対してのみ必須です。 それ以外の場合は [ null ] に設定します。
証明 文字列 既存のキーの所有の証明として使用される自己署名 JWT トークン。 この JWT トークンは、アプリケーションの既存の有効な証明書の 1 つの秘密キーを使用して署名される必要があります。 トークンには、次の要求を含める必要があります。
  • aud: オーディエンスは 00000002-0000-0000-c000-000000000000必要があります。
  • iss: 発行者は、要求を開始した アプリケーションの ID である必要があります。
  • nbf: 時間の前ではありません。
  • exp: 有効期限は nbf + 10 分の値である必要があります。

この所有証明トークンを生成する手順については、 ローリング キーの所有証明トークンの生成を参照してください。 要求の種類の詳細については、「 要求のペイロード」を参照してください。

応答

成功した場合、このメソッドは応答本文で 200 OK 応答コードと新しい keyCredential オブジェクトを返します。

例 1: 新しいキー資格情報をアプリケーションに追加する

要求

次の例は要求を示しています。

POST https://graph.microsoft.com/beta/applications/{id}/addKey
Content-type: application/json

{
    "keyCredential": {
        "type": "AsymmetricX509Cert",
        "usage": "Verify",
        "key": "MIIDYDCCAki..."
    },
    "passwordCredential": null,
    "proof":"eyJ0eXAiOiJ..."
}

応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.keyCredential"
}

例 2: キー資格情報とキーに関連付けられたパスワードを追加する

要求

次の例は要求を示しています。

POST https://graph.microsoft.com/beta/applications/{id}/addKey
Content-type: application/json

{
    "keyCredential": {
        "type": "X509CertAndPassword",
        "usage": "Sign",
        "key": "MIIDYDCCAki..."
    },
    "passwordCredential": {
        "secretText": "MKTr0w1..."
    },
    "proof":"eyJ0eXAiOiJ..."
}

応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.keyCredential"
}