Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
この記事では、組織、プロジェクト、リポジトリ (またはその他のオブジェクト) レベルでアクセス許可を表示し、ユーザーとグループの有効なアクセス権を確認する方法について説明します。 アクセス許可の状態 (許可、拒否、継承)、継承とグループ メンバーシップが有効なアクセス許可に与える影響、および一般的なアクセスの問題をトラブルシューティングする手順について説明します。
ここでは、次の内容について学習します。
- Web ポータルでアクセス許可の割り当てを表示する場所。
- ユーザーまたはグループの有効なアクセス許可を確認する方法。
- アクセス許可に期待される効果がない一般的な理由 (継承、拒否、利害関係者アクセス、Microsoft Entra ID グループ マッピング)。
簡単な手順:
- 組織の設定またはプロジェクトの設定>セキュリティ (またはアクセス許可) を開きます。
- オブジェクト (プロジェクト、リポジトリ、またはグループ) を選択し、割り当てられたアクセス許可を表示します。
- 有効なアクセスを検査するには、[ユーザー/グループ] または [有効なアクセス許可] UI を使用します。
- 必要に応じて、グループ メンバーシップと、オーバーライドで許可される拒否規則を調べます。
注釈
アクセス許可管理機能と UI は、Azure DevOps Services (クラウド) とオンプレミスの Azure DevOps Server によって若干異なります。 次のガイダンスでは、必要に応じて UI の違いについて説明します。
権限モデルの基本
Azure DevOps のアクセス許可では、次の 3 つの割り当て状態が使用されます。
- 許可— 明示的にアクセス許可を付与します。
- 拒否- 明示的にアクセス許可を拒否し、[許可] をオーバーライドします。
- 継承 — このレベルでは明示的な割り当てはありません。アクセス許可は親スコープまたはグループ メンバーシップから継承されます。
有効なアクセス許可は、次の割り当てを評価して計算されます。
- オブジェクト自体 (プロジェクト、リポジトリ、エリア パスなど)
- 親スコープ (コレクション、組織、プロジェクト)
- グループ メンバーシップ (組み込みグループ、カスタム グループ、Microsoft Entra ID グループ)
- 明示的な拒否割り当て(優先される)
"有効な" アクセス許可の意味:
有効なアクセス許可とは、Azure DevOps が関連するすべてのアクセス許可の割り当てを評価した後に、ユーザーまたはグループがオブジェクトに対して実際に持っているネット アクセスです。 システムは、オブジェクト、親スコープ、およびすべてのグループ メンバーシップ全体で明示的な許可と拒否の割り当てを結合します。明示的な拒否エントリが優先されます。 実際には、"有効なアクセス許可" は、その結果に貢献したすべての個々の割り当てではなく、最終的な結果 (実際に実行できること) を示します。
アクセス許可の解決と継承の詳細については、「 アクセス許可について」と「アクセス許可の状態」を参照してください。
アクセス許可を表示する場所
オブジェクトに応じて、Web ポータル内の複数の場所でアクセス許可を表示できます。
- 組織レベルまたはコレクション レベル: 組織の設定>セキュリティ (または 組織の設定>権限)。
- プロジェクト レベル: プロジェクト設定>Permissions (または Project 設定>古い UI のセキュリティ)。
- リポジトリ、パイプライン、ボード、または他のリソース: リソースを開いて、設定またはセキュリティ(例えば、>> を選択します)。
[セキュリティ/アクセス許可] ページには、割り当てられたグループとユーザー、およびユーザーまたはグループでフィルター処理できるアクセス許可マトリックスが表示されます。
有効なアクセス許可を確認する (UI)
- https://dev.azure.com/{Your_Organization}にサインインします。
- 検査するオブジェクト (組織、プロジェクト、リポジトリなど) に移動します。 
- [プロジェクトの設定] または [組織の設定] >[アクセス] (または [セキュリティ]) を選択します。 
- [ ユーザー または グループ] を選択し、検査する ID を選択してから、アクセス許可グリッドを表示します。 
- 指定された "有効なアクセス許可" リンクまたはボタン (存在する場合) を使用して、選択したオブジェクトで選択した ID の最終的な有効なアクセス許可を計算します。   
- サーバーまたはコレクション ポータルにサインインします。
- プロジェクト設定>セキュリティ (または組織/コレクションの設定>セキュリティ) に移動します。
- グループまたはユーザーを選択し、アクセス許可マトリックスを調べます。 ダイアログでフィルターと有効なアクセス許可のコントロールを使用します。
有効なアクセス許可を確認する (コマンド ライン/REST)
自動化を希望する場合は、REST API を使用して ACL または Azure DevOps CLI/PowerShell モジュールを読み取り、アクセス許可チェックをスクリプト化します。 リソースのセキュリティ名前空間を検索し、ACL ビットを評価して効果的なアクセスを計算します。
一般的なシナリオとトラブルシューティング
- 許可より拒否が優先: どの範囲においても明示的な拒否が優先されます。 アクセス許可の拒否を上位または下位のスコープやグループ メンバーシップ全体で確認します。
- 複数のグループのメンバーシップ: 有効なアクセス許可はグループの割り当てを組み合わせます。すべてのグループの拒否が適用されます。
- 親スコープからの継承: アクセス許可が現在のレベルで継承されている場合は、親スコープで割り当てを確認します。
- Microsoft Entra ID グループ マッピング: ユーザーが Microsoft Entra グループを通じて追加される場合は、正しいグループが Azure DevOps に同期されていること、およびグループのメンバーシップが期待通りであることを確認します。
- 利害関係者のアクセス制限: 利害関係者アクセス権を持つユーザーは、アクセス許可の割り当てに関係なく機能の可用性が制限されます。ユーザーがアクションを実行できない場合は、アクセス レベルを確認します。
- 動的または一時的なアクセス: 一部のポリシー (条件付きアクセスなど) や外部プロビジョニングがサインイン/アクセスに影響する可能性があります。サインインに失敗した場合は、Microsoft Entra 条件付きアクセス ポリシーを確認してください。
クイックトラブルシューティングのチェックリスト
- サインインに使用されているユーザー アカウントを確認します (Azure DevOps に表示されている ID と一致します)。
- ユーザーの直接グループ メンバーシップと間接グループ メンバーシップを調べます。
- オブジェクトスコープと親スコープで明示的な拒否割り当てを検索します。
- ユーザーのアクセス レベル (利害関係者と基本) とライセンスの制限を確認します。
- Microsoft Entra グループを使用している場合は、グループの同期とメンバーシップを確認します。
- 必要に応じて、REST/CLI を使用してリソースの ACL を一覧表示し、プログラムで評価します。
監査と履歴
組織で監査が有効になっている場合は、監査ログ (組織の設定 > 監査ログ) を使用して、セキュリティ グループ、アクセス許可の割り当て、メンバーシップの変更を追跡します。 監査イベントは、アクセス許可またはメンバーシップが変更されたタイミングを追跡するのに役立ちます。