Udostępnij za pośrednictwem


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

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Domyślnie tylko administratorzy projektu mają uprawnienia Wyświetl lub Edytuj . Aby udzielić tych uprawnień innym użytkownikom bezpośrednio, możesz użyć narzędzia wiersza polecenia lub interfejsu API REST zabezpieczeń .

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

Identyfikator ServiceHooks przestrzeni nazw zabezpieczeń jest definiowany w obszarze Listy przestrzeni nazw zabezpieczeń jako cb594ebe-87dd-4fc9-ac2c-6a10a4c92046

Wymagania wstępne

  1. Zainstaluj interfejs wiersza polecenia platformy Azure, aby uruchomić az devops polecenie. Jak zainstalować interfejs wiersza polecenia platformy Azure

  2. Utwórz osobisty token dostępu (PAT) dla profilu usługi Azure DevOps. Upewnij się, że jesteś członkiem grupy Administrator kolekcji projektów (PCA).

    • Tożsamość (odczyt)
    • Graf (odczyt)
    • Zabezpieczenia (zarządzanie)
  3. Zaloguj się do usługi Azure DevOps przy użyciu polecenia az devops login. Jeśli nie masz az devops rozszerzenia, zainstaluj je.

    > az devops login
    The command requires the extension azure-devops. Do you want to install it now? The command will continue to run after the extension is installed. (Y/n): Y
    
  4. 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}"
    
  5. 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 ac515e82-560c-4af8-845b-9f7f968d8e7b --output table
    
    Name                                             Descriptor
    -----------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------------------------
    [TEAM FOUNDATION]\EntraServiceHooksRead          aadgp.Uy0xLTktMTU1MTM3NDI0NS0xMjA0NDAwOTY5LTI0MDI5ODY0MTMtMjE3OTQwODYxNi0zLTM5NTQxNzM3ODYtMTUyMTA4MTkyNS0yNTQwNTA4MjYzLTMzNDgxNjQxNjg
    

    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 cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table
    
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b  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
    • Edytowanie subskrypcji
    • Usuwanie subskrypcji
    • Publikowanie zdarzeń
    > az devops security permission namespace show --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046
    
    [
      {
        "actions": [
          {
            "bit": 1,
            "displayName": "View Subscriptions",
            "name": "ViewSubscriptions",
            "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046"
          },
          {
            "bit": 2,
            "displayName": "Edit Subscription",
            "name": "EditSubscriptions",
            "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046"
          },
          {
            "bit": 4,
            "displayName": "Delete Subscriptions",
            "name": "DeleteSubscriptions",
            "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046"
          },
          {
            "bit": 8,
            "displayName": "Publish Events",
            "name": "PublishEvents",
            "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046"
          }
        ],
        "dataspaceCategory": "Default",
        "displayName": "ServiceHooks",
        "elementLength": -1,
        "extensionType": null,
        "isRemotable": true,
        "name": "ServiceHooks",
        "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046",
        "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 cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --token PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b --allow-bit 1
    
    [
      {
        "acesDictionary": {
          "Microsoft.TeamFoundation.Identity;S-1-9-1551374245-1204400969-2402986413-2179408616-3-3954173786-1521081925-2540508263-3348164168": {
            "allow": 1,
            "deny": 0,
            "descriptor": "Microsoft.TeamFoundation.Identity;S-1-9-1551374245-1204400969-2402986413-2179408616-3-3954173786-1521081925-2540508263-3348164168",
            "extendedInfo": {
              "effectiveAllow": 1
            },
            "resolvedPermissions": [
              {
                "bit": 1,
                "displayName": "View Subscriptions",
                "effectivePermission": "Allow",
                "name": "ViewSubscriptions"
              }
            ]
          }
        },
        "includeExtendedInfo": true,
        "inheritPermissions": true,
        "token": "PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b"
      }
    ]
    
  3. Uzyskaj token uprawnień, aby zobaczyć zmiany.

    > az devops security permission list --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table
    
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b  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 cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --token PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b
    
    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 cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table
    Token                                                   Effective Allow    Effective Deny
    ------------------------------------------------------  -----------------  ----------------
    PublisherSecurity                                       0                  0
    PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b  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ń.