Mengelola penetapan pengguna dan grup ke aplikasi

Artikel ini memperlihatkan kepada Anda cara menetapkan pengguna dan grup ke aplikasi perusahaan di ID Microsoft Entra menggunakan PowerShell. Saat Anda menetapkan pengguna ke aplikasi, aplikasi tersebut akan muncul di Aplikasi Saya milik pengguna untuk memudahkan akses. Jika aplikasi mengekspos peran, Anda juga dapat menetapkan peran tertentu kepada pengguna.

Saat Anda menetapkan grup ke aplikasi, hanya pengguna dalam grup yang memiliki akses. Penugasan tidak bertumpuk ke grup berlapis.

Penugasan berbasis grup memerlukan edisi Microsoft Entra ID P1 atau P2. Penugasan berbasis grup didukung untuk grup Keamanan dan grup Microsoft 365 yang pengaturannya SecurityEnabled diatur ke True saja. Keanggotaan grup berlapis saat ini tidak didukung. Untuk persyaratan lisensi selengkapnya untuk fitur yang dibahas dalam artikel ini, lihat halaman harga Microsoft Entra.

Untuk kontrol yang lebih ketat, jenis aplikasi perusahaan tertentu dapat dikonfigurasi untuk meminta penetapan pengguna. Untuk informasi selengkapnya tentang mengharuskan penetapan pengguna untuk aplikasi, lihat Mengelola akses ke aplikasi.

Prasyarat

Untuk menetapkan pengguna ke aplikasi perusahaan, Anda memerlukan:

  • Akun Microsoft Entra dengan langganan aktif. Jika Anda belum memilikinya, Anda dapat Membuat akun secara gratis.
  • Salah satu peran berikut: Administrator Global, Administrator Aplikasi Cloud, Administrator Aplikasi, atau pemilik perwakilan layanan.
  • Microsoft Entra ID P1 atau P2 untuk penugasan berbasis grup. Untuk persyaratan lisensi selengkapnya untuk fitur yang dibahas dalam artikel ini, lihat halaman harga Microsoft Entra.

Tip

Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.

Menetapkan pengguna dan grup ke aplikasi menggunakan pusat admin Microsoft Entra

Untuk menetapkan akun pengguna atau grup ke aplikasi perusahaan:

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.

  2. Telusuri aplikasi Identity>Applications>Enterprise>Semua aplikasi.

  3. Masukkan nama aplikasi yang ada di kotak pencarian, lalu pilih aplikasi dari hasil pencarian.

  4. Pilih Pengguna dan grup, lalu pilih Tambahkan pengguna/grup.

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

  5. Di panel Tambahkan Penugasan, pilih Tidak Ada yang Dipilih di bawah Pengguna dan grup.

  6. Cari dan pilih pengguna atau grup yang ingin Anda tetapkan ke aplikasi. Misalnya, contosouser1@contoso.com atau contosoteam1@contoso.com.

  7. Pilih Pilih.

  8. Di bawah Pilih peran, pilih peran yang ingin Anda tetapkan ke pengguna atau grup. Jika Anda belum menentukan peran apa pun, peran defaultnya adalah Akses Default.

  9. Pada panel Tambahkan Penugasan , pilih Tetapkan untuk menetapkan pengguna atau grup ke aplikasi.

Menghapus penetapan pengguna, dan grup, dari aplikasi

  1. Ikuti langkah-langkah pada bagian Tetapkan pengguna, dan grup, ke aplikasi untuk menavigasi ke panel Pengguna dan grup .
  2. Cari dan pilih pengguna atau grup yang ingin Anda batalkan penetapannya dari aplikasi.
  3. Pilih Hapus untuk menghapus penetapan pengguna atau grup dari aplikasi.

Menetapkan pengguna dan grup ke aplikasi menggunakan Azure AD PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD dan masuk setidaknya sebagai Administrator Aplikasi Cloud.

  3. Gunakan skrip berikut untuk menetapkan pengguna dan peran ke aplikasi:

    # 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
    

Untuk menetapkan grup ke aplikasi perusahaan, Anda harus mengganti Get-AzureADUser dengan Get-AzureADGroup dan mengganti New-AzureADUserAppRoleAssignment dengan New-AzureADGroupAppRoleAssignment.

