Bir uygulamaya kullanıcı ve grup atamasını yönetme

Bu makalede, PowerShell kullanarak Microsoft Entra Id'de kurumsal bir uygulamaya kullanıcı ve grup atama 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 gruba bir uygulama atadığınızda, yalnızca gruptaki kullanıcıların erişimi olur. Atama, iç içe gruplara art arda gelmez.

Grup tabanlı atama için Microsoft Entra ID P1 veya P2 sürümü gerekir. Grup tabanlı atama, ayarı yalnızca olarak ayarlanmış True Olan Güvenlik grupları ve Microsoft 365 grupları SecurityEnabled için desteklenir. İç içe grup üyelikleri şu anda desteklenmemektedir. Bu makalede açıklanan özelliklerle ilgili daha fazla lisanslama gereksinimi için Microsoft Entra fiyatlandırma sayfasına bakın.

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

Bir kurumsal uygulamaya kullanıcı atamak için şunları yapmanız gerekir:

  • Etkin aboneliği olan bir Microsoft Entra 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 Microsoft Entra ID P1 veya P2. Bu makalede açıklanan özelliklerle ilgili daha fazla lisanslama gereksinimi için Microsoft Entra fiyatlandırma sayfasına bakın.

Bahşiş

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

Microsoft Entra yönetim merkezini kullanarak bir uygulamaya kullanıcı ve grup atama

Kurumsal uygulamaya kullanıcı veya grup hesabı atamak için:

  1. Microsoft Entra yönetim merkezinde en az Bulut Uygulaması Yönetici istrator olarak oturum açın.

  2. Kimlik>Uygulamaları>Kurumsal uygulamaları>Tüm uygulamalar'a göz atın.

  3. Arama kutusuna mevcut uygulamanın adını girin ve ardından arama sonuçlarından uygulamayı seçin.

  4. Kullanıcılar ve gruplar'ı ve ardından Kullanıcı/grup ekle'yi seçin.

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

  5. Atama Ekle bölmesinde Kullanıcılar ve gruplar'ın altında Seçili Yok'a tıklayın.

  6. Uygulamaya atamak istediğiniz kullanıcı veya grubu arayın ve seçin. Örneğin, contosouser1@contoso.com veya contosoteam1@contoso.com.

  7. Seç'i seçin.

  8. Rol seçin altında, kullanıcıya veya gruba atamak istediğiniz rolü seçin. Henüz herhangi bir rol tanımlamadıysanız varsayılan rol Varsayılan Erişim'dir.

  9. Kullanıcıyı veya grubu uygulamaya atamak için Atama Ekle bölmesinde Ata'yı seçin.

Uygulamadan kullanıcıların ve grupların atamasını kaldırma

  1. Kullanıcılar ve gruplar bölmesine gitmek için Bir uygulamaya kullanıcı ve grup atama bölümündeki adımları izleyin.
  2. Uygulamadan atamasını kaldırmak istediğiniz kullanıcı veya grubu arayın ve seçin.
  3. Kullanıcının veya grubun uygulamadaki atamasını kaldırmak için Kaldır'ı seçin.

Azure AD PowerShell kullanarak bir uygulamaya kullanıcı ve grup atama

  1. Yükseltilmiş bir Windows PowerShell komut istemi açın.

  2. En azından bir Bulut Uygulaması Yönetici istrator olarak çalıştırın Connect-AzureAD ve oturum açın.

  3. 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-AzureADGroupAppRoleAssignmentdeğiştirmeniz New-AzureADUserAppRoleAssignment gerekir.

Bir grubu uygulama rolüne 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.

  1. 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"
    
  2. 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'"
    
  3. Workplace Analytics uygulaması için kullanılabilir 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. Shows the roles available to a user using Workplace Analytics Role

  4. 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 }
    
  5. 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
    

Azure AD PowerShell kullanarak bir uygulamadan kullanıcı ve grupların atamasını kaldırma

  1. Yükseltilmiş bir Windows PowerShell komut istemi açın.

  2. En azından bir Bulut Uygulaması Yönetici istrator olarak çalıştırın Connect-AzureAD ve oturum açın.

  3. 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
    

Azure AD PowerShell kullanarak 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
    }
}

Microsoft Graph PowerShell kullanarak bir uygulamaya kullanıcı ve grup atama

  1. Yükseltilmiş bir Windows PowerShell komut istemi açın.
  2. En azından bir Bulut Uygulaması Yönetici istrator olarak çalıştırın Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" ve oturum açın.
  3. 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

Microsoft Graph PowerShell kullanarak bir uygulamadan kullanıcı ve grupların atamasını kaldırma

  1. Yükseltilmiş bir Windows PowerShell komut istemi açın.
  2. En azından bir Bulut Uygulaması Yönetici istrator olarak ç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

Microsoft Graph PowerShell kullanarak 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  }
}

Microsoft Graph API'sini kullanarak bir uygulamaya kullanıcı ve grup atama

  1. Bir uygulamaya kullanıcı ve grup atamak için Graf Gezgini'nde en az Bulut Uygulaması Yönetici istrator olarak 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 hizmetiPrincipal kimliği.
    • appRoleId: Bir kullanıcıya veya gruba atanacak appRole kimliği (kaynak hizmet sorumlusunda tanımlanır).
  2. Kurumsal uygulamayı alın. DisplayName'e göre filtreleyin.

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

    Yanıt gövdesinden aşağıdaki değerleri kaydedin:

    • Kurumsal uygulamanın Nesne Kimliği
    • kullanıcıya atadığınız appRoleId. Uygulama herhangi bir rol sunmazsa kullanıcıya varsayılan erişim rolü atanır.
  3. 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 https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Kullanıcıyı uygulamaya atayın.

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

    Örnekte hem resource-servicePrincipal-id hem de resourceId kurumsal uygulamayı temsil eden bir uygulamadır.

Microsoft Graph API'sini kullanarak bir uygulamadan kullanıcı 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.

  1. Kurumsal uygulamayı alın. displayName'e göre filtreleyin.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Uygulama için appRoleAssignments listesini alın.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. appRoleAssignment kimliğini belirterek appRoleAssignments öğesini kaldırın.

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

Sonraki adımlar