entra-app-registration について
Entra App Registration は、Microsoft Entra ID のアプリ登録を設定するためのスキルで、アプリの種類、認証、API アクセス許可、資格情報を扱います。Web アプリ、SPA、モバイル、バックグラウンドサービスの認証を構成する開発者を対象としています。Azure CLI、Bicep、MSAL の例を含みます。
主な機能
- 01アプリ登録の基本概念とアプリの種類を解説
- 02認証とリダイレクト URI の設定を案内
- 03Microsoft Graph などの API アクセス許可を構成
- 04クライアントシークレット、証明書、フェデレーション資格情報に対応
- 05az ad コマンドと MSAL の例を提供
活用シーン
- 01Web アプリや API 向けの Entra アプリ登録の作成
- 02ユーザー操作を伴わないサービス間認証の構成
- 03Bicep や CLI によるアプリ登録の一括管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ azure-skills --skill entra-app-registrationインストール後、Claude Code で/entra-app-registrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-permissions.mdauth-best-practices.mdBICEP-EXAMPLE.bicepcli-commands.mdconsole-app-example.mdfirst-app-registration.mdoauth-flows.mdtroubleshooting.mdreferences/sdk/azure-identity-dotnet.mdazure-identity-java.mdazure-identity-py.mdazure-identity-rust.mdazure-identity-ts.mdazure-keyvault-py.mdazure-keyvault-secrets-ts.mdmicrosoft-azure-webjobs-extensions-authentication-events-dotnet.md詳細
概要
Microsoft Entra ID(旧称 Azure Active Directory)は、Microsoft のクラウドベースの ID およびアクセス管理サービスです。アプリの登録により、アプリケーションはユーザーを認証し、Azure リソースに安全にアクセスできます。
主な概念
| 概念 | 説明 |
|---|---|
| アプリの登録 | アプリが Microsoft ID プラットフォームを使用できるようにする構成 |
| アプリケーション(クライアント)ID | アプリケーションを識別する一意の ID |
| テナント ID | Azure AD テナント/ディレクトリを識別する一意の ID |
| クライアントシークレット | アプリケーションのパスワード(機密クライアントのみ) |
| リダイレクト URI | 認証応答の送信先 URL |
| API のアクセス許可 | アプリが要求するアクセススコープ |
| サービスプリンシパル | アプリの登録時にテナント内に作成される ID |
アプリケーションの種類
| 種類 | 用途 |
|---|---|
| Web アプリケーション | サーバーサイドアプリ、API |
| シングルページアプリ(SPA) | JavaScript/React/Angular アプリ |
| モバイル/ネイティブアプリ | デスクトップアプリ、モバイルアプリ |
| デーモン/サービス | バックグラウンドサービス、API |
基本的なワークフロー
ステップ 1:アプリケーションを登録する
Azure ポータルまたは Azure CLI を使用して、アプリを登録します。
ポータルを使用する方法:
- Azure Portal → Microsoft Entra ID → App registrations に移動します
- 「New registration」をクリックします
- 名前、サポートされているアカウントの種類、リダイレクト URI を入力します
- 「Register」をクリックします
CLI を使用する方法: references/cli-commands.md を参照してください IaC を使用する方法: references/BICEP-EXAMPLE.bicep を参照してください
プロジェクトですでに IaC を使用している場合、多数のアプリ登録を管理するスケーラブルなソリューションが必要な場合、または構成変更の詳細な監査履歴が必要な場合は、IaC を使用して Entra アプリの登録を管理することを強くお勧めします。
ステップ 2:認証を構成する
アプリケーションの種類に応じて、認証設定を行います。
- Web アプリ:リダイレクト URI を追加し、必要に応じて ID トークンを有効にします
- SPA:リダイレクト URI を追加し、必要に応じて暗黙的な許可フローを有効にします
- モバイル/デスクトップ:
http://localhostまたはカスタム URI スキームを使用します - サービス:クライアント資格情報フローではリダイレクト URI は不要です
ステップ 3:API のアクセス許可を構成する
アプリケーションに、Microsoft API または独自の API へのアクセス許可を付与します。
一般的な Microsoft Graph のアクセス許可:
User.Read- ユーザープロファイルを読み取るUser.ReadWrite.All- すべてのユーザーの読み取りと書き込みを行うDirectory.Read.All- ディレクトリデータを読み取るMail.Send- ユーザーとしてメールを送信する
詳細: references/api-permissions.md を参照してください
ステップ 4:クライアント資格情報を作成する(必要な場合)
機密クライアントアプリケーション(Web アプリ、サービス)では、クライアントシークレット、証明書、またはフェデレーション ID 資格情報を作成します。
クライアントシークレット:
- 「Certificates & secrets」に移動します
- 新しいクライアントシークレットを作成します
- 値をすぐにコピーします(表示されるのは一度だけです)
- 安全に保管します(Key Vault を推奨)
証明書: 本番環境では、セキュリティを強化するためにシークレットの代わりに証明書を使用します。「Certificates & secrets」セクションから証明書をアップロードします。
フェデレーション ID 資格情報: 機密クライアントを Entra プラットフォームに動的に認証するために使用します。
ステップ 5:OAuth フローを実装する
OAuth フローをアプリケーションのコードに統合します。
参照先:
- references/oauth-flows.md - OAuth 2.0 フローの詳細
- references/console-app-example.md - コンソールアプリの実装
一般的なパターン
パターン 1:初めてアプリを登録する
ユーザーが初めてアプリを登録する際に、手順を追って案内します。
必要な情報:
- アプリケーション名
- アプリケーションの種類(Web、SPA、モバイル、サービス)
- リダイレクト URI(該当する場合)
- 必要なアクセス許可
スクリプト: references/first-app-registration.md を参照してください
パターン 2:ユーザー認証を使用するコンソールアプリケーション
ユーザーを認証する .NET/Python/Node.js のコンソールアプリを作成します。
必要な情報:
- プログラミング言語(C#、Python、JavaScript など)
- 認証ライブラリ(MSAL を推奨)
- 必要なアクセス許可
例: references/console-app-example.md を参照してください。
パターン 3:サービス間認証
ユーザーとの対話なしで、デーモン/サービス認証を設定します。
必要な情報:
- サービス/アプリ名
- 対象の API/リソース
- シークレットまたは証明書のどちらを使用するか
実装: クライアント資格情報フローを使用します(references/oauth-flows.md#client-credentials-flow を参照)。
MCP ツールと CLI
Azure CLI コマンド
| コマンド | 目的 |
|---|---|
az ad app create | 新しいアプリ登録を作成 |
az ad app list | アプリ登録を一覧表示 |
az ad app show | アプリの詳細を表示 |
az ad app permission add | API のアクセス許可を追加 |
az ad app credential reset | 新しいクライアントシークレットを生成 |
az ad sp create | サービスプリンシパルを作成 |
完全なリファレンス: references/cli-commands.md を参照してください。
Microsoft Authentication Library(MSAL)
MSAL は、Microsoft ID プラットフォームと統合するために推奨されるライブラリです。
サポートされている言語:
- .NET/C# -
Microsoft.Identity.Client - JavaScript/TypeScript -
@azure/msal-browser、@azure/msal-node - Python -
msal
例: references/console-app-example.md を参照してください。
セキュリティのベストプラクティス
| ベストプラクティス | 推奨事項 |
|---|---|
| シークレットをハードコードしない | 環境変数、Azure Key Vault、またはマネージド ID を使用します |
| シークレットを定期的にローテーションする | 有効期限を設定し、ローテーションを自動化します |
| シークレットより証明書を使用する | 本番環境では、より安全です |
| 最小限の特権を付与する | 必要な API のアクセス許可のみを要求します |
| MFA を有効にする | ユーザーに多要素認証を要求します |
| マネージド ID を使用する | Azure でホストするアプリでは、シークレットを完全に不要にできます |
| トークンを検証する | 発行者、対象ユーザー、有効期限を必ず検証します |
| HTTPS のみを使用する | すべてのリダイレクト URI で HTTPS を使用する必要があります(localhost を除く) |
| サインインを監視する | Entra ID のサインインログを使用して異常を検出します |
SDK クイックリファレンス
- Azure Identity:Python | .NET | TypeScript | Java | Rust
- Key Vault(シークレット):Python | TypeScript
- 認証イベント:.NET
参考資料
- OAuth フロー - OAuth 2.0 フローの詳細な説明
- CLI コマンド - アプリ登録に関する Azure CLI リファレンス
- コンソールアプリの例 - 完全に動作するサンプル
- 最初のアプリ登録 - 初心者向けの手順ガイド
- API のアクセス許可 - アクセス許可の理解と設定
- トラブルシューティング - よくある問題と解決策