Untuk informasi selengkapnya tentang cara menetapkan grup ke peran aplikasi, lihat dokumentasi mengenai New-AzureADGroupAppRoleAssignment.

Contoh

Contoh ini menetapkan pengguna Britta Simon ke aplikasi Microsoft Workplace Analytics menggunakan PowerShell.

  1. Di PowerShell, tetapkan nilai terkait ke variabel $username, $app_name dan $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. Dalam contoh ini, kita tidak tahu pasti apa nama dari peran aplikasi yang ingin ditetapkan untuk Britta Simon. Jalankan perintah berikut untuk menghubungi pengguna ($user) dan perwakilan layanan ($sp) menggunakan nama prinsipal pengguna dan nama tampilan perwakilan layanan.

    # 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. Jalankan perintah $sp.AppRoles guna menampilkan peran yang tersedia untuk aplikasi Workplace Analytics. Dalam contoh ini, kami ingin menetapkan Peran Analis (Akses terbatas) kepada Britta Simon. Shows the roles available to a user using Workplace Analytics Role

  4. Tetapkan nama peran ke variabel $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. Jalankan perintah berikut untuk menetapkan pengguna ke peran aplikasi:

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

Menghapus penetapan pengguna dan grup dari aplikasi menggunakan Azure AD PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD dan masuk setidaknya sebagai Administrator Aplikasi Cloud.

  3. Gunakan skrip berikut untuk menghapus pengguna dan peran dari aplikasi.

    # 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
    

Menghapus semua pengguna yang ditetapkan ke aplikasi menggunakan Azure AD PowerShell

Gunakan skrip berikut untuk menghapus semua pengguna dan grup yang ditetapkan ke aplikasi.

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

Menetapkan pengguna dan grup ke aplikasi menggunakan Microsoft Graph PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.
  2. Jalankan Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" dan masuk setidaknya sebagai Administrator Aplikasi Cloud.
  3. Gunakan skrip berikut untuk menetapkan pengguna dan peran ke aplikasi:

# 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

Menghapus penetapan pengguna dan grup dari aplikasi menggunakan Microsoft Graph PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.
  2. Jalankan Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" dan masuk setidaknya sebagai Administrator Aplikasi Cloud. Gunakan skrip berikut untuk menghapus pengguna dan peran dari aplikasi.

# 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

Menghapus semua pengguna dan grup yang ditetapkan ke aplikasi menggunakan Microsoft Graph PowerShell

Gunakan skrip berikut untuk menghapus semua pengguna dan grup yang ditetapkan ke aplikasi.

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

Menetapkan pengguna dan grup ke aplikasi menggunakan Microsoft Graph API

  1. Untuk menetapkan pengguna dan grup ke aplikasi, masuk ke Graph Explorersebagai setidaknya Administrator Aplikasi Cloud.

    Anda perlu menyetujui izin berikut:

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

    Untuk memberikan penetapan peran aplikasi, Anda memerlukan tiga pengidentifikasi:

    • principalId: ID pengguna atau grup tempat Anda menetapkan peran aplikasi.
    • resourceId: ID servicePrincipal sumber daya yang menentukan peran aplikasi.
    • appRoleId: ID appRole (ditentukan pada perwakilan layanan sumber daya) untuk ditetapkan ke pengguna atau grup.
  2. Dapatkan aplikasi perusahaan. Filter menurut DisplayName.

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

    Rekam nilai berikut dari isi respons:

    • ID objek aplikasi perusahaan
    • appRoleId yang Anda tetapkan kepada pengguna. Jika aplikasi tidak mengekspos peran apa pun, pengguna diberi peran akses default.
  3. Dapatkan pengguna dengan memfilter berdasarkan nama utama pengguna. Rekam ID objek pengguna.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Tetapkan pengguna ke aplikasi.

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

    Dalam contoh, baik resource-servicePrincipal-id dan resourceId mewakili aplikasi perusahaan.

Menghapus penetapan pengguna dan grup dari aplikasi menggunakan Microsoft Graph API

Untuk menghapus penetapan pengguna dan grup dari aplikasi, jalankan kueri berikut.

  1. Dapatkan aplikasi perusahaan. Filter menurut displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Dapatkan daftar appRoleAssignments untuk aplikasi.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Hapus appRoleAssignments dengan menentukan ID appRoleAssignment.

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

Langkah berikutnya