application: addKey

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Hinzufügen von Schlüsselanmeldeinformationen zu einer Anwendung. Diese Methode kann zusammen mit removeKey von einer Anwendung verwendet werden, um das Rollieren ihrer ablaufenden Schlüssel zu automatisieren.

Hinweis

Sie können die Vorgänge "Anwendung erstellen " und "Anwendung aktualisieren" weiterhin verwenden, um wichtige Anmeldeinformationen für jede Anwendung mit oder ohne Benutzerkontext hinzuzufügen und zu aktualisieren.

Sie sollten nur den Wert des öffentlichen Schlüssels angeben, wenn Sie Ihrer Anwendung Zertifikatanmeldeinformationen hinzufügen. Wenn Sie Ihrer Anwendung ein Zertifikat mit einem privaten Schlüssel hinzufügen, besteht das Risiko, dass die Anwendung gefährdet wird.

Im Rahmen der Anforderungsvalidierung für diese Methode wird ein Nachweis des Besitzes eines vorhandenen Schlüssels überprüft, bevor die Aktion ausgeführt werden kann.

Für Anwendungen, für die noch keine gültigen Zertifikate vorhanden sind (es wurden noch keine Zertifikate hinzugefügt, oder alle Zertifikate sind abgelaufen), kann diese Dienstaktion nicht verwendet werden. Sie können den Vorgang Anwendung aktualisieren verwenden, um stattdessen ein Update durchzuführen.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Application.ReadWrite.All Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Application Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Hinweis

Eine Anwendung benötigt keine bestimmte Berechtigung, um ihre eigenen Schlüssel zu rollen.

Wichtig

Für den delegierten Zugriff mit Geschäfts-, Schul- oder Unikonten muss dem angemeldeten Benutzer eine unterstützte Microsoft Entra-Rolle oder eine benutzerdefinierte Rolle zugewiesen werden, die die für diesen Vorgang erforderlichen Berechtigungen gewährt. Dieser Vorgang unterstützt die folgenden integrierten Rollen, die nur die geringstmöglichen Berechtigungen gewähren:

  • Ein Nicht-Administrator-Mitgliedsbenutzer mit Standardbenutzerberechtigungen – für Anwendungen, deren Besitzer
  • Anwendungsentwickler - für Anwendungen, die sie besitzen
  • Cloudanwendungsadministrator
  • Anwendungsadministrator

HTTP-Anforderung

Sie können die Anwendung entweder mit ihrer ID oder appId ansprechen. ID und appId werden bei App-Registrierungen im Microsoft Entra Admin Center als Objekt-ID bzw. Anwendungs-ID (Client-ID) bezeichnet.

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

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.
Content-Type application/json. Erforderlich.

Anforderungstext

Geben Sie im Anforderungstext die folgenden erforderlichen Eigenschaften an.

Eigenschaft Typ Beschreibung
keyCredential keyCredential Die neuen Anmeldeinformationen für den Anwendungsschlüssel, die hinzugefügt werden sollen. Typ, Verwendung und Schlüssel sind erforderliche Eigenschaften für diese Verwendung. Folgende Schlüsseltypen werden unterstützt:
  • AsymmetricX509Cert: Die Verwendung muss Verifysein.
  • X509CertAndPassword: Die Verwendung muss Sign
passwordCredential passwordCredential Es muss nur secretText eingestellt werden, der das Passwort für den Schlüssel enthalten soll. Diese Eigenschaft ist nur für Schlüssel des Typs X509CertAndPassword. Legen Sie ihn auf einen anderen Wert fest null .
Beweis Zeichenfolge Ein selbstsignierter JWT-Token, der als Nachweis des Besitzes der vorhandenen Schlüssel verwendet wird. Dieses JWT-Token muss mit dem privaten Schlüssel eines der vorhandenen gültigen Zertifikate der Anwendung signiert werden. Das Token sollte den folgenden Anforderungen enthalten:
  • aud: Das Publikum muss sein 00000002-0000-0000-c000-000000000000.
  • iss: Issuer muss die ID der Anwendung sein, die die Anforderung initiiert.
  • nbf: Nicht vor der Zeit.
  • exp: Die Ablaufzeit sollte der Wert NBF + 10 Minuten sein.

Schritte zum Generieren dieses Besitznachweis-Tokens finden Sie unter Generieren von Besitznachweis-Token für Rolling Keys. Weitere Informationen zu den Anspruchstypen finden Sie unter Anspruchsnutzlast.

Antwort

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

Beispiele

Beispiel 1: Hinzufügen neuer Schlüsselanmeldeinformationen zu einer Anwendung

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

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

Beispiel 2: Hinzufügen einer Schlüsselanmeldeinformation und eines zugeordneten Kennworts für den Schlüssel

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

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