你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Bot Framework 身份验证基础知识

适用于: SDK v4

通常,机器人必须代表用户访问受保护的资源,例如电子邮件帐户。 为此,必须根据用户的凭据 对机器人进行授权 。 在此之前,必须先 对用户进行身份验证 。 机器人必须是已知的实体,也就是说,必须在 Azure AI 机器人服务上下文中进行身份验证。 在程序被授权代表用户操作之前,这种情况会发生。

让我们从鸟瞰的角度来看 Bot Framework 的身份验证上下文,看看是否能解开这个捆绑包。

机器人身份验证上下文

  • 通过 Azure 机器人 资源在 Azure 中注册机器人时,Azure 会创建Microsoft Entra ID 注册应用程序。 此应用程序具有应用 ID(MicrosoftAppId)和客户端密码(MicrosoftAppPassword)。 可在机器人配置文件中使用这些值,如下所示。

  • Microsoft Entra ID 是一项云标识服务,可用于生成使用行业标准协议(如 OAuth 2.0)安全地登录 用户 的应用程序。 创建 Active Directory 应用程序并使用其 应用 ID密码 来选择 标识提供者 并生成 身份验证 连接。 你将此连接添加到你的机器人资源。 还可以在机器人配置文件中添加连接名称,如下所示。

  • 机器人由其 Azure 机器人资源 应用 ID密码标识。 在机器人的配置文件或机密或密钥管理器中添加相关值。 还可以添加连接名称。 机器人使用基于应用 ID 和密码的令牌来访问受保护的资源。 机器人使用基于身份验证连接的不同令牌来访问用户的受保护资源。

机器人身份验证和授权

以下是对机器人进行身份验证并授权其访问用户受保护资源的主要步骤:

  1. 创建机器人通道注册应用程序。
  2. 将注册应用 ID 和密码添加到机器人配置文件。 这样,机器人就可以通过身份验证来访问受保护的资源。
  3. 创建一个Microsoft Entra ID 应用程序,以选择要对用户进行身份验证的标识提供者。
  4. 创建身份验证连接并将其添加到通道注册设置。
  5. 将连接名称添加到机器人的配置文件。 这允许机器人获得访问用户受保护资源的授权。

有关完整示例,请参阅 向机器人添加身份验证

最佳做法

  • 将 Microsoft Entra ID 应用注册限制为服务到服务应用程序的原始用途。
  • 为任何用户服务身份验证创建额外的Microsoft Entra ID 应用,以便对禁用身份验证连接、滚动机密或与其他应用程序重用 Microsoft Entra ID 应用进行更有限的控制。

如果还使用 Microsoft Entra ID 注册应用进行身份验证,则遇到的一些问题包括:

  • 如果需要续订附加到 Microsoft Entra ID 应用注册的证书,则会影响使用证书通过其他 Microsoft Entra ID 服务进行身份验证的用户。
  • 一般情况下,它会为机器人的所有身份验证相关活动创建单一故障点和控制。

以下文章提供有关 Bot Framework 中的身份验证的深入信息和示例。 首先查看 身份验证类型 ,然后查看 标识提供者

文章 DESCRIPTION
身份验证类型 介绍两种 Bot Framework 身份验证类型和它们使用的令牌。
标识提供者 描述标识提供者的使用。 它们允许你生成使用行业标准协议(如 OAuth2.0)安全地登录用户的应用程序。
用户身份验证 描述用户的身份验证和相关令牌,以授权机器人代表用户执行任务。
单一登录 描述多个受保护资源访问的单用户身份验证。
将机器人注册到 Azure 演示如何向 Azure AI 机器人服务注册机器人。
Bot Framework 安全指南 描述安全性的总体概念及其在 Bot Framework 中的应用。
向机器人添加身份验证 演示如何创建机器人通道注册、创建身份验证连接并准备代码。
向机器人添加单一登录 演示如何向机器人添加单一登录身份验证。