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. Penugasan tidak berkakade 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. Untuk informasi selengkapnya tentang mengharuskan penetapan pengguna untuk aplikasi, lihat Mengelola akses ke aplikasi.

Prasyarat

Untuk menetapkan pengguna ke aplikasi perusahaan, Anda memerlukan:

  • Akun Azure AD 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.
  • 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.

Untuk menetapkan akun pengguna atau grup ke aplikasi perusahaan:

  1. Di Azure Active Directory Admin Center, pilih Aplikasi perusahaan, lalu cari dan pilih aplikasi yang ingin Anda tetapkan akun pengguna atau grupnya.

  2. Di panel sebelah kiri, pilih Pengguna dan grup, lalu pilih Tambahkan pengguna/grup.

    Tetapkan akun pengguna ke aplikasi di penyewa Azure AD Anda.

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

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

  5. Pilih Pilih.

  6. Di panel Tambahkan Penugasan, pilih tombol Tetapkan di bagian bawah panel.

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD -Scopes "Application.Read.All", "Directory.Read.All", "Application.ReadWrite.All", "Directory.ReadWrite.All" dan masuk dengan akun pengguna Administrator 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. Menunjukkan peran yang tersedia bagi pengguna menggunakan Peran Analitik Workplace

  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

  1. Buka perintah Windows PowerShell yang ditinggikan.

  2. Jalankan Connect-AzureAD -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" dan masuk dengan akun pengguna Administrator 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 number].ObjectId
    

Menghapus semua pengguna yang ditetapkan ke aplikasi

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
    }
}
  1. Buka perintah Windows PowerShell yang ditinggikan.
  2. Jalankan Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" dan masuk dengan akun pengguna Administrator Global.
  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

  1. Buka perintah Windows PowerShell yang ditinggikan.
  2. Jalankan Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" dan masuk dengan akun pengguna Administrator Global. 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

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  }
}
  1. Untuk menetapkan pengguna dan grup ke aplikasi, masuk ke Graph Explorer dengan salah satu peran yang tercantum di bagian prasyarat.

    Anda harus 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 telah 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 servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
    

    Rekam nilai berikut dari isi respons:

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

    GET /users/{userPrincipalName}
    
  4. Tetapkan pengguna ke aplikasi.

    POST /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, resource-servicePrincipal-id dan resourceId mewakili aplikasi perusahaan.

Menghapus penetapan pengguna, dan grup, dari aplikasi

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

  1. Dapatkan aplikasi perusahaan. Filter menurut DisplayName.

    GET servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
    
  2. Dapatkan daftar appRoleAssignments untuk aplikasi.

       GET /servicePrincipals/{id}/appRoleAssignedTo
    
  3. Hapus appRoleAssignments dengan menentukan ID appRoleAssignment.

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

Langkah berikutnya