Управление назначением пользователей и групп приложению

В этой статье показано, как назначить пользователей и группы корпоративному приложению в идентификаторе Microsoft Entra с помощью PowerShell. При назначении пользователя приложению оно отображается на портале пользователя Мои приложения для удобства доступа. Если приложение предоставляет роли приложений, можно также назначить пользователю определенную роль.

При назначении группы приложению у пользователей в группе есть доступ. Назначение не каскадно для вложенных групп.

Для назначения на основе групп требуется выпуск Microsoft Entra ID P1 или P2. Назначение на основе групп безопасности поддерживается для групп безопасности и групп Microsoft 365, для которых SecurityEnabled задано только True значение параметра. Членство в вложенных группах в настоящее время не поддерживается. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице ценообразования Microsoft Entra.

Для более полного контроля можно настроить определенные типы корпоративных приложений так, чтобы они требовали назначения пользователей. Дополнительные сведения о необходимости назначения пользователей для приложения см. в разделе "Управление доступом к приложению".

Необходимые компоненты

Чтобы назначить пользователей корпоративному приложению, вам потребуется:

  • Учетная запись Microsoft Entra с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
  • Одна из следующих ролей: глобальный администратор, администратор облачных приложений, администратор приложений или владелец субъекта-службы.
  • Microsoft Entra ID P1 или P2 для назначения на основе групп. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице ценообразования Microsoft Entra.

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

Назначение пользователей и групп приложению с помощью Центра администрирования Microsoft Entra

Чтобы назначить учетную запись пользователя или группы корпоративному приложению:

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.

  2. Перейдите к приложениям>Identity>Application Enterprise Для всех приложений.>

  3. Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.

  4. Выберите "Пользователи и группы", а затем нажмите кнопку "Добавить пользователя или группу".

    Assign user account to an application in your Microsoft Entra tenant.

  5. В области Добавление назначения в разделе Пользователи и группы выберите Не выбрано.

  6. Найдите и выберите пользователя или группу, которую вы хотите назначить приложению. Например, contosouser1@contoso.com или contosoteam1@contoso.com.

  7. Выберите Выбрать.

  8. В разделе "Выбор роли" выберите роль, которую вы хотите назначить пользователю или группе. Если вы еще не определили какие-либо роли, роль по умолчанию — Access по умолчанию.

  9. На панели "Добавление назначения" выберите "Назначить" пользователя или группы приложению.

Отмена назначения пользователей и групп из приложения

  1. Выполните действия, описанные в разделе " Назначение пользователей и групп", чтобы перейти к области "Пользователи и группы ".
  2. Найдите и выберите пользователя или группу, которую вы хотите отменить назначение из приложения.
  3. Выберите "Удалить ", чтобы отменить назначение пользователя или группы из приложения.

Назначение пользователей и групп приложению с помощью Azure AD PowerShell

  1. Откройте командную строку Windows PowerShell с повышенными привилегиями.

  2. Запустите Connect-AzureAD и войдите как минимум облачные приложения Администратор istrator.

  3. Чтобы назначить пользователя и его роль в приложении, используйте следующий скрипт:

    # Assign the values to the variables
    $username = "<Your user's UPN>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    
    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Чтобы назначить группу корпоративному приложению, необходимо заменить Get-AzureADUser на Get-AzureADGroup, а New-AzureADUserAppRoleAssignment — на New-AzureADGroupAppRoleAssignment.

Дополнительные сведения о том, как назначить группе роль в приложении, см. в документации по командлету New-AzureADGroupAppRoleAssignment.

Пример

