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