Use esta API para asignar un rol de aplicación a un grupo de seguridad. Todos los miembros directos del grupo se considerarán asignados. Se admiten grupos de seguridad con pertenencias dinámicas. Para conceder una asignación de roles de aplicación a un grupo, necesitará tres identificadores:
principalId: id. del group al que va a asignar el rol de aplicación.
resourceId: el id. del recurso servicePrincipal que ha definido el rol de aplicación.
appRoleId: identificador del appRole (definido en la entidad de servicio del recurso) que se va a asignar al grupo.
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)
AppRoleAssignment.ReadWrite.All
No disponible.
Delegado (cuenta personal de Microsoft)
No admitida.
No admitida.
Aplicación
AppRoleAssignment.ReadWrite.All
No disponible.
Solicitud HTTP
POST /groups/{groupId}/appRoleAssignments
Nota:
Como práctica recomendada, le sugerimos crear asignaciones de roles de aplicación mediante la appRoleAssignedTorelación de la entidad de servicio del recurso, en lugar de la appRoleAssignmentsrelación del usuario, grupo o entidad de servicio asignados.
En el cuerpo de la solicitud, proporcione una representación JSON de un objeto appRoleAssignment.
En la tabla siguiente se enumeran las propiedades necesarias al crear appRoleAssignment. Especifique otras propiedades de escritura según sea necesario para appRoleAssignment.
Propiedad
Tipo
Descripción
appRoleId
Guid
El identificador (id.) para el rol de aplicación que está asignado al principal. Este rol de aplicación debe exponerse en la propiedad appRoles en la entidad de servicio de la aplicación del recurso (resourceId). Si la aplicación del recurso no ha declarado ningún rol de aplicación, se puede especificar un id. de rol de aplicación predeterminada de 00000000-0000-0000-0000-000000000000 para señalar que la entidad de seguridad esté asignada a la aplicación del recurso sin ningún rol de aplicación específico.
principalId
Guid
El identificador único (id.) del grupo al que se concede el rol de aplicación.
resourceId
Guid
El identificador único (id) para la entidad de servicio del recurso para el que se realizó la asignación.
Respuesta
Si se ejecuta correctamente, este método entrega un código de respuesta 201 Created y un objeto appRoleAssignment en el cuerpo de la respuesta.
Ejemplos
Solicitud
En el ejemplo siguiente se muestra la solicitud. En este ejemplo, tanto el identificador de la dirección URL como el valor de principalId serían el identificador del grupo asignado.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AppRoleAssignment
{
PrincipalId = Guid.Parse("7679d9a4-2323-44cd-b5c2-673ec88d8b12"),
ResourceId = Guid.Parse("076e8b57-bac8-49d7-9396-e3449b685055"),
AppRoleId = Guid.Parse("00000000-0000-0000-0000-000000000000"),
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups["{group-id}"].AppRoleAssignments.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewAppRoleAssignment()
principalId := uuid.MustParse("7679d9a4-2323-44cd-b5c2-673ec88d8b12")
requestBody.SetPrincipalId(&principalId)
resourceId := uuid.MustParse("076e8b57-bac8-49d7-9396-e3449b685055")
requestBody.SetResourceId(&resourceId)
appRoleId := uuid.MustParse("00000000-0000-0000-0000-000000000000")
requestBody.SetAppRoleId(&appRoleId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
appRoleAssignments, err := graphClient.Groups().ByGroupId("group-id").AppRoleAssignments().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AppRoleAssignment appRoleAssignment = new AppRoleAssignment();
appRoleAssignment.setPrincipalId(UUID.fromString("7679d9a4-2323-44cd-b5c2-673ec88d8b12"));
appRoleAssignment.setResourceId(UUID.fromString("076e8b57-bac8-49d7-9396-e3449b685055"));
appRoleAssignment.setAppRoleId(UUID.fromString("00000000-0000-0000-0000-000000000000"));
AppRoleAssignment result = graphClient.groups().byGroupId("{group-id}").appRoleAssignments().post(appRoleAssignment);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AppRoleAssignment;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AppRoleAssignment();
$requestBody->setPrincipalId('7679d9a4-2323-44cd-b5c2-673ec88d8b12');
$requestBody->setResourceId('076e8b57-bac8-49d7-9396-e3449b685055');
$requestBody->setAppRoleId('00000000-0000-0000-0000-000000000000');
$result = $graphServiceClient->groups()->byGroupId('group-id')->appRoleAssignments()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.app_role_assignment import AppRoleAssignment
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AppRoleAssignment(
principal_id = UUID("7679d9a4-2323-44cd-b5c2-673ec88d8b12"),
resource_id = UUID("076e8b57-bac8-49d7-9396-e3449b685055"),
app_role_id = UUID("00000000-0000-0000-0000-000000000000"),
)
result = await graph_client.groups.by_group_id('group-id').app_role_assignments.post(request_body)