Zarządzanie uprawnionym dostępem za pomocą interfejsu API REST przy użyciu usługi Azure PIM

Usługa Azure Privileged Identity Management (PIM) umożliwia ograniczenie dostępu administratora do ról uprzywilejowanych, odnajdywanie osób mających dostęp i przeglądanie dostępu uprzywilejowanego. W tym artykule opisano typowe sposoby zarządzania dostępem przy użyciu interfejsu API REST.

Wyświetlanie listy kwalifikujących się przypisań

Aby wyświetlić listę kwalifikujących się przypisań ról (dostęp do listy), możesz użyć jednego z wystąpień harmonogramu uprawnień ról — lista dlaharmonogramów uprawnień do zakresu lub listy dla interfejsów API REST zakresu. Aby uściślić wyniki, należy określić zakres i opcjonalny filtr. Aby wywołać interfejs API, musisz mieć dostęp do Microsoft.Authorization/roleAssignments/read operacji w określonym zakresie. Wszystkie wbudowane role mają dostęp do tej operacji.

Ważne

Różnica między harmonogramami i wystąpieniami harmonogramu polega na tym, że podczas gdy wystąpienia harmonogramu obejmują tylko przypisania, które są aktywne w bieżącym czasie, harmonogramy obejmują również przypisania, które staną się aktywne w przyszłości.

  1. Rozpocznij od następującego żądania:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleInstances?api-version=2020-10-01&$filter={filter}
    
    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilitySchedules?api-version=2020-10-01&$filter={filter}
    
  2. W identyfikatorze URI zastąp ciąg {scope} zakresem, dla którego chcesz wyświetlić listę przypisań ról.

    Zakres Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Grupa zarządzania
    subscriptions/{subscriptionId} Subskrypcja
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupa zasobów
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Zasób
  3. Zastąp element {filter} warunkiem, który chcesz zastosować, aby filtrować listę przypisań ról.

    Filtr Opis
    $filter=atScope() Wyświetlanie listy przypisań ról tylko dla określonego zakresu, a nie w tym przypisań ról w podzakresach.
    $filter=principalId%20eq%20'{objectId}' Wyświetlanie listy przypisań ról dla określonego użytkownika, grupy lub jednostki usługi.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Wyświetlanie listy przypisań ról dla określonej definicji roli.
    $filter=assignedTo('{objectId}') Wyświetl listę przypisań ról dla określonego użytkownika, w tym te dziedziczone z grup.
    $filter=asTarget() Wyświetl listę przypisań ról dla bieżącego użytkownika lub jednostki usługi, w tym te dziedziczone z grup.
    $filter=assignedTo('{objectId}')+and+atScope() Wyświetl listę przypisań ról dla określonego użytkownika, w tym te dziedziczone z grup tylko dla określonego zakresu, a nie w tym przypisania ról w podzakresach.

Udzielanie kwalifikującego się przypisania

Aby utworzyć kwalifikujące się przypisanie roli (udzielanie dostępu), należy użyć żądania harmonogramu uprawnień ról — utwórz interfejs API REST i określ podmiot zabezpieczeń, definicję roli, harmonogram, typ żądania = AdminAssign i zakres. Aby wywołać ten interfejs API, musisz mieć dostęp do Microsoft.Authorization/roleAssignments/write operacji. W przypadku ról wbudowanych tylko właściciel i administrator dostępu użytkowników mają dostęp do tej operacji.

  1. Użyj interfejsu API REST definicji ról — lista lub zobacz Wbudowane role , aby uzyskać identyfikator definicji roli, którą chcesz przypisać.

  2. Użyj narzędzia GUID, aby wygenerować unikatowy identyfikator, który będzie używany dla identyfikatora przypisania roli. Identyfikator ma format: 00000000-0000-0000-0000-000000000000

  3. Zacznij od następującego żądania i treści:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01
    
    {
      "Properties": {
        "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "PrincipalId": "{principalId}",
        "RequestType": "AdminAssign",
        "ScheduleInfo": {
          "StartDateTime": "2020-09-09T21:31:27.91Z",
          "Expiration": {
            "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration
            "EndDateTime": null,
            "Duration": "P365D" // Use ISO 8601 format
          }
        }
      }
    }
    
  4. W identyfikatorze URI zastąp ciąg {scope} zakresem przypisania roli.

    Zakres Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Grupa zarządzania
    subscriptions/{subscriptionId} Subskrypcja
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupa zasobów
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Zasób
  5. Zastąp element {roleEligibilityScheduleRequestName} identyfikatorem GUID przypisania roli.

  6. W treści żądania zastąp ciąg {subscriptionId} identyfikatorem subskrypcji.

  7. Zastąp ciąg {roleDefinitionId} identyfikatorem definicji roli.

  8. Zastąp element {principalId} identyfikatorem obiektu użytkownika, grupy lub jednostki usługi, która zostanie przypisana do roli.

