Как управлять ролями приложений Azure AD для пользователей Azure AD - PullRequest
0 голосов
/ 10 декабря 2018

1: Кто-нибудь знает об инструменте, который может управлять назначением ролей для пользователей Azure AD (определенные в манифесте appRoles) для корпоративных приложений в Azure AD?

Iя говорю о том, как назначать роли (специфичные для приложения) существующим пользователям Azure AD.Это очень медленный процесс, использующий портал Azure для этого.

Конечно, мы могли бы создать этот инструмент, но было бы неплохо, если бы такой инструмент уже существовал.Что сегодня используют крупные организации со многими приложениями Azure AD Enterprise?

2: действительно ли лучше вручную редактировать файл манифеста на портале?Было бы разумнее иметь файл (раздел AppRoles) в git вместе с кодом приложения.

1 Ответ

0 голосов
/ 10 декабря 2018

Кто-нибудь знает об инструменте, который может управлять ролями для пользователей Azure AD

AFAIK, для управления ролями приложений не существует какого-либо специального инструмента.

В целом вы должны иметь возможность использовать следующие параметры для добавления / редактирования / обновления параметров, связанных с ролями приложений и назначением разрешений для существующих пользователей AD:

ПРИМЕЧАНИЕ. Также следует знать, если вы имеете делопри большом количестве пользователей вы можете рассмотреть возможность назначения групп безопасности для ролей приложений вместо того, чтобы делать это для отдельных пользователей.Этот вариант стоит рассмотреть, хотя для этого требуется премиум-лицензия Azure AD.( Обновление - см. Также комментарий Филиппа Синьоре в конце этого ответа о назначении групп ролям приложений, делегировании управления назначенными группами и управлении группами самообслуживания )

  1. Портал Azure путем редактирования манифеста приложения json (вы уже знаете об этом)

  2. PowerShell -

    Я добавилСценарий для этого в конце.Вы можете сделать это при создании нового приложения, используя New-AzureADApplication или для существующего приложения, используя Set-AzureADApplication.

    . Для назначения этих ролей существующим пользователям вы можете использовать New-AzureADUserAppRoleAssignment, как я показал ниже дляобновленный сценарий.

  3. API-интерфейс Azure AD Graph -

    Вы можете работать с типом AppRole и сущностью Application для самостоятельного управления ролями приложения. Документация здесь enter image description here

    Вы можете работать с AppRoleAssignment Entity для назначения этих ролей существующим пользователям Azure AD и т. Д. Документация здесь

    enter image description here

  4. Microsoft Graph API -

    Документация здесь - Обратите внимание, это доступно тольков бета-версии - так что это еще не хорошо для производственных приложений.

    Здесь можно найти , работающий с назначениями ролей приложений

Для ваших производственных приложений вы можете читать роли приложений из файла json (часть исходного кода)управляйте, как git и т. д.), и вставьте его в один из программных параметров, таких как PowerShell или Azure AD Graph API.

Вот сценарий PowerShell.Также взгляните на эти SO Post, где мы обсуждали нечто подобное, но только в рамках PowerShell.

SO Post 1

SO Post 2 (В этом вопросе обсуждается анализ файла json и обновление манифеста приложения с помощью PowerShell)

Connect-AzureAD -TenantId <Tenant GUID>

# Create an application role of given name and description
Function CreateAppRole([string] $Name, [string] $Description)
{
    $appRole = New-Object Microsoft.Open.AzureAD.Model.AppRole
    $appRole.AllowedMemberTypes = New-Object System.Collections.Generic.List[string]
    $appRole.AllowedMemberTypes.Add("User");
    $appRole.DisplayName = $Name
    $appRole.Id = New-Guid
    $appRole.IsEnabled = $true
    $appRole.Description = $Description
    $appRole.Value = $Name;
    return $appRole
}

# ObjectId for application from App Registrations in your AzureAD
$appObjectId = "<Your Application Object Id>"
$app = Get-AzureADApplication -ObjectId $appObjectId
$appRoles = $app.AppRoles
Write-Host "App Roles before addition of new role.."
Write-Host $appRoles

$newRole = CreateAppRole -Name "MyNewApplicationRole" -Description "This is my new Application Role"
$appRoles.Add($newRole)

Set-AzureADApplication -ObjectId $app.ObjectId -AppRoles $appRoles

Как только вы закончили с вышеуказанным сценарием для добавления AppRole, назначение ролей пользователю довольно просто и доступна прямая команда.Вот пример сценария для этого -

# Assign the values to the variables
$username = "<You 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...