Condividi tramite


Impostare l'autorizzazione Di visualizzazione per un gruppo in Hook del servizio

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Per impostazione predefinita, solo gli amministratori del progetto dispongono delle autorizzazioni Visualizza o Modifica . Per concedere queste autorizzazioni direttamente ad altri utenti, è possibile usare lo strumento da riga di comando o l'API REST di sicurezza .

Screenshot che mostra la pagina ServiceHooks senza autorizzazioni.

L'ID ServiceHooks dello spazio dei nomi di sicurezza è definito in Elenca spazi dei nomi di sicurezza come cb594ebe-87dd-4fc9-ac2c-6a10a4c92046

Prerequisiti

  1. Installare l'interfaccia della riga di comando di Azure per eseguire az devops il comando . Come installare l'interfaccia della riga di comando di Azure

  2. Creare un token di accesso personale (PAT) per il profilo Azure DevOps. Assicurarsi di essere un membro del gruppo Project Collection Administrator (PCA).

    • Identità (lettura)
    • Grafico (lettura)
    • Sicurezza (gestisci)
  3. Accedere ad Azure DevOps con az devops login. Se l'estensione az devops non è disponibile, installarla.

    > 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. È possibile definire l'organizzazione come organizzazione predefinita. In caso contrario, definire --org "https://dev.azure.com/{organization}" per ogni comando.

    az devops configure --defaults organization="https://dev.azure.com/{organization}"
    
  5. Controllare se è possibile visualizzare l'elenco delle autorizzazioni per l'organizzazione.

    az devops security permission namespace list --org "https://dev.azure.com/{organization}"
    

Leggere l'identità del gruppo e il token di autorizzazione

  1. Trovare il descrittore di identità del gruppo.

    > az devops security group list --project ac515e82-560c-4af8-845b-9f7f968d8e7b --output table
    
    Name                                             Descriptor
    -----------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------------------------
    [TEAM FOUNDATION]\EntraServiceHooksRead          aadgp.Uy0xLTktMTU1MTM3NDI0NS0xMjA0NDAwOTY5LTI0MDI5ODY0MTMtMjE3OTQwODYxNi0zLTM5NTQxNzM3ODYtMTUyMTA4MTkyNS0yNTQwNTA4MjYzLTMzNDgxNjQxNjg
    

    Se si vuole filtrare in base al nome del gruppo, è possibile usare findstr o grep il comando dipende dal prompt dei comandi.

  2. Ottenere il token di autorizzazione.

    > 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
    

Aggiornare l'autorizzazione di lettura per gli hook del servizio

  1. Elenco delle possibili autorizzazioni che è possibile definire per --allow-bit.

    • Visualizzare le sottoscrizioni
    • Modifica sottoscrizione
    • Eliminare sottoscrizioni
    • Pubblicare eventi
    > 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. Impostare Visualizza l'accesso per il gruppo. Visualizzare le sottoscrizioni di ServiceHooks uguale a 1 per --allow-bit.

    > 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. Ottenere il token di autorizzazione per visualizzare le modifiche.

    > 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
    

L'esempio seguente mostra che l'utente può visualizzare le sottoscrizioni degli hook del servizio.

Screenshot che mostra la pagina ServiceHooks con autorizzazione.

Reimpostare tutte le autorizzazioni degli hook del servizio di un gruppo

  • Se è necessario reimpostare tutte le autorizzazioni degli hook del servizio di un gruppo o di un utente, è possibile chiamare 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
    
  • L'esempio seguente mostra che l'utente non è in grado di visualizzare le sottoscrizioni degli hook del servizio dopo la reimpostazione dell'autorizzazione.

    Screenshot che mostra la pagina ServiceHooks senza autorizzazione.