Uygulamaya kullanıcı ve grup atama
Bu makalede, PowerShell kullanarak Azure Active Directory'de (Azure AD) kurumsal bir uygulamaya kullanıcı ve grup atama adımları gösterilmektedir. Bir kullanıcıyı bir uygulamaya atadığınızda, uygulama kolay erişim için kullanıcının Uygulamalarım portalında görünür. Uygulama uygulama rollerini kullanıma sunarsa, kullanıcıya belirli bir uygulama rolü de atayabilirsiniz.
Bir grubu uygulamaya atadığınızda, yalnızca gruptaki kullanıcılar uygulamaya erişebilir. Atama, iç içe gruplara basamaklama yapmaz.
Grup tabanlı atama için Azure Active Directory Premium P1 veya P2 sürümü gerekir. Grup tabanlı atama yalnızca Güvenlik grupları için desteklenir. İç içe grup üyelikleri ve Microsoft 365 grupları şu anda desteklenmemektedir. Bu makalede ele alınan özelliklerle ilgili daha fazla lisanslama gereksinimi için Bkz. Azure Active Directory fiyatlandırma sayfası.
Daha fazla denetim için, belirli kurumsal uygulama türleri kullanıcı ataması gerektirecek şekilde yapılandırılabilir. Bir uygulama için kullanıcı ataması gerektirme hakkında daha fazla bilgi için bkz. Uygulamaya erişimi yönetme.
Önkoşullar
Kullanıcıları kurumsal bir uygulamaya atamak için şunları yapmanız gerekir:
- Etkin aboneliği olan bir Azure AD hesabı. Henüz bir hesabınız yoksa ücretsiz hesap oluşturabilirsiniz.
- Şu rollerden biri: Genel Yönetici, Bulut Uygulaması Yöneticisi, Uygulama Yöneticisi veya hizmet sorumlusu sahibi.
- Grup tabanlı atama için Azure Active Directory Premium P1 veya P2. Bu makalede ele alınan özelliklerle ilgili daha fazla lisanslama gereksinimi için Bkz. Azure Active Directory fiyatlandırma sayfası.
Kurumsal uygulamaya kullanıcı veya grup hesabı atamak için:
Azure Active Directory Yönetici Merkezi'ndeKurumsal uygulamalar'ı seçin ve kullanıcı veya grup hesabını atamak istediğiniz uygulamayı arayın ve seçin.
Sol bölmede Kullanıcılar ve gruplar'ı ve ardından Kullanıcı/grup ekle'yi seçin.
Atama Ekle bölmesinde, Kullanıcılar ve gruplar'ın altında Hiçbiri Seçilmedi'yi seçin.
Uygulamaya atamak istediğiniz kullanıcı veya grubu arayın ve seçin. Örneğin
contosouser1@contoso.com
veyacontosoteam1@contoso.com
olabilir.Seç’i seçin.
Atama Ekle bölmesinde, bölmenin alt kısmındaki Ata'yı seçin.
Yükseltilmiş bir Windows PowerShell komut istemi açın.
Genel Yönetici kullanıcı hesabını çalıştırın
Connect-AzureAD -Scopes "Application.Read.All", "Directory.Read.All", "Application.ReadWrite.All", "Directory.ReadWrite.All"
ve oturum açın.Bir uygulamaya kullanıcı ve rol atamak için aşağıdaki betiği kullanın:
# 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
Kurumsal bir uygulamaya grup atamak için öğesini ile Get-AzureADGroup
değiştirmeniz Get-AzureADUser
ve ile New-AzureADGroupAppRoleAssignment
değiştirmeniz New-AzureADUserAppRoleAssignment
gerekir.
Uygulama rolüne grup atama hakkında daha fazla bilgi için New-AzureADGroupAppRoleAssignment belgelerine bakın.
Örnek
Bu örnek, PowerShell kullanarak Britta Simon kullanıcısını Microsoft Workplace Analytics uygulamasına atar.
PowerShell'de ilgili değerleri $username $app_name ve $app_role_name değişkenlerine atayın.
# Assign the values to the variables $username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
Bu örnekte Britta Simon'a atamak istediğimiz uygulama rolünün tam adını bilmiyoruz. Kullanıcı UPN'sini ve hizmet sorumlusu görünen adlarını kullanarak kullanıcıyı ($user) ve hizmet sorumlusunu ($sp) almak için aşağıdaki komutları çalıştırın.
# 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'"
Workplace Analytics uygulamasında kullanılabilen rolleri görüntülemek için komutunu
$sp.AppRoles
çalıştırın. Bu örnekte Britta Simon'a Analist (Sınırlı erişim) Rolü atamak istiyoruz.Değişkene rol adını atayın
$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 }
Kullanıcıyı uygulama rolüne atamak için aşağıdaki komutu çalıştırın:
# Assign the user to the app role New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Uygulamadan kullanıcıların ve grupların atamasını kaldırma
Yükseltilmiş bir Windows PowerShell komut istemi açın.
Genel Yönetici kullanıcı hesabını çalıştırın
Connect-AzureAD -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
ve oturum açın. Uygulamadan kullanıcı ve rol kaldırmak için aşağıdaki betiği kullanın.# 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
Uygulamaya atanan tüm kullanıcıları kaldırma
Uygulamaya atanan tüm kullanıcıları ve grupları kaldırmak için aşağıdaki betiği kullanın.
#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
}
}
- Yükseltilmiş bir Windows PowerShell komut istemi açın.
- Genel Yönetici kullanıcı hesabını çalıştırın
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
ve oturum açın. - Bir uygulamaya kullanıcı ve rol atamak için aşağıdaki betiği kullanın:
# 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
Uygulamadan kullanıcıların ve grupların atamasını kaldırma
- Yükseltilmiş bir Windows PowerShell komut istemi açın.
- Genel Yönetici kullanıcı hesabını çalıştırın
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
ve oturum açın. Uygulamadan kullanıcı ve rol kaldırmak için aşağıdaki betiği kullanın.
# 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
Uygulamaya atanan tüm kullanıcıları ve grupları kaldırma
Uygulamaya atanan tüm kullanıcıları ve grupları kaldırmak için aşağıdaki betiği kullanın.
$assignments | ForEach-Object {
if ($_.PrincipalType -in ("user", "Group")) {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id }
}
Bir uygulamaya kullanıcı ve grup atamak için, önkoşul bölümünde listelenen rollerden biriyle Graph Gezgini'nde oturum açın.
Aşağıdaki izinleri onaylamanız gerekir:
Application.ReadWrite.All
,Directory.ReadWrite.All
,AppRoleAssignment.ReadWrite.All
.Bir uygulama rolü ataması vermek için üç tanımlayıcıya ihtiyacınız vardır:
principalId
: Uygulama rolünü atadığınız kullanıcı veya grubun kimliği.resourceId
: Uygulama rolünü tanımlayan kaynak servicePrincipal kimliği.appRoleId
: Bir kullanıcı veya gruba atanacak appRole kimliği (kaynak hizmet sorumlusunda tanımlanır).
Kurumsal uygulamayı alın. DisplayName'e göre filtreleyin.
GET servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
Yanıt gövdesinden aşağıdaki değerleri kaydedin:
- Kurumsal uygulamanın Nesne Kimliği
- kullanıcıya atayabileceğiniz appRoleId. Uygulama herhangi bir rolü kullanıma sunmazsa kullanıcıya varsayılan erişim rolü atanır.
Kullanıcının asıl adına göre filtreleyerek kullanıcıyı alın. Kullanıcının nesne kimliğini kaydedin.
GET /users/{userPrincipalName}
Kullanıcıyı uygulamaya atayın.
POST /servicePrincipals/resource-servicePrincipal-id/appRoleAssignedTo { "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296", "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e", "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7" }
Örnekte hem resource-servicePrincipal-id hem de resourceId kurumsal uygulamayı temsil eden bir uygulamadır.
Uygulamadan kullanıcıların ve grupların atamasını kaldırma
Kullanıcı ve grupların atamasını uygulamadan kaldırmak için aşağıdaki sorguyu çalıştırın.
Kurumsal uygulamayı alın. DisplayName'e göre filtreleyin.
GET servicePrincipal?$filter=DisplayName eq '{appDisplayName}'
Uygulama için appRoleAssignments listesini alın.
GET /servicePrincipals/{id}/appRoleAssignedTo
appRoleAssignment kimliğini belirterek appRoleAssignments öğesini kaldırın.
DELETE /servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}