Přiřazení uživatelů a skupin k aplikaci

V tomto článku se dozvíte, jak přiřadit uživatele a skupiny k podnikové aplikaci v Azure Active Directory (Azure AD) pomocí PowerShellu. Když přiřadíte uživatele k aplikaci, aplikace se zobrazí na portálu Moje aplikace uživatele pro snadný přístup. Pokud aplikace zveřejňuje aplikační role, můžete uživateli přiřadit také konkrétní aplikační roli.

Když přiřadíte určitou skupinu k aplikaci, budou mít přístup jenom uživatelé v této skupině. Přiřazení neprovádí kaskádovitě do vnořených skupin.

Přiřazení na základě skupin vyžaduje edici Azure Active Directory Premium P1 nebo P2. Přiřazení na základě skupin se podporuje jenom pro skupiny zabezpečení. Vnořené členství ve skupinách a skupiny Microsoftu 365 se v současné době nepodporují. Další licenční požadavky na funkce popisované v tomto článku najdete na stránce s cenami služby Azure Active Directory.

Pro větší kontrolu je možné nakonfigurovat určité typy podnikových aplikací tak, aby vyžadovaly přiřazení uživatelů. Další informace o vyžadování přiřazení uživatelů pro aplikaci najdete v tématu Správa přístupu k aplikaci.

Požadavky

K přiřazení uživatelů k podnikové aplikaci potřebujete:

  • Účet Azure AD s aktivním předplatným. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet.
  • Jedna z následujících rolí: globální správce, správce cloudových aplikací, správce aplikací nebo vlastník instančního objektu.
  • Azure Active Directory Premium P1 nebo P2 pro přiřazení na základě skupin. Další licenční požadavky na funkce popisované v tomto článku najdete na stránce s cenami služby Azure Active Directory.

Přiřazení uživatelského nebo skupinového účtu k podnikové aplikaci:

  1. V Centru Správa Azure Active Directory vyberte Podnikové aplikace a pak vyhledejte a vyberte aplikaci, ke které chcete přiřadit účet uživatele nebo skupiny.

  2. V levém podokně vyberte Uživatelé a skupiny a pak vyberte Přidat uživatele nebo skupinu.

    Přiřaďte uživatelský účet k aplikaci v tenantovi Azure AD.

  3. V podokně Přidat přiřazení vyberte v části Uživatelé a skupinymožnost Žádné vybráno.

  4. Vyhledejte a vyberte uživatele nebo skupinu, které chcete přiřadit k aplikaci. Příkladem je contosouser1@contoso.com nebo contosoteam1@contoso.com.

  5. Vyberte Vybrat.

  6. V podokně Přidat přiřazení vyberte v dolní části podokna Přiřadit .

  1. Otevřete příkazový řádek se zvýšenými oprávněními Windows PowerShell.

  2. Spusťte Connect-AzureAD -Scopes "Application.Read.All", "Directory.Read.All", "Application.ReadWrite.All", "Directory.ReadWrite.All" a přihlaste se pomocí uživatelského účtu globálního správce.

  3. Pomocí následujícího skriptu přiřaďte uživateli a roli k aplikaci:

    # 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
    

Pokud chcete přiřadit skupinu k podnikové aplikaci, musíte nahradit Get-AzureADUser za Get-AzureADGroup a nahradit New-AzureADUserAppRoleAssignment za New-AzureADGroupAppRoleAssignment.

Další informace o tom, jak přiřadit skupinu k roli aplikace, najdete v dokumentaci k New-AzureADGroupAppRoleAssignment.

Příklad

