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.
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}
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 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.
Użyj interfejsu API REST definicji ról — lista lub zobacz Wbudowane role , aby uzyskać identyfikator definicji roli, którą chcesz przypisać.
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
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 } } } }
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 Zastąp element {roleEligibilityScheduleRequestName} identyfikatorem GUID przypisania roli.
W treści żądania zastąp ciąg {subscriptionId} identyfikatorem subskrypcji.
Zastąp ciąg {roleDefinitionId} identyfikatorem definicji roli.
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.
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
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" } }
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 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 : RoleAssignmentExistsmessage : Przypisanie roli już istnieje. |
Podobne przypisanie roli już istnieje | GET Możesz to przypisanie roli i zweryfikować jego harmonogram. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : 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 : RoleAssignmentRequestPolicyValidationFailedmessage : 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 : RoleAssignmentRequestPolicyValidationFailedmessage : 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 : RoleAssignmentRequestPolicyValidationFailedmessage : 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 : RoleAssignmentRequestPolicyValidationFailedmessage : 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 |