🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx @anthropic-ai/skills install microsoft/azure-skills/entra-app-registration
💡 提示:需要 Node.js 和 NPM
概述
Microsoft Entra ID(原 Azure Active Directory)是微软基于云的标识和访问管理服务。应用注册允许应用程序对用户进行身份验证,并安全地访问 Azure 资源。
关键概念
| 概念 | 描述 |
|---|---|
| 应用注册 | 允许应用使用 Microsoft 身份平台的配置 |
| 应用程序(客户端)ID | 应用程序的唯一标识符 |
| 租户 ID | Azure AD 租户/目录的唯一标识符 |
| 客户端密码 | 应用程序的密码(仅限机密客户端) |
| 重定向 URI | 发送身份验证响应的 URL |
| API 权限 | 应用程序请求的访问范围 |
| 服务主体 | 注册应用时在租户中创建的标识 |
应用程序类型
| 类型 | 使用场景 |
|---|---|
| Web 应用程序 | 服务器端应用、API |
| 单页应用 (SPA) | JavaScript/React/Angular 应用 |
| 移动/原生应用 | 桌面、移动应用 |
| 守护程序/服务 | 后台服务、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,根据需要启用 ID 令牌
- 单页应用:添加重定向 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:服务间身份验证
设置无需用户交互的守护程序/服务身份验证。
所需信息:
- 服务/应用名称
- 目标 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
- Auth Events:.NET
参考资料
- OAuth 流程 – 详细的 OAuth 2.0 流程说明
- CLI 命令 – 用于应用注册的 Azure CLI 参考
- 控制台应用示例 – 完整的工作示例
- 首次应用注册 – 初学者分步指南
- API 权限 – 理解并配置权限
- 故障排除 – 常见问题及解决方案
外部资源
📄 原始文档
完整文档(英文):
https://skills.sh/microsoft/azure-skills/entra-app-registration
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

评论(0)