身份验证和授权
本文阐述了身份验证和授权。 此外还简要介绍了多重身份验证以及如何使用 Microsoft 标识平台对 Web 应用、Web API 或调用受保护 Web API 的应用中的用户进行身份验证和授权。 如果你看到不熟悉的术语,请尝试查看我们的术语表,其中涵盖了基本概念。
身份验证
身份验证是证明你自己的身份的过程。 这是通过验证人员或设备的标识来实现的。 它有时缩写为 AuthN。 Microsoft 标识平台使用 OpenID Connect 协议来处理身份验证。
授权
授权是指向经过身份验证的参与方授予执行某项操作的权限的操作。 它指定了你可访问的数据以及可使用该数据执行的操作。 授权有时缩写为 AuthZ。 Microsoft 标识平台为资源所有者提供了使用 OAuth 2.0 协议来处理授权的能力,但 Azure 云还提供了其他授权系统,例如 Entra 内置角色、Azure RBAC 和 Exchange RBAC。
多重身份验证
多重身份验证是一种向帐户提供其他身份验证因素的行为。 通常用于防范暴力攻击。 它有时缩写为 MFA 或 2FA。 Microsoft Authenticator 可用作处理双因素身份验证的应用。 有关详细信息,请参阅多重身份验证。
使用 Microsoft 标识平台进行身份验证和授权
如果创建会维护自己的用户名和密码信息的应用,在多个应用中添加或删除用户时,会产生较高的管理负担。 不过,应用可以将该职责委托给一个集中式标识提供者。
Microsoft Entra ID 是云中的集中式标识提供者。 将身份验证和授权委托给它可以实现如下方案:
- 要求用户位于特定位置的条件访问策略。
- 多重身份验证要求用户具有特定设备。
- 允许用户登录一次后可自动登录到共享同一集中目录的所有 Web 应用。 此功能被称为“单一登录 (SSO)”。
Microsoft 标识平台通过提供标识即服务为应用程序开发人员简化了授权和身份验证。 它支持用于各种平台的行业标准协议和开源库,可以帮助你快速开始编码。 开发人员可以使用它构建具有以下功能的应用程序:可以使用所有 Microsoft 标识进行登录、获取令牌来调用 Microsoft Graph、访问 Microsoft API,或访问开发人员构建的其他 API。
下面比较了 Microsoft 标识平台使用的各种协议:
- OAuth 与 OpenID Connect:平台使用 OAuth 进行授权,使用 OpenID Connect (OIDC) 进行身份验证。 OpenID Connect 构建在 OAuth 2.0 的基础之上,因此两者的术语和流很相似。 甚至可以在一个请求中(通过 OpenID Connect)对用户进行身份验证和(通过 OAuth 2.0)获得访问该用户拥有的受保护资源的权限。 有关详细信息,请参阅 OAuth 2.0 和 OpenID Connect 协议和 OpenID Connect 协议。
- OAuth 与 SAML:平台使用 OAuth 2.0 进行授权,使用 SAML 进行身份验证。
- OpenID Connect 与 SAML:平台使用 OpenID Connect 和 SAML 对用户进行身份验证并启用单一登录。 SAML 身份验证通常与标识提供者(例如,联合到 Microsoft Entra ID 的 Active Directory 联合身份验证服务 (AD FS))一起使用,因此经常用于企业应用程序。 OpenID Connect 通常用于仅位于云中的应用,例如移动应用、网站和 Web API。
后续步骤
有关介绍身份验证和授权基础知识的其他主题,请参阅以下资源:
- 若要了解如何在授权和身份验证中使用访问令牌、刷新令牌和 ID 令牌,请参阅安全令牌。
- 若要了解注册应用程序以便它可以与 Microsoft 标识平台集成的过程,请参阅应用程序模型。
- 若要详细了解使用令牌声明的正确授权,请参阅通过验证声明保护应用程序和 API