application : addKey

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Ajoutez les informations d’identification d’une clé à une application. Cette méthode, ainsi que removeKey, peut être utilisée par une application pour automatiser le roulement de ses clés arrivant à expiration.

Remarque

Vous pouvez continuer à utiliser les opérations Créer une application et Mettre à jour l’application pour ajouter et mettre à jour les informations d’identification de clé pour toute application avec ou sans contexte utilisateur.

Vous ne devez fournir la valeur de la clé publique que lorsque vous ajoutez les informations d’identification d’un certificat à votre application. L’ajout d’un certificat de clé privée à votre application risque de compromettre l’application.

Dans le cadre de la validation de demande pour cette méthode, une preuve de possession d’une clé existante est vérifiée avant que l’action puisse être effectuée.

Les applications qui n’ont aucun certificat valide existant (aucun certificat n’a encore été ajouté ou tous les certificats ont expiré) ne pourront pas utiliser cette action de service. Vous pouvez utiliser l’opération de Mise à jour de l’application pour effectuer une mise à jour à la place.

Cette API est disponible dans les déploiements cloud nationaux suivants.

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme étant les moins privilégiées pour cette API. Utilisez une ou plusieurs autorisations privilégiées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, voir Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez la référence des autorisations.

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
Déléguée (compte professionnel ou scolaire) Application.ReadWrite.All Directory.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.ReadWrite.All

Remarque

Une application n’a pas besoin d’une autorisation spécifique pour déployer ses propres clés.

Importante

Pour l’accès délégué à l’aide de comptes professionnels ou scolaires, l’utilisateur connecté doit disposer d’un rôle Microsoft Entra pris en charge ou d’un rôle personnalisé qui accorde les autorisations requises pour cette opération. Cette opération prend en charge les rôles intégrés suivants, qui n’offrent que le moindre privilège nécessaire :

  • Un utilisateur membre non administrateur disposant des autorisations d’utilisateur par défaut pour les applications dont il est propriétaire
  • Développeur d’applications : pour les applications dont il est propriétaire
  • Administrateur de l'application cloud
  • Administrateur de l'application

Requête HTTP

Vous pouvez vous adresser à l’application à l’aide de son ID ou de son AppId. id et appId sont appelés respectivement ID d’objet et ID d’application (client) dans les inscriptions d’applications dans le centre d’administration Microsoft Entra.

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

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et les autorisations.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez les propriétés requises suivantes.

Propriété Type Description
keyCredential keyCredential Nouvelle information d’identification de clé d’application à ajouter. Le type, l’utilisation et la clé sont des propriétés obligatoires pour cette utilisation. Les types de clés pris en charge sont les suivants :
  • AsymmetricX509Cert: L’utilisation doit être Verify.
  • X509CertAndPassword: l’utilisation doit être Sign
passwordCredential passwordCredential Seul secretText doit être défini, lequel doit contenir le mot de passe de la clé. Cette propriété n’est requise que pour les clés de type X509CertAndPassword. Définissez-la autrement null .
preuve String Jeton JWT auto-signé utilisé comme preuve de possession des clés existantes. Ce jeton JWT doit être signé à l’aide de la clé privée de l’un des certificats valides existants de l’application. Le jeton doit contenir les revendications suivantes :
  • aud : L’audience doit être 00000002-0000-0000-c000-000000000000.
  • iss : l’émetteur doit être l’ID de l’application qui initie la demande.
  • nbf : Pas avant l’heure.
  • exp : Le délai d’expiration doit être la valeur de nbf + 10 minutes.

Pour connaître les étapes nécessaires à la génération de ce jeton de preuve de possession, consultez la section Génération de jetons de preuve de possession pour les clés de déploiement. Pour plus d’informations sur les types de revendications, consultez Charge utile des revendications.

Réponse

En cas de réussite, cette méthode renvoie un 200 OK code de réponse et un nouvel objet keyCredential dans le corps de la réponse.

Exemples

Exemple 1 : Ajouter de nouvelles informations d’identification de clé à une application

Demande

L’exemple suivant illustre une demande.

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

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

Réponse

L’exemple suivant illustre la réponse.

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

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

Exemple 2 : ajouter les informations d’identification de la clé et un mot de passe associé à la clé

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

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