Atribuir funções personalizadas com o escopo de recurso usando o PowerShell na ID do Microsoft Entra
Esse artigo descreve como criar uma atribuição de função no escopo de toda a organização na ID do Microsoft Entra. Atribuir uma função no escopo de toda a organização concede acesso na organização do Microsoft Entra. Para criar uma atribuição de função com um escopo de um único recurso do Microsoft Entra, consulte Criar e atribuir uma função personalizada na ID do Microsoft Entra. Este artigo usa o módulo Microsoft Graph PowerShell SDK.
Para obter mais informações sobre as funções do Microsoft Entra, consulte funções internas do Microsoft Entra.
Pré-requisitos
- Licença P1 ou P2 do Microsoft Entra ID
- Administrador de Função com Privilégios
- Módulo Microsoft Graph PowerShell ao usar o PowerShell
Para obter mais informações, confira Pré-requisitos para usar o PowerShell ou o Explorador do Graph.
Atribuir uma função do diretório a um usuário ou a uma entidade de serviço com escopo de recurso
Carregue o módulo Microsoft Graph PowerShell.
Entre executando o comando
Connect-MgGraph
.Crie uma nova função usando o seguinte script do PowerShell.
## Assign a role to a user or service principal with resource scope # Get the user and role definition you want to link $user = Get-MgUser -Filter "UserPrincipalName eq 'cburl@f128.info'" $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'" # Get app registration and construct resource scope for assignment. $appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'" $directoryScope = '/' + $appRegistration.Id # Create a scoped role assignment $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope ` -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id
Para atribuir a função a uma entidade de serviço em vez de a um usuário, use o cmdlet Get-MgServicePrincipal.
Definições de função
Os objetos de definição de função contêm a definição da função interna ou personalizada, juntamente com as permissões concedidas por essa atribuição de função. Esse recurso exibe definições de função personalizada e funções de diretório interno (que são exibidas na forma equivalente roleDefinition). Para obter informações sobre o número máximo de funções personalizadas que podem ser criadas em uma organização do Microsoft Entra, consulte Limites e restrições de serviço do Microsoft Entra.
Para criar uma definição de função
# Basic information
$description = "Can manage credentials of application registrations"
$displayName = "Application Registration Credential Administrator"
$templateId = (New-Guid).Guid
# Set of actions to include
$rolePermissions = @{
"allowedResourceActions" = @(
"microsoft.directory/applications/standard/read",
"microsoft.directory/applications/credentials/update"
)
}
# Create new custom directory role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions `
-DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled:$true
Ler e listar definições de função
# Get all role definitions
Get-MgRoleManagementDirectoryRoleDefinition
# Get single role definition by ID
Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId 00000000-0000-0000-0000-000000000000
# Get single role definition by templateId
Get-MgRoleManagementDirectoryRoleDefinition -Filter "TemplateId eq 'c4e39bd9-1100-46d3-8c65-fb160da0071f'"
Atualizar uma definição de função
# Update role definition
# This works for any writable property on role definition. You can replace display name with other
# valid properties.
Update-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f `
-DisplayName "Updated DisplayName"
Excluir uma definição de função
# Delete role definition
Remove-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f
Atribuições de função
As atribuições de função contêm informações vinculando uma determinada entidade de segurança (uma entidade de serviço de usuário ou aplicativo) a uma definição de função. Se necessário, você pode adicionar um escopo de um único recurso do Microsoft Entra para as permissões atribuídas. A restrição do escopo de uma atribuição de função tem suporte para funções internas e personalizadas.
Criar uma atribuição de função
# Get the user and role definition you want to link
$user = Get-MgUser -Filter "userPrincipalName eq 'cburl@f128.info'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'"
# Get app registration and construct resource scope for assignment.
$appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'"
$directoryScope = '/' + $appRegistration.Id
# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
-RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id
Ler e listar as atribuições de função
# Get role assignments for a given principal
Get-MgRoleManagementDirectoryRoleAssignment -Filter "PrincipalId eq 'aaaaaaaa-bbbb-cccc-1111-222222222222'"
# Get role assignments for a given role definition
Get-MgRoleManagementDirectoryRoleAssignment -Filter "RoleDefinitionId eq '00000000-0000-0000-0000-000000000000'"
Excluir uma atribuição de função
# Remove role assignment
Remove-MgRoleManagementDirectoryRoleAssignment -UnifiedRoleAssignmentId 'aB1cD2eF3gH4iJ5kL6-mN7oP8qR-1'
Próximas etapas
- Compartilhe seus comentários conosco no fórum de funções administrativas do Microsoft Entra
- Para obter mais informações sobre funções e atribuições de função de administrador do Microsoft Entra, consulte Atribuir funções de administrador
- Para obter as permissões de usuário padrão, consulte uma comparação entre as permissões de usuário membro e convidado padrão