Udostępnij za pośrednictwem


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