Usuwanie kwalifikującego się przypisania

Aby usunąć kwalifikujące się przypisanie roli (usunąć dostęp), użyj żądania harmonogramu uprawnień ról — utwórz interfejs API REST, aby utworzyć nowe żądanie odwołania przypisania i określić jednostkę zabezpieczeń, definicję roli, typ żądania = AdminRemove i zakres. Aby wywołać ten interfejs API, musisz mieć dostęp do Microsoft.Authorization/roleAssignments/write operacji. W przypadku ról wbudowanych tylko właściciel i administrator dostępu użytkowników mają dostęp do tej operacji.

  1. Użyj narzędzia GUID, aby wygenerować unikatowy identyfikator, który będzie używany dla identyfikatora przypisania roli. Identyfikator ma format: 00000000-0000-0000-0000-000000000000

  2. Rozpocznij od następującego żądania:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01
    
    {
      "Properties": {
        "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "PrincipalId": "{principalId}",
        "RequestType": "AdminRemove"
        }
    }
    
  3. W identyfikatorze URI zastąp ciąg {scope} zakresem usuwania przypisania roli.

    Zakres Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Grupa zarządzania
    subscriptions/{subscriptionId} Subskrypcja
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Grupa zasobów
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Zasób
  4. Zastąp element {roleEligibilityScheduleRequestName} identyfikatorem GUID przypisania roli.

Typowe błędy zwracane dla nowego żądania

Poniżej znajduje się lista typowych błędów, które mogą wystąpić podczas tworzenia nowego żądania i sposobu ich ograniczania.

Komunikat o błędzie Wygórowane Ograniczanie ryzyka
code: RoleAssignmentExists
message: Przypisanie roli już istnieje.
Podobne przypisanie roli już istnieje GET Możesz to przypisanie roli i zweryfikować jego harmonogram.
code: RoleAssignmentRequestPolicyValidationFailed
message: Następujące reguły zasad nie powiodły się: ["ExpirationRule"]
Określony ScheduleInfo w żądaniu przekracza maksymalny dozwolony czas trwania W tym RoleDefinitionId celu możesz GET sprawdzić zasady RoleManagementPolicyRoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Następujące reguły zasad nie powiodły się: ["UzasadnienieRule"]
Musisz określić element Justification w treści żądania W tym RoleDefinitionId celu możesz GET sprawdzić zasady RoleManagementPolicyRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Następujące reguły zasad nie powiodły się: ["UprawnieniaRule"]
Prawidłowa RoleEligibilityScheduleInstance funkcja nie istnieje, aby aktywować tę rolę Administrator zasobów musi utworzyć dla RoleEligibilityScheduleRequest tego podmiotu zabezpieczeń
code: RoleAssignmentRequestPolicyValidationFailed
message: Następujące reguły zasad nie powiodły się: ["TicketingRule"]
Musisz określić element TicketInfo w treści żądania W tym RoleDefinitionId celu możesz GET sprawdzić zasady RoleManagementPolicyRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Następujące reguły zasad nie powiodły się: ["MfaRule"]
Aby przesłać to żądanie, musisz ukończyć usługę Azure Multi-Factor Authentication W tym RoleDefinitionId celu możesz GET sprawdzić zasady RoleManagementPolicyRoleManagementPolicyEnablementRule