Defender CLI 認証を使用して、エージェント コード スキャンをローカルまたは CI/CD パイプラインで実行します。
認証オプション
Agentic コード セキュリティでは、次の 2 つのDefender CLI 認証方法がサポートされています。
- アプリ ベースの認証: CI/CD パイプラインやその他の非対話型オートメーションには、このオプションを使用します。
- 対話型認証: このオプションは、サインインしているユーザーによるローカル ターミナル スキャンに使用します。
必要なアクセス許可
必要なアクセス許可は、認証方法によって異なります。 統合 RBAC アクセス許可Defender割り当てる方法については、「Defender RBAC を使用してユーザーにアクセス許可を割り当てる」を参照してください。
| 認証方法 | 必要なアクセス許可 |
|---|---|
| アプリ ベースの認証 | アプリを登録し、API アクセス許可を追加するためのMicrosoft Entra IDのアプリケーション管理者ロール。 管理者の同意を付与するためのグローバル管理者ロール。 アプリの登録には、AI スキャンを実行するための AIScan.enabled アクセス許可と、スキャン結果をアップロードするための AIScan.Upload が必要です。 |
| 対話型認証 | Microsoft Entra IDのセキュリティ管理者ロール。 Microsoft Defender の統合 RBAC では、スキャンの実行、スキャン結果のアップロード、スキャン結果の表示または管理に必要なアクセス許可を割り当ててください。 |
必要に応じて Microsoft Defender Code エンタープライズ アプリケーションをインストールする
この手順は、両方の認証方法に必要です。 このスクリプトは、Microsoft Defender Code ファースト パーティ アプリをテナントにインストールし、CLI をローカルで実行しているユーザーに管理者の同意を付与します。
Note
E5 ライセンスをお持ちのお客様の場合、Microsoft Defender Code アプリは MDASH オンボード中に自動的にプロビジョニングされます。 このスクリプトを実行する必要はありません。 テナントに E5 ライセンスがない場合は、次の手順を実行します。
まだインストールされていない場合は、Azure CLIをインストールします。
winget install -e --id Microsoft.AzureCLI管理者の同意スクリプトをコピーし、
Grant-DefenderAdminConsent.ps1として保存します。 詳細については、Microsoft Defender Code 管理者の同意スクリプトを参照してください。テナント ID で保存したスクリプトを実行します。
./Grant-DefenderAdminConsent.ps1 -TenantId <tenant-id>Azureサインイン フローを完了します。 Azure CLIに表示されているコードをコピーし、リダイレクトされた URL でサインインします。
アプリケーションがインストールされたことを確認します。
- Microsoft Entra IDで、[概要] に移動します。
- テナントで Microsoft Defender Code を検索してください。
- アプリケーションがエンタープライズ アプリケーションの下に表示されることを確認します。
アプリ ベースの認証を使用する
アプリベースの認証を使用して、CI/CD パイプラインで Defender CLI スキャンを実行します。
Prerequisites
- Microsoft Entra IDのアプリケーション管理者ロール。
- 必要なアクセス許可を承認するために使用できるグローバル管理者ロール。
- アプリ登録のテナント ID とクライアント ID を表示し、クライアント シークレットを作成または取得するためのアクセス許可。
- Azure CLIインストールされています。
Microsoft Entra アプリを作成する
- Azure Portal にサインインします。
- アプリの登録を検索して選択します。
- 新規登録を選択します。
- アプリケーションの名前を入力し、[ 登録] を選択します。
API アクセス許可を追加する
- 新しいアプリの登録で、左側のナビゲーション ウィンドウで [管理 ] を展開します。
- [API のアクセス許可] を選択>アクセス許可を追加します。
- [所属する組織で使用している API] を選択します。
- Microsoft Defender Code を検索して選択します。
- [アプリケーションのアクセス許可] を選択します。
- 必要なアクセス許可を追加します。
- ユーザーが AI スキャンを実行できるようにするには、[ AIScan.enabled] を選択します。
- ユーザーが AI スキャン結果をDefenderにアップロードできるようにするには、AIScan.Upload を選択します。
- アクセス許可の追加を選択します。
Note
現在、AIScan.View ロールはアクセス許可に影響しません。
管理者の同意を付与する
グローバル管理者は、アクセス許可の同意を付与する必要があります。 [ 管理者の同意の付与 ] ボタンが表示されない場合は、グローバル管理者ロールが付与されていません。
- [API のアクセス許可] ページで、[管理者の同意の付与] を選択します。
- 確認を求められたら、確認します。
クライアント シークレットの追加
- アプリの登録で、 証明書とシークレット>新しいクライアント シークレットを選択します。
- 説明と有効期限を入力し、[ 追加] を選択します。
- シークレット値を安全な場所に格納します。 ページを離れた後にもう一度表示することはできません。
- アプリ登録の [概要] ページから、アプリケーション (クライアント) ID とディレクトリ (テナント) ID を記録します。
CI/CD の資格情報を構成する
パイプラインDefender CLI を構成するには、CI/CD プラットフォームで暗号化されたシークレットとして次の値を追加し、スキャンを実行するワークフローまたはパイプライン ジョブで環境変数として公開します。
DEFENDER_ASPM_TENANT_ID
DEFENDER_ASPM_CLIENT_ID
DEFENDER_ASPM_CLIENT_SECRET
DEFENDER_ASPM_TENANT_IDとDEFENDER_ASPM_CLIENT_IDを見つけるには、Microsoft Entra IDでアプリの登録を開き、[概要] ページからディレクトリ (テナント) ID とアプリケーション (クライアント) ID の値をコピーします。
DEFENDER_ASPM_CLIENT_SECRETを取得するには、同じアプリ登録で新しいクライアント シークレットを作成し、作成した直後にシークレット値をコピーし、パイプライン シークレット ストアに安全に格納します。
Important
このシークレットをソース管理にコミットしたり、ワークフロー ログに含めたりしないでください。 パイプラインエラーを回避するために、シークレットを定期的にローテーションし、期限切れになる前に置き換えます。
対話型認証の使用
この方法を使用すると、ローカル Defender CLI スキャンのDefender資格情報でユーザーを認証できます。 代わりにアプリ ベースの認証を使用することもできます。
Prerequisites
DefenderのCLIコマンドを実行する前に、アカウントに以下のいずれかの権限が割り当てられていることを確認してください。
- Microsoft Entra ID で少なくとも セキュリティ管理者 ロールが必要です。
- Microsoft Defender の統合 RBAC に割り当てられた必要なアクセス許可 詳細については、「Defender RBAC を使用してユーザーにアクセス許可を割り当てる」を参照してください。
テナント環境変数を設定する
サインインする前に、シェルで対話型認証Defender使用するテナント ID を環境変数として設定します。 これにより、Azure CLIが正しいMicrosoft Entra テナントに対してデバイスログインを要求します。
DEFENDER_DFD_TENANT_ID=<tenant-id>
Azure CLI を使用してサインインする
次のコマンドを実行して、Defender の対話型認証用のデバイス コード サインイン フローを開始します。 スコープ値はDefender対話型ログインアクセス許可を要求し、Azureサブスクリプションがアカウントに関連付けられていない場合でも、このコマンドによってサインインが許可されます。
az login \
--tenant <DEFENDER_DFD_TENANT_ID> \
--scope c2fd607e-fe6e-41bd-ae58-08e2f24014aa/Defender.InteractiveLogin \
--allow-no-subscriptions \
--use-device-code
デバイス コードのサインインを完了する
- コンソールに表示されているデバイス コードをコピーし、ブラウザーでデバイス ログイン ページを開きます。
- 指定したテナントにアクセスできるアカウントでサインインします。
- メッセージが表示されたらデバイス コードを貼り付け、認証フローを完了します。
- コンソールに戻り、Azure CLI セッションが完了するまで待ちます。