Udostępnij przez


Ustawianie uprawnień do wyświetlania dla grupy w punktach zaczepienia usługi

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

W tym artykule wyjaśniono, jak udzielić uprawnień Wyświetl lub Edytuj dla punktów zaczepienia usługi w usłudze Azure DevOps. Domyślnie tylko administratorzy projektu mają te uprawnienia. Aby przypisać je do innych użytkowników lub grup, użyj narzędzia wiersza polecenia lub interfejsu REST API zabezpieczeń.

Identyfikator ServiceHooks przestrzeni nazw zabezpieczeń jest zdefiniowany pod Lista przestrzeni nazw zabezpieczeń.

Wymagania wstępne

Kategoria Wymagania
dostęp do programu Project Access Członek projektu.
Uprawnienia - Członek grupy Administratorzy kolekcji Projektu . Właściciele organizacji są automatycznie członkami tej grupy.
- Token entra firmy Microsoft lub osobisty token dostępu (PAT) dla profilu usługi Azure DevOps.
> [! WAŻNE] > Zalecamy używanie bezpieczniejszych tokenów Microsoft Entra zamiast osobistych tokenów dostępu, które wiążą się z większym ryzykiem. Dowiedz się więcej o naszych wysiłkach zmierzających do zmniejszenia użycia PAT. > Zapoznaj się z naszymi wskazówkami dotyczącymi uwierzytelniania , aby wybrać odpowiedni mechanizm uwierzytelniania dla Twoich potrzeb.
Narzędzia interfejs wiersza polecenia Azure.
1. Zaloguj się przy użyciu az devops login.
2. Możesz zdefiniować organizację jako domyślną organizację. W przeciwnym razie zdefiniuj --org "https://dev.azure.com/{organization}" dla każdego polecenia. az devops configure --defaults organization="https://dev.azure.com/{organization}"
3. Sprawdź, czy możesz wyświetlić listę uprawnień dla organizacji: az devops security permission namespace list --org "https://dev.azure.com/{organization}".

Odczytywanie tożsamości grupy i tokenu uprawnień

  1. Znajdź deskryptor tożsamości grupy.

    > az devops security group list --project 00000000-0000-0000-0000-000000000000 --output table
    
    Name                                             Descriptor
    -----------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------------------------
    [TEAM FOUNDATION]\EntraServiceHooksRead          Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2
    

    Jeśli chcesz filtrować według nazwy grupy, możesz użyć polecenia findstr lub grep zależnie od wiersza polecenia.

  2. Uzyskiwanie tokenu uprawnień.

    > az devops security permission list --id 00000000-0000-0000-0000-000000000000 --subject <Group or user descriptor> --output table
    
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/00000000-0000-0000-0000-000000000000  0                  0
    

Aktualizowanie uprawnień do odczytu dla punktów zaczepienia usługi

  1. Lista możliwych uprawnień, które można zdefiniować dla --allow-bitelementu .

    • Wyświetlanie subskrypcji
    • Edytuj subskrypcję
    • Usuwanie subskrypcji
    • Publikowanie zdarzeń
    > az devops security permission namespace show --id 00000000-0000-0000-0000-000000000000
      {
        "actions": [
          {
            "bit": 1,
            "displayName": "View Subscriptions",
            "name": "ViewSubscriptions",
            "namespaceId": "00000000-0000-0000-0000-000000000000"
          },
          {
            "bit": 2,
            "displayName": "Edit Subscription",
            "name": "EditSubscriptions",
            "namespaceId": "00000000-0000-0000-0000-000000000000"
          },
          {
            "bit": 4,
            "displayName": "Delete Subscriptions",
            "name": "DeleteSubscriptions",
            "namespaceId": "00000000-0000-0000-0000-000000000000"
          },
          {
            "bit": 8,
            "displayName": "Publish Events",
            "name": "PublishEvents",
            "namespaceId": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "dataspaceCategory": "Default",
        "displayName": "ServiceHooks",
        "elementLength": -1,
        "extensionType": null,
        "isRemotable": true,
        "name": "ServiceHooks",
        "namespaceId": "00000000-0000-0000-0000-000000000000",
        "readPermission": 1,
        "separatorValue": "/",
        "structureValue": 1,
        "systemBitMask": 0,
        "useTokenTranslator": true,
        "writePermission": 7
      }
    
  2. Ustaw pozycję Wyświetl dostęp dla grupy. Wyświetl subskrypcje elementów servicehook równe 1 dla --allow-bitelementu .

    > az devops security permission update --namespace-id 00000000-0000-0000-0000-000000000000 --subject <Group or user descriptor> --token PublisherSecurity/00000000-0000-0000-0000-000000000000 --allow-bit 1
    
    [
      {
        "acesDictionary": {
          "Microsoft.TeamFoundation.Identity;00000000-0000-0000-0000-000000000000": {
            "allow": 1,
            "deny": 0,
            "descriptor": "Microsoft.TeamFoundation.Identity;00000000-0000-0000-0000-000000000000",
            "extendedInfo": {
              "effectiveAllow": 1
            },
            "resolvedPermissions": [
              {
                "bit": 1,
                "displayName": "View Subscriptions",
                "effectivePermission": "Allow",
                "name": "ViewSubscriptions"
              }
            ]
          }
        },
        "includeExtendedInfo": true,
        "inheritPermissions": true,
        "token": "PublisherSecurity/00000000-0000-0000-0000-000000000000"
      }
    ]
    
  3. Uzyskaj token uprawnień, aby zobaczyć zmiany.

    > az devops security permission list --id 00000000-0000-0000-0000-000000000000 --subject <Group or user descriptor> --output table
    
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/00000000-0000-0000-0000-000000000000  1                  0
    

W poniższym przykładzie pokazano, że użytkownik może zobaczyć subskrypcje punktów zaczepienia usługi.

Zrzut ekranu przedstawiający stronę elementów servicehook z uprawnieniami.

Resetowanie wszystkich uprawnień punktów zaczepienia usługi dla grupy

  • Jeśli musisz zresetować wszystkie uprawnienia punktów zaczepienia usługi dla grupy lub użytkownika, możesz wywołać metodę reset-all.

    > az devops security permission reset-all --id 00000000-0000-0000-0000-000000000000 --subject <Group or user descriptor> --token PublisherSecurity/00000000-0000-0000-0000-000000000000
    
    Are you sure you want to reset all explicit permissions for this user/group and token? (y/n): Y
    true
    
    > az devops security permission list --id 00000000-0000-0000-0000-000000000000 --subject <Group or user descriptor> --output table
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/00000000-0000-0000-0000-000000000000  0                  0
    
  • W poniższym przykładzie pokazano, że użytkownik nie może wyświetlić subskrypcji punktów zaczepienia usługi po zresetowaniu uprawnień.

    Zrzut ekranu przedstawiający stronę elementów servicehook bez uprawnień.