application: 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.

Agregar una credencial de clave a una aplicación. Una aplicación puede usar este método, junto con removeKey, para automatizar la anulación de sus claves que expiran.

Nota:

Puede seguir usando las operaciones Crear aplicación y Actualizar aplicación para agregar y actualizar credenciales clave para cualquier aplicación con o sin el contexto de un usuario.

Solo debe proporcionar el valor de clave pública al agregar una credencial de certificado a la aplicación. Agregar un certificado de clave privada a la aplicación corre el riesgo de comprometer la aplicación.

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.

Las aplicaciones que no tengan ningún certificado válido (aún no se ha agregado ningún certificado o todos los certificados han expirado) no podrán usar esta acción de servicio. En su lugar, puede usar la operación Actualizar aplicación para realizar una actualización.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet
✅ ✅ ✅ ✅

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos 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

Nota:

Una aplicación no necesita ningún permiso específico para revertir sus propias claves.

Importante

Para el acceso delegado con cuentas profesionales o educativas, el usuario que ha iniciado sesión debe tener asignado un rol compatible de Microsoft Entra o un rol personalizado que conceda los permisos necesarios para esta operación. Esta operación admite los siguientes roles integrados, que proporcionan solo el privilegio mínimo necesario:

  • Un usuario miembro no administrador con permisos de usuario predeterminados, para aplicaciones de su propiedad
  • Desarrolladores de aplicaciones: para las aplicaciones que poseen
  • Administrador de aplicaciones en la nube
  • Administrador de la aplicación

Solicitud HTTP

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

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

Encabezados de solicitud

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

Cuerpo de la solicitud

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

Propiedad Tipo Descripción
keyCredential keyCredential La nueva credencial de clave de aplicación que se va a agregar. El tipo, el uso y la clave son propiedades necesarias para este uso. Los tipos de claves admitidos son:
  • AsymmetricX509Cert: El uso debe ser Verify.
  • X509CertAndPassword: El uso debe ser Sign
passwordCredential passwordCredential Solo es necesario configurar secretText , que debe contener la contraseña de la clave. Esta propiedad solo es necesaria para claves de tipo X509CertAndPassword. Establézcalo de null otra manera.
como prueba Cadena Un token JWT autofirmado que se utiliza como prueba de posesión de las claves existentes. Este token de JWT debe estar firmado con la clave privada de uno de los certificados válidos existentes de la aplicación. El token debe contener las siguientes notificaciones:
  • aud: La audiencia debe ser 00000002-0000-0000-c000-000000000000.
  • iss: El emisor debe ser el identificador de la aplicación que inicia la solicitud.
  • nbf: No antes de tiempo.
  • exp: El tiempo de expiración debe ser el valor de nbf + 10 minutos.

Para conocer los pasos para generar esta ficha de prueba de posesión, consulte Generación de fichas de prueba de posesión para llaves rodantes. Para obtener más información sobre los tipos de notificaciones, consulte Carga útil de notificaciones.

Respuesta

Si tiene éxito, 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: Agregar una nueva credencial de clave a una aplicación

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/applications/{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: Agregar 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/applications/{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"
}