
entra-app-registration
熱門引導 Microsoft Entra ID 應用程式註冊、OAuth 2.0 驗證及 MSAL 整合。適用於:建立應用程式註冊、註冊 Azure AD 應用程式、設定 OAuth、設定驗證、新增 API 權限、產生服務主體、MSAL 範例、主控台應用程式驗證、Entra ID 設定、Azure AD 驗證。不適用於:Azure RBAC 或角色指派(請使用 azure-rbac)、Key Vault 祕密(請使用 azure-keyvault-expiration-audit)、一般 Azure 資源安全性指導。
引導 Microsoft Entra ID 應用程式註冊、OAuth 2.0 驗證及 MSAL 整合。適用於:建立應用程式註冊、註冊 Azure AD 應用程式、設定 OAuth、設定驗證、新增 API 權限、產生服務主體、MSAL 範例、主控台應用程式驗證、Entra ID 設定、Azure AD 驗證。不適用於:Azure RBAC 或角色指派(請使用 azure-rbac)、Key Vault 祕密(請使用 azure-keyvault-expiration-audit)、一般 Azure 資源安全性指導。
概觀
Microsoft Entra ID(前身為 Azure Active Directory)是 Microsoft 的雲端式身分識別與存取管理服務。應用程式註冊可讓應用程式安全地驗證使用者並存取 Azure 資源。
重要概念
| 概念 | 說明 |
|---|---|
| 應用程式註冊 | 允許應用程式使用 Microsoft 身分識別平台的設定 |
| 應用程式 (用戶端) 識別碼 | 應用程式的唯一識別碼 |
| 租用戶識別碼 | Azure AD 租用戶/目錄的唯一識別碼 |
| 用戶端密碼 | 應用程式的密碼(僅限機密用戶端) |
| 重新導向 URI | 驗證回應傳送的 URL |
| API 權限 | 應用程式要求的存取範圍 |
| 服務主體 | 註冊應用程式時在租用戶中建立的身分識別 |
應用程式類型
| 類型 | 使用案例 |
|---|---|
| Web 應用程式 | 伺服器端應用程式、API |
| 單頁應用程式 (SPA) | JavaScript/React/Angular 應用程式 |
| 行動/原生應用程式 | 桌面、行動應用程式 |
| Daemon/服務 | 背景服務、API |
核心工作流程
步驟 1:註冊應用程式
在 Azure 入口網站或使用 Azure CLI 建立應用程式註冊。
入口網站方法:
- 瀏覽至 Azure 入口網站 → Microsoft Entra ID → 應用程式註冊
- 按一下「新增註冊」
- 提供名稱、支援的帳戶類型和重新導向 URI
- 按一下「註冊」
CLI 方法: 請參閱 references/cli-commands.md
IaC 方法: 請參閱 references/BICEP-EXAMPLE.bicep
如果您已在專案中使用 IaC、需要可擴充的解決方案來管理大量應用程式註冊,或需要設定變更的細微稽核歷程記錄,強烈建議使用 IaC 來管理 Entra 應用程式註冊。
步驟 2:設定驗證
根據應用程式類型設定驗證選項。
- Web 應用程式:新增重新導向 URI,必要時啟用識別碼權杖
- 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 應用程式、服務),請建立用戶端密碼、憑證或同盟身分識別認證。
用戶端密碼:
- 瀏覽至「憑證與祕密」
- 建立新的用戶端密碼
- 立即複製值(僅顯示一次)
- 安全儲存(建議使用 Key Vault)
憑證: 在生產環境中,建議使用憑證而非密碼以增強安全性。透過「憑證與祕密」區段上傳憑證。
同盟身分識別認證: 用於動態驗證機密用戶端與 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:服務對服務驗證
設定無需使用者互動的 Daemon/服務驗證。
所需資訊:
- 服務/應用程式名稱
- 目標 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 驗證程式庫 (MSAL)
MSAL 是整合 Microsoft 身分識別平台的建議程式庫。
支援的語言:
- .NET/C# -
Microsoft.Identity.Client - JavaScript/TypeScript -
@azure/msal-browser、@azure/msal-node - Python -
msal
範例: 請參閱 references/console-app-example.md
安全性最佳做法
| 做法 | 建議 |
|---|---|
| 絕不硬編碼祕密 | 使用環境變數、Azure Key Vault 或受控識別 |
| 定期輪替祕密 | 設定到期日,自動輪替 |
| 使用憑證而非祕密 | 生產環境更安全 |
| 最低權限原則 | 僅要求必要的 API 權限 |
| 啟用 MFA | 要求使用者進行多重要素驗證 |
| 使用受控識別 | 對於 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 權限 - 了解與設定權限
- 疑難排解 - 常見問題與解決方案





