Microsoft Entra ID 中的身份验证和授权

已完成

Microsoft Entra ID支持新式标识协议,包括 OAuth 2.0 和 OpenID Connect。 MSAL4J 等库可帮助应用程序使用这些协议,而无需实现每个协议交互本身。

在公司门户方案中,Microsoft Entra ID是标识提供者。 门户依赖于它对帐户进行身份验证和颁发令牌,但门户仍对自己的会话和授权决策负责。

身份验证

身份验证 建立并验证标识。 对于面向用户的应用程序,它回答了“用户是谁?”

OpenID Connect 将标识层添加到 OAuth 2.0。 应用程序可以接收 ID 令牌 ,其中包含有关经过身份验证的用户和身份验证事件的声明。 ID 令牌适用于客户端应用程序;它不是应用程序发送到Microsoft Graph的令牌。

授权

授权 确定标识是否有权执行操作或访问数据。 它回答了以下问题:“此用户或应用程序允许做什么?

OAuth 2.0 提供用于获取受保护 API 访问令牌 的流。 在门户方案中,Microsoft Graph访问令牌允许门户代表登录用户请求特定数据,但受授予的权限的约束。

下表区分门户的身份验证和授权责任。

关注 门户中的示例
身份验证 Microsoft Entra ID对帐户进行身份验证,门户通过登录流接收 ID 令牌。
API 授权 Microsoft Graph 访问令牌具有读取已登录用户个人资料的委派权限。
应用程序授权 门户适用任何用于控制对其自身页面或业务操作访问的附加规则。

成功的身份验证不会自动授予对每个页面或 API 的访问权限。 例如,仅租户成员身份并不能确定某个人是员工。

应用程序注册

应用程序注册用于描述 Microsoft Entra ID 中的应用程序。 它确定应用程序的标识,并记录其登录受众和重定向 URI 等设置。 可以通过Azure门户、Azure CLI或Microsoft Graph API 管理注册;本模块中未创建任何注册。

支持的帐户类型定义登录受众:

  • 仅限此组织目录中的账户 标识单租户受众,包括所选租户中的用户和来宾账户。
  • 任何组织目录中的帐户允许来自多租户设计中的 Microsoft Entra 租户的帐户。
  • 任何组织目录中的帐户和个人 Microsoft 帐户也允许个人 Microsoft 帐户。
  • 个人Microsoft帐户将受众限制为个人Microsoft帐户,例如 Outlook.com 帐户。

注册具有一个 应用程序(客户端)ID ,用于标识协议请求中的应用程序。 机密 Web 应用程序还使用应用程序凭据在获取令牌期间自行进行身份验证。 客户端 ID 和凭据具有不同的用途:标识符不是机密。

下一单元解释示例注册并将其设置连接到代码示例。