servicePrincipal: addKey

名前空間: microsoft.graph

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

注意

create servicePrincipal および Update servicePrincipal 操作を引き続き使用して、ユーザーのコンテキストの持つサービスPrincipalのキー資格情報を追加および更新できます。

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

既存の有効な証明書がない ServicePrincipals (証明書がまだ追加されていない、またはすべての証明書の有効期限が切れているなど) は、このサービス アクションを使用できません。 Update servicePrincipal を 使用して、代わりに更新プログラムを実行できます。

アクセス許可

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) Application.ReadWrite.All, Directory.ReadWrite.All
委任 (個人用 Microsoft アカウント) なし。
アプリケーション Application.ReadWrite.OwnedBy、Application.ReadWrite.All、Directory.ReadWrite.All

HTTP 要求

POST /servicePrincipals/{id}/addKey

要求ヘッダー

名前 説明
Authorization ベアラー {token}。必須。
Content-Type application/json. Required.

要求本文

要求本文で、次の必須プロパティを指定します。

プロパティ 説明
keyCredential keyCredential 追加する新しい servicePrincipal キー資格情報。 この 使用法に____必要な____プロパティは、型、使用法、およびキーです。 サポートされているキーの種類は次のとおりです。
  • AsymmetricX509Cert: 使用法は、 である必要があります Verify
  • X509CertAndPassword: 使用法は次の値である必要があります。 Sign
passwordCredential passwordCredential シークレット テキストのみを 設定する必要があります。キーのパスワードを含む必要があります。 このプロパティは、型のキーにのみ必要です X509CertAndPassword。 それ以外の場合は null 設定します。
proof String 既存のキーの所有証明として使用される自己署名証明書の JWT トークン。 この JWT トークンは、servicePrincipal の既存の有効な証明書の 1 つのプライベート キーを使用して署名する必要があります。 トークンには、次の要求を含める必要があります。
  • aud - 対象ユーザーは 00000002-0000-0000-c000-000000000000 である必要があります。
  • iss - 発行者は、 び出しを行っている servicePrincipal の ID である必要があります。
  • nbf - 時間前ではないこと。
  • exp - 有効期限は "nbf" + 10 分にする必要があります。

この所有証明 トークンを 生成するために使用できるコード サンプルを次に示します。

応答

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

例 1: servicePrincipal に新しいキー資格情報を追加する

要求

要求の例を次に示します。

POST https://graph.microsoft.com/v1.0/servicePrincipals/{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/v1.0/$metadata#microsoft.graph.keyCredential"
}

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

要求

要求の例を次に示します。

POST https://graph.microsoft.com/v1.0/servicePrincipals/{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/v1.0/$metadata#microsoft.graph.keyCredential"
}