术语表:Microsoft 标识平台
使用我们的文档、Microsoft Entra 管理中心、身份验证库和 Microsoft Graph API 时,你会看到这些术语。 有些术语特定于 Microsoft,而有些术语则与 OAuth 等协议或者与 Microsoft 标识平台配合使用的其他技术相关。
访问令牌
由授权服务器颁发的一种安全令牌,可供客户端应用程序用来访问受保护的资源服务器。 通常,该令牌采用 JSON Web 令牌 (JWT) 形式,其中包含由资源所有者授予客户端的授权,用于进行所请求级别的访问。 该令牌包含所有适用的主体相关声明,可让客户端应用程序将其作为某种形式的凭据来访问给定的资源。 并使得资源所有者不必对客户端公开凭据。
访问令牌仅在短时间内有效,且不能撤销。 颁发访问令牌时,授权服务器还可以发布刷新令牌。 刷新令牌通常仅提供给机密客户端应用程序。
根据提供的凭据,访问令牌有时称为“用户+应用”或“仅限应用”。 例如,如果客户端应用程序:
- 使用“授权代码”授权,则最终用户先以资源所有者的身份进行身份验证,将授权委托给客户端来访问资源。 然后,客户端在获取访问令牌时进行身份验证。 令牌有时可以更具体地称为“用户+应用”令牌,因为它同时代表授权客户端应用程序的用户,以及应用程序。
- 使用“客户端凭据”授权,则客户端提供唯一的身份验证,在没有资源所有者身份验证/授权的情况下运行,因此该令牌有时可以称为“仅限应用”令牌。
有关更多详细信息,请参阅访问令牌参考。
Actor
客户端应用程序的另一个术语。 参与者是代表使用者(资源所有者)行事的一方。
应用程序(客户端)ID
应用程序 ID 或客户端 ID 是当你在 Microsoft Entra ID 中注册应用程序时由 Microsoft 标识平台分配给该应用程序的值。 应用程序 ID 是一个 GUID 值,用于在标识平台内唯一标识应用程序及其配置。 你可以将应用 ID 添加到应用程序的代码中,在应用程序运行时,身份验证库会在其向标识平台发出的请求中包含该值。 应用程序(客户端)ID 并非机密 - 请不要将其用作密码或其他凭据。
应用程序清单
应用程序清单是一项功能,可生成以 JSON 表示的应用程序标识配置,该配置用作更新其关联 Application 和 ServicePrincipal 实体的机制。 如需更多详细信息,请参阅了解 Microsoft Entra 应用程序清单。
应用程序对象
注册/更新应用程序时,会为该租户同时创建/更新应用程序对象和相应的服务主体对象。 应用程序对象可全局(在其能够访问的所有租户中)定义应用程序的标识配置,并可提供模板来派生出其对应的服务主体对象,在运行时于本地(在特定租户中)使用。
有关详细信息,请参阅应用程序和服务主体对象。
应用程序注册
要允许某个应用程序与标识和访问管理功能集成并将这些功能委托给 Microsoft Entra ID,必须向 Microsoft Entra 租户注册该应用程序。 向 Microsoft Entra ID 注册应用程序时,必须提供应用程序的标识配置,以允许它与 Microsoft Entra ID 集成并使用如下所述的功能:
- 使用 Microsoft Entra 标识管理和 OpenID Connect 协议实现进行可靠的单一登录管理
- 通过 OAuth 2.0 授权服务器,由客户端应用程序以中转方式访问受保护资源
- 同意框架用于根据资源所有者授权来管理客户端对受保护资源的访问。
如需更多详细信息,请参阅将应用程序与 Microsoft Entra ID 集成。
身份验证
向访问方质询合法凭据的措施,提供创建用于标识和访问控制的安全主体的基础。 例如,在 OAuth 2.0 授权期间,访问方身份验证根据使用的授权填充资源所有者或客户端应用程序角色。
授权
授权经过身份验证的安全主体执行某项操作的措施。 在 Microsoft Entra 编程模型中有两个主要用例:
- 在执行 OAuth 2.0 授权流期间:资源所有者向客户端应用程序授权时,允许客户端访问资源所有者的资源。
- 在客户端访问资源期间:与资源服务器实现的机制一样,使用访问令牌中提供的声明值作为依据做出访问控制决策。
授权代码
在执行 OAuth 2.0 授权代码授予流(四个 OAuth 2.0 授权流之一)期间,由授权终结点提供给客户端应用程序的短生存期值。 授权代码也称为“身份验证代码”,将返回给客户端应用程序以响应资源所有者的身份验证。 授权代码指示资源所有者已向客户端应用程序委托授权,允许该应用程序访问其资源。 在执行该流的过程中,稍后会将授权代码兑换为访问令牌。
授权终结点
授权服务器实现的终结点之一,用来与资源所有者进行交互,以便在执行 OAuth 2.0 授权流期间提供授权。 根据使用的授权流程,实际提供的授权可能不同,这包括授权代码或安全令牌。
有关更多详细信息,请参阅 OAuth 2.0 规范的授权类型和授权终结点部分,以及 OpenIDConnect 规范。
授权
授予客户端应用程序的凭据,代表资源所有者对其受保护资源访问权限的授权。 根据客户端类型/要求,客户端应用程序可以使用 OAuth 2.0 授权框架定义的四种授权类型之一来获取授权:“授权代码授予”、“客户端凭据授予”、“隐式授予”和“资源所有者密码凭据授予”。 根据使用的授权类型,返回给客户端的凭据是访问令牌或授权代码(稍后用于交换访问令牌)。
不应使用资源所有者密码凭据授予,除非是在无法使用其他流的情况下。 如果要构建 SPA,请使用带 PCKE 的授权代码流而非隐式授予。
授权服务器
根据 OAuth 2.0 授权框架的定义,这是在成功对资源所有者进行身份验证并获取其授权之后,负责向客户端颁发访问令牌的服务器。 客户端应用程序在运行时根据 OAuth 2.0 定义的授权,通过其授权和令牌终结点来与授权服务器交互。
对于 Microsoft 标识平台应用程序集成,Microsoft 标识平台为 Microsoft Entra 应用程序和 Microsoft 服务 API(例如 Microsoft Graph API)实现授权服务器角色。
声明
声明是安全令牌中的名称/值对,用于向另一个实体提供断言。 这些实体通常是向资源服务器提供断言的客户端应用程序或资源所有者。 声明传达了有关令牌使用者的事实,例如由授权服务器进行身份验证的安全主体的 ID。 令牌中的声明根据令牌类型、用于对使用者进行身份验证的凭据类型、应用程序配置等多种因素而各不相同。
有关更多详细信息,请查看 Microsoft 标识平台令牌参考。
客户端应用程序
也称为“行动者”。 根据 OAuth 2.0 授权框架的定义,这是代表资源所有者发出受保护资源请求的应用程序。 他们以范围的形式从资源所有者接收权限。 “客户端”一词并不代表任何特定的硬件实现特征(例如,应用程序是在服务器、台式机还是其他设备上执行)。
客户端应用程序向资源所有者请求授权,以参与 OAuth 2.0 授权流,并可代表资源所有者访问 API/数据。 OAuth 2.0 授权框架根据客户端是否能够维护其凭据的机密性定义两种类型的客户端:“机密”和“公共”。 应用程序可实现在 Web 服务器上运行的 Web 客户端(机密)、安装在设备上的本机客户端(公共),或者在设备浏览器中运行的基于用户代理的客户端(公共)。
同意
资源所有者授权给客户端应用程序,让其通过特定权限代表资源所有者访问受保护资源的过程。 根据客户端请求的权限,要求管理员或用户同意分别允许其组织/个人数据的访问权限。 请注意,在多租户方案中,应用程序的服务主体也会记录在同意方用户的租户中。
有关详细信息,请参阅许可框架。
ID 令牌
授权服务器的授权终结点提供的 OpenID Connect 安全令牌,其中包含与最终用户资源所有者的身份验证相关的声明。 与访问令牌一样,ID 令牌也以数字签名的 JSON Web 令牌 (JWT) 形式来表示。 不过,与访问令牌不同的是,ID 令牌的声明并不用于与资源访问相关的用途(具体地说,是访问控制)。
有关更多详细信息,请参阅 ID 令牌参考。
托管标识
使开发人员无需管理凭据。 托管标识为应用程序提供一个标识,可以在连接到支持 Microsoft Entra 身份验证的资源时使用。 应用程序可以使用托管标识来获取 Microsoft 标识平台令牌。 例如,应用程序可以使用托管标识来访问 Azure 密钥保管库 等资源,开发人员可以采用安全的方式存储凭据或访问存储帐户。 有关详细信息,请参阅托管标识概述。
Microsoft 标识平台
Microsoft 标识平台是由 Microsoft Entra 标识服务和开发人员平台演变而来。 开发人员可以通过它来生成应用程序,以便进行所有 Microsoft 标识的登录,以及获取令牌来调用 Microsoft Graph、其他 Microsoft API 或者开发人员生成的 API。 它是一种全功能的平台,包含身份验证服务、库、应用程序注册和配置、完整的开发人员文档、代码示例,以及其他开发人员内容。 Microsoft 标识平台支持行业标准协议,例如 OAuth 2.0 和 OpenID Connect。
多租户应用程序
一类应用程序,允许在任何 Microsoft Entra 租户(包括在其中注册了客户端的租户以外的租户)中预配的用户进行登录和同意操作。 本机客户端应用程序默认为多租户,而 Web 客户端和 Web 资源/API 应用程序则可在单租户和多租户之间做出选择。 相反,注册为单租户的 Web 应用程序只允许来自应用程序注册所在相同租户中预配的用户帐户的登录。
如需更多详细信息,请参阅如何使用多租户应用程序模式将任何 Microsoft Entra 用户登录。
本机客户端
设备上本机安装的 客户端应用程序 类型。 由于所有代码都在设备上执行,因此设备因为无法隐私/秘密地存储凭据而被视为“公共”客户端。 有关更多详细信息,请参阅 OAuth 2.0 客户端类型和配置文件。
权限
客户端应用程序通过声明权限请求来获取资源服务器访问权限。 有两种权限类型:
- “委托的”权限,可使用登录的资源所有者的委托授权指定基于范围的访问,在运行时提供给资源作为客户端访问令牌中的“scp”声明。 这些表示由使用者授予参与者的权限。
- “应用程序”权限,可使用客户端应用程序的凭据/标识指定基于角色的访问,在运行时提供给资源作为客户端访问令牌中的“角色”声明。 这些表示由租户授予使用者的权限。
权限也会在 同意 过程中出现,让管理员或资源所有者有机会允许/拒绝客户端对其租户中的资源进行访问。
权限请求是在应用程序的“API 权限”页上配置的,配置方法是选择所需的“委托的权限”和“应用程序权限”(后者需要全局管理员角色中的成员资格)。 公共客户端无法安全地维护凭据,因此它只能请求委托的权限,而机密客户端则可以请求委托的权限和应用程序权限。 客户端的应用程序对象将声明的权限存储在其 requiredResourceAccess 属性中。
刷新令牌
授权服务器颁发的一种安全令牌。 在访问令牌过期之前,客户端应用程序会在从授权服务器请求新的访问令牌时包含其关联的刷新令牌。 刷新令牌通常采用 JSON Web 令牌 (JWT) 格式。
与访问令牌不同,刷新令牌可以撤销。 授权服务器将拒绝来自客户端应用程序的、包含已撤销的刷新令牌的任何请求。 当授权服务器拒绝包含已撤销的刷新令牌的请求时,客户端应用程序将失去代表资源所有者访问资源服务器的权限。
有关更多详细信息,请参阅刷新令牌。
资源所有者
根据 OAuth 2.0 授权框架的定义,这是能够授予受保护资源访问权限的实体。 如果资源所有者是个人,则称为最终用户。 例如,当客户端应用程序想要通过 Microsoft Graph API 访问用户的邮箱时,需要从该邮箱的资源所有者获取权限。 “资源所有者”有时也称为使用者。
每个安全令牌都代表一个资源所有者。 资源所有者是令牌中的使用者声明、对象 ID 声明和个人数据表示的内容。 资源所有者是以范围的形式向客户端应用程序授予委托权限的一方。 资源所有者也是指示租户或应用程序中的扩展权限的角色接收方。
资源服务器
根据 OAuth 2.0 授权框架的定义,这是托管受保护资源的服务器,能够接受并响应出示访问令牌的客户端应用程序所发出的受保护资源请求。 它也称为受保护的资源服务器或资源应用程序。
资源服务器使用 OAuth 2.0 授权框架公开 API,并通过范围和角色强制实施其受保护资源的访问权限。 示例包括可访问 Microsoft Entra 租户数据的 Microsoft Graph API,以及可访问邮件和日历等数据的 Microsoft 365 API。
与客户端应用程序一样,资源应用程序的标识配置是通过 Microsoft Entra 租户中的注册来建立的,可提供应用程序和服务主体对象。 Microsoft 提供的某些 API(例如 Microsoft Graph API)在预配期间将预先注册的服务主体设置为在所有租户中可用。
角色
与范围一样,应用角色提供了一种方式,让资源服务器可以控制对其受保护资源的访问权限。 与范围不同,角色表示已在基线外授予使用者的特权 - 这就是读取自己的电子邮件是一个范围,而成为可以阅读每个人电子邮件的电子邮件管理员是一个角色的原因。
应用角色可以支持两种分配类型:“用户”分配为需要资源访问权限的用户/组实现基于角色的访问控制,而“应用程序”分配为需要访问权限的客户端应用程序实现相同的访问控制。 应用角色可以定义为用户可分配的角色和/或应用可分配的角色。
角色是资源定义的字符串(例如“开支审批人”、“只读”、“Directory.ReadWrite.All”),通过资源的应用程序清单进行管理,并存储在资源的 appRoles 属性中。 可将用户分配到“用户”可分配角色,并且可将客户端应用程序权限 配置为请求“应用程序”可分配角色。
有关 Microsoft Graph API 公开的应用程序角色的详细讨论,请参阅 Graph API 权限范围。 有关分步实现示例,请参阅添加或移除 Azure 角色分配。
作用域
与角色一样,范围提供某种方式让资源服务器控制其受保护资源的访问权限。 对于资源所有者已为其提供资源的委托访问权限的客户端应用程序,范围可用于实现基于范围的访问控制。
范围是资源定义的字符串(例如“Mail.Read”、“Directory.ReadWrite.All”),通过资源的应用程序清单进行管理,并存储在资源的 oauth2Permissions 属性中。 可将客户端应用程序委托的权限配置为访问某个范围。
命名约定最佳实践是使用“resource.operation.constraint”格式。 有关 Microsoft Graph API 公开的范围的详细讨论,请参阅 Graph API 权限范围。 有关 Microsoft 365 服务公开的范围,请参阅 Microsoft 365 API 访问权限参考。
安全令牌
包含 OAuth 2.0 令牌或 SAML 2.0 断言等声明的已签名文档。 对于 OAuth 2.0 授权,访问令牌 (OAuth2)、刷新令牌和 ID 令牌都是安全令牌类型,并且所有这些类型都作为 JSON Web 令牌 (JWT) 实现。
服务主体对象
注册/更新应用程序时,会为该租户同时创建/更新应用程序对象和相应的服务主体对象。 应用程序对象可全局(在关联的应用程序已获授予访问权限的所有租户中)定义应用程序的标识配置,并可作为模板来派生出其对应的服务主体对象,以便在运行时于本地(在特定租户)使用。
有关详细信息,请参阅应用程序和服务主体对象。
登录
客户端应用程序启动最终用户身份验证并捕获相关状态,以请求安全令牌并将应用程序会话局限在该状态的过程。 状态可以包括多种项目,例如用户配置文件信息,以及派生自令牌声明的信息。
应用程序的登录功能通常用于实现单一登录 (SSO)。 该功能前面可能还会有一个“注册”功能,作为用户访问应用程序(在首次登录时)的入口点。 注册功能用于收集和保存用户特定的其他状态,并且可能需要用户同意。
注销
使最终用户变成未身份验证状态的过程,解除用户在登录期间与客户端应用程序会话关联的状态
使用者
也称为资源所有者。
租户
Microsoft Entra 目录的实例称为 Microsoft Entra 租户。 它提供的一些功能包括:
- 适用于集成应用程序的注册表服务
- 对用户帐户和已注册应用程序进行身份验证
- 为各种协议(包括 OAuth 2.0 和 SAML)提供支持所需的 REST 终结点,包括授权终结点、令牌终结点以及多租户应用程序使用的“通用”终结点。
在注册期间会创建 Microsoft Entra 租户/将 Microsoft Entra 租户与 Azure 和 Microsoft 365 订阅关联,以便为该订阅提供标识和访问管理功能。 Azure 订阅管理员还可创建其他 Microsoft Entra 租户。 有关访问租户的各种方式的详细信息,请参阅如何获取 Microsoft Entra 租户。 若要详细了解订阅和 Microsoft Entra 租户之间的关系,以及如何向 Microsoft Entra 租户关联或添加订阅的说明,请参阅将 Azure 订阅关联或添加到 Microsoft Entra 租户。
令牌终结点
授权服务器为了支持 OAuth 2.0 授权而实现的终结点之一。 根据具体的授权,可将其用于获取客户端的访问令牌(和相关的“刷新”令牌)或 ID 令牌(与 OpenID Connect 协议结合使用时)。
基于用户代理的客户端
一种客户端应用程序,例如单页应用程序 (SPA),可从 Web 服务器下载代码并在用户代理(例如 Web 浏览器)中执行。 由于所有代码都在设备上执行,因此设备因为无法隐私/秘密地存储凭据而被视为“公共”客户端。 有关详细信息,请参阅 OAuth 2.0 客户端类型和配置文件。
用户主体
与服务主体对象用于表示应用程序实例的方式一样,用户主体对象是另一种类型的安全主体,它代表用户。 Microsoft Graph User
资源类型定义了用户对象的架构,包括与用户相关的属性,例如名字和姓氏、用户主体名称、目录角色成员身份等。 这样即可提供 Microsoft Entra ID 的用户标识配置,用于在运行时建立用户主体。 用户主体用于代表经身份验证的用户进行单一登录、记录同意委托、做出访问控制决策等操作。
Web 客户端
一种类型的客户端应用程序,可在 Web 服务器上执行所有代码,并可充当机密客户端,因为它能将凭据安全地存储在服务器上。 有关详细信息,请参阅 OAuth 2.0 客户端类型和配置文件。
工作负载标识
软件工作负载(例如应用程序、服务、脚本或容器)用来对其他服务和资源进行身份验证和访问的标识。 在 Microsoft Entra ID 中,工作负载标识是应用、服务主体和托管标识。 有关详细信息,请参阅工作负载标识概述。
工作负荷联合身份验证
允许从外部应用和服务安全地访问 Microsoft Entra 保护的资源,且无需管理机密(适用于支持的方案)。 有关详细信息,请参阅工作负载联合身份验证。
后续步骤
此术语表中的许多术语与 OAuth 2.0 和 OpenID Connect 协议相关。 尽管你不需要知道协议的“在线”工作原理即可使用标识平台,但了解一些协议基础知识有助于更轻松地在应用中构建和调试身份验证与授权: