Hantera tilldelning av användare och grupper till ett program

Den här artikeln visar hur du tilldelar användare och grupper till ett företagsprogram i Microsoft Entra-ID 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 approller kan du även tilldela användaren en specifik approll.

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 Microsoft Entra ID P1- eller P2-utgåva. Gruppbaserad tilldelning stöds för säkerhetsgrupper och Microsoft 365-grupper vars SecurityEnabled inställning endast är inställd på True . Kapslade gruppmedlemskap stöds inte för närvarande. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på prissättningssidan för Microsoft Entra.

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 ett företagsprogram behöver du:

  • Ett Microsoft Entra-konto med en aktiv prenumeration. Om du inte redan har ett kan du skapa ett konto kostnadsfritt.
  • Någon av följande roller: global administratör, molnprogramadministratör, programadministratör eller ägare av tjänstens huvudnamn.
  • Microsoft Entra ID P1 eller P2 för gruppbaserad tilldelning. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på prissättningssidan för Microsoft Entra.

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Tilldela användare och grupper till ett program med hjälp av administrationscentret för Microsoft Entra

Så här tilldelar du ett användar- eller gruppkonto till ett företagsprogram:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.

  2. Bläddra till Identity>Applications Enterprise-program>>Alla program.

  3. Ange namnet på det befintliga programmet i sökrutan och välj sedan programmet i sökresultaten.

  4. Välj Användare och grupper och välj sedan Lägg till användare/grupp.

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

  5. I fönstret Lägg till tilldelning väljer du Ingen markerad under Användare och grupper.

  6. Sök efter och välj den användare eller grupp som du vill tilldela till programmet. Exempel: contosouser1@contoso.com eller contosoteam1@contoso.com.

  7. Välj Välj.

  8. Under Välj en roll väljer du den roll som du vill tilldela användaren eller gruppen. Om du inte har definierat några roller än är standardrollen Standardåtkomst.

  9. I fönstret Lägg till tilldelning väljer du Tilldela för att tilldela användaren eller gruppen till programmet.

Avtilldela användare och grupper från ett program

  1. Följ stegen i avsnittet Tilldela användare och grupper till ett program för att navigera till fönstret Användare och grupper .
  2. Sök efter och välj den användare eller grupp som du vill ta bort tilldelningen från programmet.
  3. Välj Ta bort för att avtilldela användaren eller gruppen från programmet.

Tilldela användare och grupper till ett program med Azure AD PowerShell

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

  2. Kör Connect-AzureAD och logga in som minst molnprogramadministratö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 och ersätta New-AzureADUserAppRoleAssignment med Get-AzureADGroupNew-AzureADGroupAppRoleAssignment.

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

Exempel

I det här exemplet tilldelas 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 vad som är det exakta 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 användarens UPN 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 Britta Simon rollen Analytiker (begränsad åtkomst). 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 ett program med Azure AD PowerShell

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

  2. Kör Connect-AzureAD och logga in som minst molnprogramadministratör.

  3. 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 number].ObjectId
    

Ta bort alla användare som har tilldelats till programmet med Hjälp av Azure AD PowerShell

Använd följande skript för att ta bort alla användare och grupper som 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
    }
}

Tilldela användare och grupper till ett program med Hjälp av Microsoft Graph PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.
  2. Kör Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" och logga in som minst molnprogramadministratö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

$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

Avtilldela användare och grupper från ett program med Hjälp av Microsoft Graph PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.
  2. Kör Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" och logga in som minst molnprogramadministratör. Använd följande skript för att ta bort en användare och roll från ett program.

# 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

Ta bort alla användare och grupper som tilldelats programmet med Microsoft Graph PowerShell

Använd följande skript för att ta bort alla användare och grupper som tilldelats till programmet.

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

Tilldela användare och grupper till ett program med hjälp av Microsoft Graph API

  1. Om du vill tilldela användare och grupper till ett program loggar du in på Graph Explorersom minst molnprogramadministratör.

    Du måste godkänna följande behörigheter:

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

    Om du vill bevilja en approlltilldelning behöver du tre identifierare:

    • principalId: ID för den användare eller grupp som du tilldelar approllen till.
    • resourceId: ID för resurstjänstenPrincipal som definierar approllen.
    • appRoleId: ID:t för appRole (definierat i resurstjänstens huvudnamn) som ska tilldelas till en användare eller grupp.
  2. Hämta företagsapplikationen. Filtrera efter DisplayName.

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

    Registrera följande värden från svarstexten:

    • Objekt-ID för företagsprogrammet
    • appRoleId som du tilldelar användaren. Om programmet inte exponerar några roller tilldelas användaren standardåtkomstrollen.
  3. Hämta användaren genom att filtrera efter användarens huvudnamn. Registrera användarens objekt-ID.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Tilldela användaren till programmet.

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

    I exemplet representerar både resource-servicePrincipal-id och resourceId företagsprogrammet.

Avtilldela användare och grupper från ett program med hjälp av Microsoft Graph API

Om du vill avtilldela användare och grupper från programmet kör du följande fråga.

  1. Hämta företagsapplikationen. Filtrera efter displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Hämta listan över appRoleAssignments för programmet.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Ta bort appRoleAssignments genom att ange appRoleAssignment ID.

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

Nästa steg