返回全部 Skills

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

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add microsoft/azure-skills --skill entra-app-registration

skill.md

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应用程序的唯一标识符
租户 IDAzure AD 租户/目录的唯一标识符
客户端密码应用程序的密码(仅限机密客户端)
重定向 URI身份验证响应发送到的 URL
API 权限应用程序请求的访问范围
服务主体注册应用时在租户中创建的身份

应用类型

类型使用场景
Web 应用程序服务端应用、API
单页应用(SPA)JavaScript/React/Angular 应用
移动/原生应用桌面、移动应用
守护程序/服务后台服务、API

核心工作流

步骤 1:注册应用程序

在 Azure 门户或使用 Azure CLI 创建应用注册。

门户方法:

  1. 导航到 Azure 门户 → Microsoft Entra ID → 应用注册
  2. 点击“新注册”
  3. 提供名称、支持的账户类型和重定向 URI
  4. 点击“注册”

CLI 方法: 请参阅 [references/cli-commands.md](references/cli-commands.md)

IaC 方法: 请参阅 [references/BICEP-EXAMPLE.bicep](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](references/api-permissions.md)

步骤 4:创建客户端凭据(如果需要)

对于机密客户端应用程序(Web 应用、服务),创建客户端密码、证书或联合身份凭据。

客户端密码:

  • 导航到“证书和密码”
  • 创建新的客户端密码
  • 立即复制值(仅显示一次)
  • 安全存储(建议使用 Key Vault)

证书: 在生产环境中,建议使用证书而非密码以提高安全性。通过“证书和密码”部分上传证书。

联合身份凭据: 用于动态验证机密客户端与 Entra 平台的身份。

步骤 5:实现 OAuth 流程

将 OAuth 流程集成到应用程序代码中。

请参阅:

  • [references/oauth-flows.md](references/oauth-flows.md) - OAuth 2.0 流程详情
  • [references/console-app-example.md](references/console-app-example.md) - 控制台应用实现

常见模式

模式 1:首次应用注册

逐步引导用户完成首次应用注册。

所需信息:

  • 应用程序名称
  • 应用程序类型(Web、SPA、移动、服务)
  • 重定向 URI(如适用)
  • 所需权限

脚本: 请参阅 [references/first-app-registration.md](references/first-app-registration.md)

模式 2:带用户身份验证的控制台应用程序

创建对用户进行身份验证的 .NET/Python/Node.js 控制台应用。

所需信息:

  • 编程语言(C#、Python、JavaScript 等)
  • 身份验证库(推荐 MSAL)
  • 所需权限

示例: 请参阅 [references/console-app-example.md](references/console-app-example.md)

模式 3:服务到服务身份验证

设置无需用户交互的守护程序/服务身份验证。

所需信息:

  • 服务/应用程序名称
  • 目标 API/资源
  • 使用密码还是证书

实现: 使用客户端凭据流(请参阅 [references/oauth-flows.md#client-credentials-flow](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](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](references/console-app-example.md)

安全最佳实践

实践建议
绝不硬编码密码使用环境变量、Azure Key Vault 或托管标识
定期轮换密码设置过期时间,自动轮换
优先使用证书而非密码生产环境更安全
最小权限原则仅请求所需的 API 权限
启用 MFA要求用户进行多重身份验证
使用托管标识对于 Azure 托管的应用,完全避免使用密码
验证令牌始终验证颁发者、受众、过期时间
仅使用 HTTPS所有重定向 URI 必须使用 HTTPS(localhost 除外)
监视登录使用 Entra ID 登录日志进行异常检测

SDK 快速参考

  • Azure Identity:[Python](references/sdk/azure-identity-py.md) | [.NET](references/sdk/azure-identity-dotnet.md) | [TypeScript](references/sdk/azure-identity-ts.md) | [Java](references/sdk/azure-identity-java.md) | [Rust](references/sdk/azure-identity-rust.md)
  • Key Vault (secrets):[Python](references/sdk/azure-keyvault-py.md) | [TypeScript](references/sdk/azure-keyvault-secrets-ts.md)
  • Auth Events:[.NET](references/sdk/microsoft-azure-webjobs-extensions-authentication-events-dotnet.md)

参考资料

  • [OAuth 流程](references/oauth-flows.md) - 详细的 OAuth 2.0 流程说明
  • [CLI 命令](references/cli-commands.md) - 应用注册的 Azure CLI 参考
  • [控制台应用示例](references/console-app-example.md) - 完整的工作示例
  • [首次应用注册](references/first-app-registration.md) - 初学者的分步指南
  • [API 权限](references/api-permissions.md) - 理解并配置权限
  • [故障排除](references/troubleshooting.md) - 常见问题及解决方案

外部资源