サービス フックでグループのビュー権限を設定する

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

既定では、プロジェクト管理者のみが View または Edit 権限を持ちます。 これらのアクセス許可を他のユーザーに直接付与するには、 コマンド ライン ツール または Security REST API を使用できます。

アクセス許可のない ServiceHooks ページを示すスクリーンショット。

ServiceHooks セキュリティ名前空間 ID は、List セキュリティ名前空間で次のように定義されます。cb594ebe-87dd-4fc9-ac2c-6a10a4c92046

前提条件

  1. Azure CLI をインストールしてコマンド az devops 実行します。 Azure CLI をインストールする方法

  2. Azure DevOps プロファイルの個人用アクセス トークン (PAT) を作成します。 Project コレクション管理者 (PCA) グループのメンバーであることを確認します。

    • ID (読み取り)
    • グラフ (読み取り)
    • セキュリティ (管理)
  3. az devops loginを使用して Azure DevOps にサインインします。 az devops拡張機能がない場合は、インストールします。

    > 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. 既定の組織として組織を定義できます。 それ以外の場合は、各コマンドの --org "https://dev.azure.com/{organization}" を定義します。

    az devops configure --defaults organization="https://dev.azure.com/{organization}"
    
  5. 組織のアクセス許可の一覧が表示されるかどうかを確認します。

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

グループ ID とアクセス許可トークンの読み取り

  1. グループ ID 記述子を見つけます。

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

    グループ名でフィルター処理する場合は、コマンド プロンプトに応じて findstr または grep コマンドを使用できます。

  2. アクセス許可トークンを取得します。

    > 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
    

サービス フックの読み取りアクセス許可を更新する

  1. --allow-bitに対して定義できるアクセス許可の一覧。

    • サブスクリプションの表示
    • サブスクリプションの編集
    • サブスクリプションの削除
    • イベントの発行
    > 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. グループの View アクセスを設定します。 --allow-bitの ServiceHooks サブスクリプションの表示は 1 です。

    > 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. 変更を確認するためのアクセス許可トークンを取得します。

    > 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
    

次の例は、ユーザーがサービスフックサブスクリプションを表示できることを示しています。

アクセス許可を持つ ServiceHooks ページを示すスクリーンショット。

グループのすべてのサービス フックのアクセス許可をリセットする

  • グループまたはユーザーのすべてのサービス フックのアクセス許可をリセットする必要がある場合は、 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
    
  • 次の例は、アクセス許可がリセットされた後、ユーザーがサブスクリプションをサービスフックに表示できないことを示しています。

    アクセス許可のない ServiceHooks ページを示すスクリーンショット。