Azure AD SPN 和 UPN?

标签 azure azure-active-directory

我想了解 Azure AD 上下文中 SPN 和 UPN 之间的区别。我的理解是在Azure AD中建立身份有三种方式

  1. 用户输入用户名和密码来建立身份
  2. 使用 ClientId 和 Secret Key 建立身份的应用
  3. 使用 ClientId 和证书建立身份的应用程序

用户/密码是否称为 UPN,其余两个称为 SPN?还有其他方式来建立身份吗?

最佳答案

在 Azure AD 中,UPN 是用户主体名称。它始终采用类似于电子邮件地址的格式。本质上它由三个部分组成。用户帐户名、分隔符(即@符号)和UPN后缀或域名。它的主要目的是在身份验证期间使用并代表用户身份。

SPN 是服务主体名称。服务主体对象定义应用程序的策略和权限,为安全主体提供在运行时访问资源时代表应用程序的基础。应用程序身份(服务主体)优于在您自己的凭据(用户身份)下运行应用程序,因为:

  1. 您可以向应用程序身份分配与您自己的权限不同的权限。通常,这些权限仅限于应用程序需要执行的操作。

  2. 如果您的职责发生变化,您不必更改应用的凭据。

  3. 执行无人值守脚本时,您可以使用证书自动进行身份验证。

您可以使用密码或证书创建服务主体,如图所示。 请点击here有关 Azure Active Directory 中的应用程序和服务主体对象的更多信息,请单击 here了解如何使用门户创建可访问资源的 Azure Active Directory 应用程序和服务主体。您可以在左侧导航面板上选择其他方式(例如PowerShell/CLI)。

关于Azure AD SPN 和 UPN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43703052/

相关文章:

Azure Powershell 函数使用推送输出绑定(bind)附加到 Blob

firebase - 使用 Firebase OpenID Connect 提供程序作为 Azure Function App 身份提供程序

c# - 如何从故障转移组名称获取主服务器和辅助服务器名称。有 C# 代码示例吗?

oauth - 外部 API 调用我的 API 使用 Azure Active Directory 保护

azure - 我们如何在函数应用程序的 ARM 模板中包含连接字符串?

azure - 使用托管身份从 python azure 函数调用 API

azure - 使用 Azure Active Directory 用户时,远程 WMI 查询失败并显示 'A security package specific error occurred'

azure-active-directory - 从所有组中检索所有用户?

python - 在 Azure AD 中创建用户需要哪些应用程序权限?

azure - 无法通过 UI 访问容器应用程序 :Azure