Sdílet prostřednictvím


Použití Azure PIM ke správě oprávněného přístupu pomocí rozhraní REST API

Azure Privileged Identity Management (PIM) umožňuje omezit stálý přístup správce na privilegované role, zjistit, kdo má přístup, a kontrolovat privilegovaný přístup. Tento článek popisuje běžné způsoby správy přístupu pomocí rozhraní REST API.

Vypsat způsobilá přiřazení

Pokud chcete zobrazit seznam oprávněných přiřazení rolí (přístup na seznam), můžete použít některou z instancí plánu způsobilosti rolí – Seznam pro rozsah nebo plány způsobilosti rolí – Seznam pro rozhraní REST API oboru. Pokud chcete výsledky upřesnit, zadejte obor a volitelný filtr. Pokud chcete volat rozhraní API, musíte mít přístup k Microsoft.Authorization/roleAssignments/read operaci v zadaném oboru. Přístup k této operaci jsou uděleny všem předdefinovaným rolím .

Důležité

Rozdíl mezi instancemi schedules a schedule spočívá v tom, že zatímco instance plánu zahrnují pouze přiřazení, která jsou aktivní v aktuálním čase, plány zahrnují také přiřazení, která se stanou aktivními v budoucnu.

  1. Začněte následujícím požadavkem:

    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. V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete vypsat přiřazení rolí.

    Obor Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Skupina pro správu
    subscriptions/{subscriptionId} Předplatné
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Skupina prostředků
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Prostředek
  3. Nahraďte {filter} podmínkou, kterou chcete použít k filtrování seznamu přiřazení rolí.

    Filtrovat Description
    $filter=atScope() Zobrazí seznam přiřazení rolí pouze pro zadaný obor, bez přiřazení rolí v dílčích oborech.
    $filter=principalId%20eq%20'{objectId}' Vypíše přiřazení rolí pro zadaného uživatele, skupinu nebo instanční objekt.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Vypíše přiřazení rolí pro zadanou definici role.
    $filter=assignedTo('{objectId}') Zobrazí seznam přiřazení rolí pro konkrétního uživatele, včetně těch zděděných ze skupin.
    $filter=asTarget() Vypíše přiřazení rolí pro aktuálního uživatele nebo instanční objekt, včetně těch zděděných ze skupin.
    $filter=assignedTo('{objectId}')+and+atScope() Zobrazí seznam přiřazení rolí pro zadaného uživatele, včetně přiřazení rolí zděděných ze skupin pouze pro zadaný obor, bez přiřazení rolí v dílčích oborech.

Udělení způsobilého přiřazení

K vytvoření oprávněného přiřazení role (udělení přístupu) použijete požadavky na plán způsobilosti rolí – Vytvoření rozhraní REST API a zadáte objekt zabezpečení, definici role, plán, typ požadavku = AdminAssign a obor. Abyste mohli toto rozhraní API volat, musíte mít přístup k Microsoft.Authorization/roleAssignments/write operaci. Z předdefinovaných rolí má přístup k této operaci pouze vlastník a správce uživatelských přístupů.

  1. K získání identifikátoru definice role, kterou chcete přiřadit, použijte téma Definice rolí – Výpis rozhraní REST API nebo si projděte téma Předdefinované role .

  2. Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro identifikátor přiřazení role. Identifikátor má formát: 00000000-0000-0000-0000-000000000000

  3. Začněte následujícím požadavkem a textem:

    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. V identifikátoru URI nahraďte {scope} oborem pro přiřazení role.

    Obor Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Skupina pro správu
    subscriptions/{subscriptionId} Předplatné
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Skupina prostředků
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Prostředek
  5. Nahraďte {roleEligibilityScheduleRequestName} identifikátorem GUID přiřazení role.

  6. V textu požadavku nahraďte {subscriptionId} identifikátorem vašeho předplatného.

  7. Nahraďte {roleDefinitionId} identifikátorem definice role.

  8. Nahraďte {principalId} identifikátorem objektu uživatele, skupiny nebo instančního objektu, kterému bude role přiřazena.

Odebrání oprávněného přiřazení

Pokud chcete odebrat oprávněné přiřazení role (odebrat přístup), použijte požadavky na plán způsobilosti rolí – Vytvoření rozhraní REST API k vytvoření nové žádosti o odvolání přiřazení a zadejte objekt zabezpečení, definici role, typ požadavku = AdminRemove a obor. Pokud chcete toto rozhraní API volat, musíte mít k operaci přístup Microsoft.Authorization/roleAssignments/write . Z předdefinovaných rolí má přístup k této operaci pouze vlastník a správce uživatelských přístupů.

  1. Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro identifikátor přiřazení role. Identifikátor má formát: 00000000-0000-0000-0000-000000000000

  2. Začněte následujícím požadavkem:

    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. V rámci identifikátoru URI nahraďte {scope} oborem pro odebrání přiřazení role.

    Obor Typ
    providers/Microsoft.Management/managementGroups/{mg-name} Skupina pro správu
    subscriptions/{subscriptionId} Předplatné
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Skupina prostředků
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Prostředek
  4. Nahraďte {roleEligibilityScheduleRequestName} identifikátorem GUID přiřazení role.

Běžné chyby vrácené pro nový požadavek

Následuje seznam běžných chyb, ke kterým může dojít při vytváření nového požadavku, a postup jejich zmírnění.

Chybová zpráva Explanantion Omezení rizik
code: RoleAssignmentExists
message: Přiřazení role již existuje.
Podobné přiřazení role už existuje. Tuto roli můžete GET přiřadit a ověřit její plán.
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad se nezdařila: ["ExpirationRule"]
Hodnota ScheduleInfo zadaná v požadavku překračuje maximální povolenou dobu trvání. Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad se nezdařila: ["JustificationRule"]
V textu požadavku musíte zadat parametr .Justification Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["Pravidlo způsobilosti"]
Neexistuje platný účet RoleEligibilityScheduleInstance pro aktivaci této role. Správce prostředků musí pro tento objekt zabezpečení vytvořit RoleEligibilityScheduleRequest objekt .
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["TicketingRule"]
V textu požadavku musíte zadat parametr .TicketInfo Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Následující pravidla zásad selhala: ["MfaRule"]
Abyste mohli odeslat tuto žádost, musíte dokončit službu Azure Multi-Factor Authentication. Můžete GET použít zásady RoleManagementPolicy a RoleDefinitionId zkontrolovat RoleManagementPolicyEnablementRule