Compartir a través de


Crear oAuth2PermissionGrant (una concesión de permisos delegados)

Espacio de nombres: microsoft.graph

Cree una concesión de permisos delegados representada por un objeto oAuth2PermissionGrant .

Una concesión de permisos delegados autoriza a una entidad de servicio de cliente (que representa una aplicación cliente) a acceder a una entidad de servicio de recursos (que representa una API), en nombre de un usuario que ha iniciado sesión, para el nivel de acceso limitado por los permisos delegados que se concedieron.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

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) DelegatedPermissionGrant.ReadWrite.All Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación DelegatedPermissionGrant.ReadWrite.All Directory.ReadWrite.All

Importante

En escenarios delegados con cuentas profesionales o educativas, al usuario que ha iniciado sesión se le debe asignar un rol de Microsoft Entra compatible o un rol personalizado con un permiso de rol admitido. Se admiten los siguientes roles con privilegios mínimos para esta operación:

  • Desarrollador de la aplicación
  • Administrador de aplicaciones en la nube
  • Escritores de directorios
  • Administrador de usuarios
  • Administrador de roles con privilegios

Solicitud HTTP

POST /oauth2PermissionGrants

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de un objeto oAuth2PermissionGrant .

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta de la serie 200 y un nuevo objeto oAuth2PermissionGrant en el cuerpo de la respuesta. En la tabla siguiente se enumeran las propiedades necesarias al crear oAuth2PermissionGrant.

Propiedad Tipo Descripción
clientId Cadena Identificador de objeto (noappId) de la entidad de servicio cliente de la aplicación que está autorizada a actuar en nombre de un usuario que ha iniciado sesión al acceder a una API. Obligatorio.
consentType Cadena Indica si se concede autorización para que la aplicación cliente suplante a todos los usuarios o solo a un usuario específico. AllPrincipals indica la autorización para suplantar a todos los usuarios. La entidad de seguridad indica la autorización para suplantar a un usuario específico. Un administrador puede conceder el consentimiento en nombre de todos los usuarios. Es posible que los usuarios que no sean administradores estén autorizados a dar su consentimiento en nombre de sí mismos en algunos casos, para algunos permisos delegados. Obligatorio.
principalId Cadena Identificador delusuario en nombre del que el cliente está autorizado para acceder al recurso, cuando consentType es Principal. Si consentType es AllPrincipals , este valor es NULL. Se requiere cuando consentType es Principal.
resourceId Cadena Identificador de la entidad de servicio de recursos a la que está autorizado el acceso. Esto identifica la API a la que el cliente está autorizado para intentar llamar en nombre de un usuario que ha iniciado sesión.
ámbito Cadena Una lista separada por espacios de los valores de notificación para los permisos delegados que se deben incluir en los tokens de acceso de la aplicación de recursos (la API). Por ejemplo, openid User.Read GroupMember.Read.All. Cada valor de notificación debe coincidir con el campo de valor de uno de los permisos delegados definidos por la API, enumerados en la propiedad oauth2PermissionScopes de la entidad de servicio de recursos. No debe superar los 3850 caracteres de longitud.

Ejemplo

Solicitud

POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
Content-Type: application/json

{
    "clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
    "consentType": "AllPrincipals",
    "resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
    "scope": "DelegatedPermissionGrant.ReadWrite.All"
}

Respuesta

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#oauth2PermissionGrants/$entity",
    "clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
    "consentType": "AllPrincipals",
    "id": "l5eW7x0ga0-WDOntXzHateQDNpSH5-lPk9HjD3Sarjk",
    "principalId": null,
    "resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
    "scope": "DelegatedPermissionGrant.ReadWrite.All"
}