Tento příklad přiřadí uživatele Britta Simon k aplikaci Microsoft Workplace Analytics pomocí PowerShellu.

  1. V PowerShellu přiřaďte odpovídající hodnoty proměnným $username, $app_name a $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. V tomto příkladu nevíme, jaký je přesný název aplikační role, kterou chceme přiřadit Brittě Simonové. Spuštěním následujících příkazů získejte uživatele ($user) a instanční objekt ($sp) pomocí hlavního názvu uživatele (UPN) a zobrazované názvy instančního objektu.

    # 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. Spuštěním příkazu $sp.AppRoles zobrazte role dostupné pro aplikaci Workplace Analytics. V tomto příkladu chceme brittu Simon přiřadit roli Analytik (omezený přístup). Zobrazuje role dostupné uživateli pomocí role Workplace Analytics.

  4. Přiřaďte název role proměnné $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. Spuštěním následujícího příkazu přiřaďte uživatele k roli aplikace:

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

Zrušení přiřazení uživatelů a skupin k aplikaci

  1. Otevřete příkazový řádek se zvýšenými oprávněními Windows PowerShell.

  2. Spusťte Connect-AzureAD -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" a přihlaste se pomocí uživatelského účtu globálního správce. Pomocí následujícího skriptu odeberte uživatele a roli z aplikace.

    # 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
    

Odebrání všech uživatelů přiřazených k aplikaci

Pomocí následujícího skriptu odeberte všechny uživatele a skupiny přiřazené k aplikaci.

#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
    }
}
  1. Otevřete příkazový řádek se zvýšenými oprávněními Windows PowerShell.
  2. Spusťte Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" a přihlaste se pomocí uživatelského účtu globálního správce.
  3. Pomocí následujícího skriptu přiřaďte uživateli a roli k aplikaci:
# 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

Zrušení přiřazení uživatelů a skupin k aplikaci

  1. Otevřete příkazový řádek se zvýšenými oprávněními Windows PowerShell.
  2. Spusťte Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" a přihlaste se pomocí uživatelského účtu globálního správce. Pomocí následujícího skriptu odeberte uživatele a roli z aplikace.
# 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

Odebrání všech uživatelů a skupin přiřazených k aplikaci

Pomocí následujícího skriptu odeberte všechny uživatele a skupiny přiřazené k aplikaci.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id  }
}
  1. Pokud chcete k aplikaci přiřadit uživatele a skupiny, přihlaste se k Graph Exploreru pomocí jedné z rolí uvedených v části s požadavky.

    Budete muset udělit souhlas s následujícími oprávněními:

    Application.ReadWrite.All, Directory.ReadWrite.All, AppRoleAssignment.ReadWrite.All.

    K udělení přiřazení role aplikace potřebujete tři identifikátory:

    • principalId: ID uživatele nebo skupiny, kterým přiřazujete aplikační roli.
    • resourceId: ID objektu servicePrincipal prostředků, který definoval aplikační roli.
    • appRoleId: ID role aplikace (definované v instančním objektu prostředku), které se má přiřadit uživateli nebo skupině.
  2. Získejte podnikovou aplikaci. Filtrovat podle DisplayName.

    GET servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
    

    Poznamenejte si následující hodnoty z textu odpovědi:

    • ID objektu podnikové aplikace
    • appRoleId, které přiřadíte uživateli. Pokud aplikace nezpřístupní žádné role, přiřadí se uživateli výchozí přístupová role.
  3. Získejte uživatele filtrováním podle hlavního názvu uživatele. Poznamenejte si ID objektu uživatele.

    GET /users/{userPrincipalName}
    
  4. Přiřaďte uživatele k aplikaci.

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

    V tomto příkladu resource-servicePrincipal-id i resourceId představují podnikovou aplikaci.

Zrušení přiřazení uživatelů a skupin k aplikaci

Pokud chcete zrušit přiřazení uživatelů a skupin z aplikace, spusťte následující dotaz.

  1. Získejte podnikovou aplikaci. Filtrovat podle DisplayName.

    GET servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
    
  2. Získejte seznam appRoleAssignments pro aplikaci.

       GET /servicePrincipals/{id}/appRoleAssignedTo
    
  3. Odeberte appRoleAssignments zadáním ID appRoleAssignment.

    DELETE /servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Další kroky