Menetapkan pengguna dan grup ke aplikasi

Artikel ini menunjukkan kepada Anda cara menetapkan pengguna dan grup ke aplikasi perusahaan di Azure Active Directory (Azure AD), 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 suatu aplikasi, hanya pengguna di grup tersebut yang akan memiliki akses. Penetapan tidak menurun ke grup berlapis.

Penetapan berbasis grup memerlukan edisi Azure Active Directory Premium P1 atau P2. Penetapan berbasis grup hanya didukung untuk Kelompok keamanan. Keanggotaan grup berlapis dan grup Microsoft 365 saat ini tidak didukung. Mengenai persyaratan lisensi selengkapnya untuk fitur yang dibahas dalam artikel ini, lihat halaman harga Azure Active Directory.

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

Prasyarat

Untuk menetapkan pengguna ke aplikasi menggunakan PowerShell, Anda memerlukan:

  • Akun Azure 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.
  • Jika Anda belum memasang modul AzureAD (gunakan perintah Install-Module -Name AzureAD). Jika Anda diminta untuk menginstal modul NuGet atau modul Azure Active Directory V2 PowerShell baru, ketik Y dan tekan ENTER.
  • Penetapan berbasis grup Azure Active Directory Premium P1 atau P2. Mengenai persyaratan lisensi selengkapnya untuk fitur yang dibahas dalam artikel ini, lihat halaman harga Azure Active Directory.
  • Opsional: Penyelesaian Konfigurasikan aplikasi.

Menetapkan pengguna, dan grup, ke aplikasi menggunakan PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD, lalu masuk dengan akun pengguna Admin Global.

  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
    

Membatalkan penetapan pengguna, dan grup, dari aplikasi menggunakan PowerShell

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD, lalu masuk dengan akun pengguna Admin Global. 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 #].ObjectId
    

Menghapus semua pengguna 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
 }
}

Langkah berikutnya