安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill 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 资源安全指南。
299.1k
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill entra-app-registration name: entra-app-registration
description: "指南 Microsoft Entra ID 应用注册、OAuth 2.0 认证和 MSAL 集成。 \n用途:创建应用注册、注册 Azure AD 应用、配置 OAuth、设置认证、添加 API 权限、生成服务主体、MSAL 示例、控制台应用认证、Entra ID 设置、Azure AD 认证。 \n不适用于:Azure RBAC 或角色分配(使用 azure-rbac)、Key Vault 机密(使用 azure-keyvault-expiration-audit)、常规 Azure 资源安全指南。"
license: MIT
metadata:
author: Microsoft
version: "1.1.1"Microsoft Entra ID(前身为 Azure Active Directory)是微软基于云的身份和访问管理服务。应用注册允许应用程序安全地验证用户身份并访问 Azure 资源。
| 概念 | 说明 |
|---|---|
| 应用注册 | 允许应用使用 Microsoft 身份平台的配置 |
| 应用程序(客户端)ID | 应用程序的唯一标识符 |
| 租户 ID | Azure AD 租户/目录的唯一标识符 |
| 客户端密码 | 应用程序的密码(仅限机密客户端) |
| 重定向 URI | 身份验证响应发送到的 URL |
| API 权限 | 应用程序请求的访问范围 |
| 服务主体 | 注册应用时在租户中创建的身份 |
| 类型 | 使用场景 |
|---|---|
| Web 应用程序 | 服务端应用、API |
| 单页应用(SPA) | JavaScript/React/Angular 应用 |
| 移动/原生应用 | 桌面、移动应用 |
| 守护程序/服务 | 后台服务、API |
在 Azure 门户或使用 Azure CLI 创建应用注册。
门户方法:
CLI 方法: 请参阅 [references/cli-commands.md](references/cli-commands.md)
IaC 方法: 请参阅 [references/BICEP-EXAMPLE.bicep](references/BICEP-EXAMPLE.bicep)
如果在项目中已使用 IaC,需要管理大量应用注册的可扩展解决方案,或需要对配置更改进行精细的审计历史记录,则强烈建议使用 IaC 管理 Entra 应用注册。
根据应用程序类型设置身份验证设置。
http://localhost 或自定义 URI 方案授予应用程序访问 Microsoft API 或自有 API 的权限。
常见 Microsoft Graph 权限:
User.Read - 读取用户配置文件User.ReadWrite.All - 读取和写入所有用户Directory.Read.All - 读取目录数据Mail.Send - 以用户身份发送邮件详细信息: 请参阅 [references/api-permissions.md](references/api-permissions.md)
对于机密客户端应用程序(Web 应用、服务),创建客户端密码、证书或联合身份凭据。
客户端密码:
证书: 在生产环境中,建议使用证书而非密码以提高安全性。通过“证书和密码”部分上传证书。
联合身份凭据: 用于动态验证机密客户端与 Entra 平台的身份。
将 OAuth 流程集成到应用程序代码中。
请参阅:
逐步引导用户完成首次应用注册。
所需信息:
脚本: 请参阅 [references/first-app-registration.md](references/first-app-registration.md)
创建对用户进行身份验证的 .NET/Python/Node.js 控制台应用。
所需信息:
示例: 请参阅 [references/console-app-example.md](references/console-app-example.md)
设置无需用户交互的守护程序/服务身份验证。
所需信息:
实现: 使用客户端凭据流(请参阅 [references/oauth-flows.md#client-credentials-flow](references/oauth-flows.md#client-credentials-flow))
| 命令 | 用途 |
|---|---|
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](references/cli-commands.md)
MSAL 是集成 Microsoft 身份平台的推荐库。
支持的语言:
Microsoft.Identity.Client@azure/msal-browser、@azure/msal-nodemsal示例: 请参阅 [references/console-app-example.md](references/console-app-example.md)
| 实践 | 建议 |
|---|---|
| 绝不硬编码密码 | 使用环境变量、Azure Key Vault 或托管标识 |
| 定期轮换密码 | 设置过期时间,自动轮换 |
| 优先使用证书而非密码 | 生产环境更安全 |
| 最小权限原则 | 仅请求所需的 API 权限 |
| 启用 MFA | 要求用户进行多重身份验证 |
| 使用托管标识 | 对于 Azure 托管的应用,完全避免使用密码 |
| 验证令牌 | 始终验证颁发者、受众、过期时间 |
| 仅使用 HTTPS | 所有重定向 URI 必须使用 HTTPS(localhost 除外) |
| 监视登录 | 使用 Entra ID 登录日志进行异常检测 |