Compartir a través de


servicePrincipal: addKey

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Agrega una credencial de clave a un servicePrincipal. Un servicePrincipal puede usar este método junto con removeKey para automatizar la puesta en marcha de sus claves de expiración.

Nota:

Las operaciones servicePrincipal y Update servicePrincipal se pueden seguir usando para agregar y actualizar credenciales de clave para cualquier servicePrincipal con o sin el contexto de un usuario.

Como parte de la validación de la solicitud para este método, se comprueba una prueba de posesión de una clave existente antes de que se pueda realizar la acción.

ServicePrincipals que no tienen ningún certificado válido existente (es decir, no se ha agregado ningún certificado todavía o todos los certificados han expirado), no podrán usar esta acción de servicio. Update servicePrincipal se puede usar para realizar una actualización en su lugar.

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Application.ReadWrite.All Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Solicitud HTTP

Puede dirigirse a la entidad de servicio mediante su id . o appId. id y appId se conocen como id. de objeto y id. de aplicación (cliente), respectivamente, en los registros de aplicaciones en el Centro de administración Microsoft Entra.

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

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione las siguientes propiedades necesarias.

Propiedad Tipo Descripción
keyCredential keyCredential Nueva credencial de clave servicePrincipal que se va a agregar. El tipo, el uso y la clave son propiedades necesarias para este uso. Los tipos de clave admitidos son:
  • AsymmetricX509Cert: el uso debe ser Verify.
  • X509CertAndPassword: el uso debe ser Sign
passwordCredential passwordCredential Solo es necesario establecer secretText , que debe contener la contraseña de la clave. Esta propiedad solo es necesaria para las claves de tipo X509CertAndPassword. Establézcalo en null en caso contrario.
Prueba Cadena Token JWT autofirmado que se usa como prueba de posesión de las claves existentes. Este token JWT debe estar firmado con una clave privada que corresponda a uno de los certificados válidos existentes asociados con servicePrincipal. El token debe contener las siguientes notificaciones:
  • aud: el público debe ser 00000002-0000-0000-c000-000000000000.
  • iss: El emisor debe ser el identificador del servicePrincipal que inicia la solicitud.
  • nbf: no antes de la hora.
  • exp: el tiempo de expiración debe ser el valor de nbf + 10 minutos.

Para ver los pasos para generar este token de prueba de posesión, consulte Generación de tokens de prueba de posesión para claves graduales.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y un nuevo objeto keyCredential en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: Adición de una nueva credencial de clave a un servicePrincipal

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

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

Ejemplo 2: Adición de una credencial de clave y una contraseña asociada para la clave

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

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