servicePrincipal: addKey

Namespace: microsoft.graph

Fügt einem servicePrincipal eine Schlüsselanmeldeinformation hinzu. Diese Methode kann zusammen mit "removeKey " von einem ServicePrincipal verwendet werden, um das Rollen der ablaufenden Schlüssel zu automatisieren.

Hinweis

ServicePrincipal- und Update servicePrincipal-Vorgänge können weiterhin verwendet werden, um Schlüsselanmeldeinformationen für jeden Dienstprinzipal mit oder ohne Benutzerkontext hinzuzufügen und zu aktualisieren.

Im Rahmen der Anforderungsüberprüfung für diese Methode wird ein Besitznachweis für einen vorhandenen Schlüssel überprüft, bevor die Aktion ausgeführt werden kann.

ServicePrincipals, die keine gültigen Zertifikate besitzen (d. h.: es wurden noch keine Zertifikate hinzugefügt, oder alle Zertifikate sind abgelaufen), können diese Dienstaktion nicht verwenden. Update servicePrincipal kann stattdessen zum Ausführen einer Aktualisierung verwendet werden.

Berechtigungen

Berechtigungstyp Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto) Application.ReadWrite.All, Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Keine.
Anwendung Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.ReadWrite.All

HTTP-Anforderung

POST /servicePrincipals/{id}/addKey

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich.
Content-Type application/json. Erforderlich.

Anforderungstext

Geben Sie im Anforderungstext die folgenden erforderlichen Eigenschaften an.

Eigenschaft Typ Beschreibung
keyCredential keyCredential Die neuen servicePrincipal-Schlüsselanmeldeinformationen, die hinzugefügt werden sollen. Typ, Verwendung und Schlüssel sind erforderliche Eigenschaften für diese Verwendung. Unterstützte Schlüsseltypen sind:
  • AsymmetricX509Cert: Die Verwendung muss .Verify
  • X509CertAndPassword: Die Verwendung muss Sign
passwordCredential passwordCredential Es muss nur secretText festgelegt werden, der das Kennwort für den Schlüssel enthalten sollte. Diese Eigenschaft ist nur für Schlüssel vom Typ X509CertAndPassworderforderlich. Legen Sie es auf "andernfalls" fest null .
Beweis Zeichenfolge Ein selbstsigniertes JWT-Token, das als Besitznachweis für die vorhandenen Schlüssel verwendet wird. Dieses JWT-Token muss mithilfe des privaten Schlüssels eines der vorhandenen gültigen Zertifikate von servicePrincipal signiert werden. Das Token sollte den folgenden Anforderungen enthalten:
  • aud – Benutzergruppe muss 00000002-0000-0000-c000-000000000000 sein.
  • iss – Der Aussteller muss die ID des Dienstprinzipals sein, der den Aufruf durchführt.
  • nbf – Nicht vor der Zeit.
  • exp – Ablaufzeit sollte „nbf“ + 10 Minuten sein.

Hier ist ein Codebeispiel , das verwendet werden kann, um dieses Besitznachweistoken zu generieren.

Antwort

Bei erfolgreicher Ausführung gibt die Methode den 200 OK Antwortcode und ein neues keyCredential-Objekt im Antworttext zurück.

Beispiele

Beispiel 1: Hinzufügen einer neuen Schlüsselanmeldeinformationen zu einem servicePrincipal

Anforderung

Nachfolgend sehen Sie ein Beispiel der Anforderung.

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..."
}

Antwort

Nachfolgend sehen Sie ein Beispiel der Antwort.

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

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

Beispiel 2: Hinzufügen von Schlüsselanmeldeinformationen und einem zugeordneten Kennwort für den Schlüssel

Anforderung

Nachfolgend sehen Sie ein Beispiel der Anforderung.

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..."
}

Antwort

Nachfolgend sehen Sie ein Beispiel der Antwort.

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

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