В этом примере пользователь Britta Simon назначается в приложении Microsoft Workplace Analytics с помощью PowerShell.

  1. В PowerShell присвойте соответствующие значения переменным $username, $app_name и $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. В этом примере неизвестно, как именно называется роль приложения, которую мы хотим назначить пользователю Britta Simon. Выполните следующие команды, чтобы получить пользователя ($user) и субъект-службу ($sp) с помощью отображаемых имен участника-пользователя и субъекта-службы.

    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Выполните команду $sp.AppRoles, чтобы отобразить роли, доступные для приложения Workplace Analytics. В этом примере мы хотим назначить пользователю Britta Simon роль Analyst (Limited Access) (аналитик с ограниченным доступом). Shows the roles available to a user using Workplace Analytics Role

  4. Присвойте имя роли переменной $app_role_name.

    # Assign the values to the variables
    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Выполните следующую команду, чтобы назначить пользователю роль в приложении:

    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Отмена назначения пользователей и групп из приложения с помощью Azure AD PowerShell

  1. Откройте командную строку Windows PowerShell с повышенными привилегиями.

  2. Запустите Connect-AzureAD и войдите как минимум облачные приложения Администратор istrator.

  3. Используйте следующий скрипт, чтобы удалить пользователя и роль из приложения.

    # Store the proper parameters
    $user = get-azureaduser -ObjectId <objectId>
    $spo = Get-AzureADServicePrincipal -ObjectId <objectId>
    
    #Get the ID of role assignment 
    $assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
    #if you run the following, it will show you what is assigned what
    $assignments | Select *
    
    #To remove the App role assignment run the following command.
    Remove-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
    

Удаление всех пользователей, назначенных приложению с помощью Azure AD PowerShell

Используйте следующий сценарий, чтобы удалить всех пользователей и групп, назначенных приложению.

#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-AzureADGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Назначение пользователей и групп приложению с помощью Microsoft Graph PowerShell

  1. Откройте командную строку Windows PowerShell с повышенными привилегиями.
  2. Запустите Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" и войдите как минимум облачные приложения Администратор istrator.
  3. Чтобы назначить пользователя и его роль в приложении, используйте следующий скрипт:

# Assign the values to the variables

$userId = "<Your user's ID>"
$app_name = "<Your App's display name>"
$app_role_name = "<App role display name>"
$sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"

# Get the user to assign, and the service principal for the app to assign to

$params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }

# Assign the user to the app role

New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
    Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
    PrincipalId, PrincipalType, ResourceDisplayName, ResourceId

Отмена назначения пользователей и групп из приложения с помощью Microsoft Graph PowerShell

  1. Откройте командную строку Windows PowerShell с повышенными привилегиями.
  2. Запустите Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" и войдите как минимум облачные приложения Администратор istrator. Используйте следующий скрипт, чтобы удалить пользователя и роль из приложения.

# Get the user and the service principal

$user = Get-MgUser -UserId <userid>
$spo = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>

# Get the Id of the role assignment

$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $spo.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}

# if you run the following, it will show you the list of users assigned to the application

$assignments | Select *

# To remove the App role assignment run the following command.

Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $spo.Id

Удаление всех пользователей и групп, назначенных приложению с помощью Microsoft Graph PowerShell

Используйте следующий сценарий, чтобы удалить всех пользователей и групп, назначенных приложению.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id  }
}

Назначение пользователей и групп приложению с помощью API Microsoft Graph

  1. Чтобы назначить пользователей и группы приложению, войдите в Graph Обозреватель as по крайней мере облачные приложения Администратор istrator.

    Необходимо предоставить согласие на следующие разрешения:

    Application.ReadWrite.All, , Directory.ReadWrite.AllAppRoleAssignment.ReadWrite.All.

    Чтобы предоставить назначение роли приложения, вам потребуется три идентификатора:

    • principalId: идентификатор пользователя или группы, которой назначается роль приложения.
    • resourceId: идентификатор службы ресурсовPrincipal, определяющий роль приложения.
    • appRoleId: идентификатор appRole (определенный в субъекте-службе ресурсов) для назначения пользователю или группе.
  2. Получите корпоративное приложение. Фильтрация по DisplayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Запишите следующие значения из текста ответа:

    • Идентификатор объекта корпоративного приложения
    • appRoleId, назначаемое пользователю. Если приложение не предоставляет никаких ролей, пользователь назначает роль доступа по умолчанию.
  3. Получите пользователя, отфильтровав его по имени участника. Запишите идентификатор объекта пользователя.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Назначьте пользователю роль для использования приложения.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",
    "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
    "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
    }
    

    В этом примере как ресурс-servicePrincipal-id, так и resourceId представляют корпоративное приложение.

Отмена назначения пользователей и групп из приложения с помощью API Microsoft Graph

Чтобы отменить назначение пользователей и групп из приложения, выполните следующий запрос.

  1. Получите корпоративное приложение. Фильтрация по displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Получите список приложений appRoleAssignments.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Удалите appRoleAssignments, указав идентификатор appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Следующие шаги