Tilldela användare och grupper till ett program

Den här artikeln visar hur du tilldelar användare och grupper till ett företagsprogram i Azure Active Directory (Azure AD) med hjälp av PowerShell. När du tilldelar en användare till ett program visas programmet i användarens Mina appar portal för enkel åtkomst. Om programmet exponerar roller kan du även tilldela användaren en viss roll.

När du tilldelar en grupp till ett program har endast användare i gruppen åtkomst. Tilldelningen överlappar inte kapslade grupper.

Gruppbaserad tilldelning kräver Azure Active Directory Premium P1 eller P2-utgåva. Gruppbaserad tilldelning stöds endast för säkerhetsgrupper. Kapslade gruppmedlemskap och Microsoft 365 grupper stöds inte för närvarande. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på sidan Azure Active Directory prissättning.

För större kontroll kan vissa typer av företagsprogram konfigureras för att kräva användartilldelning. Mer information om hur du kräver användartilldelning för en app finns i Hantera åtkomst till ett program .

Förutsättningar

Om du vill tilldela användare till en app med PowerShell behöver du:

  • Ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett konto kan du skapa ett konto kostnadsfritt.
  • En av följande roller: Global administratör, molnprogramadministratör, programadministratör eller ägare av tjänstens huvudnamn.
  • Om du ännu inte har installerat AzureAD-modulen (använd kommandot Install-Module -Name AzureAD). Om du uppmanas att installera en NuGet-modul eller den nya Azure Active Directory V2 PowerShell-modulen skriver du Y och trycker på RETUR.
  • Azure Active Directory Premium P1 eller P2 för gruppbaserad tilldelning. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på sidan Azure Active Directory prissättning.
  • Valfritt: Slutförande av Konfigurera en app.

Tilldela användare och grupper till en app med PowerShell

  1. Öppna en upphöjd Windows PowerShell kommandotolk.

  2. Kör Connect-AzureAD och logga in med ett användarkonto för global administratör.

  3. Använd följande skript för att tilldela en användare och roll till ett program:

    # 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
    
    

Om du vill tilldela en grupp till en företagsapp måste du ersätta Get-AzureADUser med Get-AzureADGroup och ersätta New-AzureADUserAppRoleAssignment med New-AzureADGroupAppRoleAssignment.

Mer information om hur du tilldelar en grupp till en programroll finns i dokumentationen för New-AzureADGroupAppRoleAssignment.

Exempel

Det här exemplet tilldelar användaren Britta Simon till Microsoft Workplace Analytics-programmet med hjälp av PowerShell.

  1. I PowerShell tilldelar du motsvarande värden till variablerna $username, $app_name och $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
    
  2. I det här exemplet vet vi inte exakt namnet på den programroll som vi vill tilldela Britta Simon. Kör följande kommandon för att hämta användaren ($user) och tjänstens huvudnamn ($sp) med hjälp av upn-användaren och visningsnamnen för tjänstens huvudnamn.

    # 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. Kör kommandot $sp.AppRoles för att visa de roller som är tillgängliga för Workplace Analytics-programmet. I det här exemplet vill vi tilldela Rollen Analytiker (begränsad åtkomst) Britta Simon. Shows the roles available to a user using Workplace Analytics Role

  4. Tilldela rollnamnet till variabeln $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. Kör följande kommando för att tilldela användaren till approllen:

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

Avtilldela användare och grupper från en app med PowerShell

  1. Öppna en upphöjd Windows PowerShell kommandotolk.

  2. Kör Connect-AzureAD och logga in med ett användarkonto för global administratör. Använd följande skript för att ta bort en användare och roll från ett program:

    # 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 #].ObjectId
    

Ta bort alla användare som har tilldelats till programmet


#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
 }
}

Nästa steg