【问题标题】:In Azure, why is an AuthClientId also called an Application Id?在 Azure 中,为什么 AuthClientId 也称为 Application Id?
【发布时间】:2018-12-07 02:52:31
【问题描述】:

我发现 Azure 中的应用程序注册非常令人困惑。 在我的question here AuthClientId 和Application Id 原来是同一个东西,那为什么要使用两个名字呢?

这种命名选择背后的逻辑是什么?

[更新]

从乔伊的链接到我看到的词汇表

应用程序 ID(客户端 ID)

“Azure AD 向应用程序注册发出的唯一标识符,用于标识特定应用程序和相关配置。此应用程序 ID(客户端 ID)在执行身份验证请求时使用,并在开发时提供给身份验证库。”

我看到客户端 ID 链接到 ietf.org 的页面 哪个州

"2.2. 客户端标识符

授权服务器向注册的客户端发出客户端 标识符 -- 表示注册的唯一字符串 客户提供的信息。”

我猜这个比喻是关于供应商、客户、产品的关系 供应商是 Active Directory,产品是身份验证,客户是应用程序注册。

作为客户,我很难习惯“应用程序注册”的概念。我寻求帮助来理解单词的选择。

多租户应用程序的想法并不真正适用于“客户端”隐喻。

[更新] 这个link is the most helpful yet最权威 从链接复制

1.1。角色

OAuth 定义了四种角色:

资源所有者 能够授予对受保护资源的访问权限的实体。 当资源所有者是一个人时,它被称为 最终用户。

资源服务器 托管受保护资源的服务器,能够接受 并使用访问令牌响应受保护的资源请求。

客户 代表受保护资源请求的应用程序 资源所有者及其授权。 “客户”一词确实 不暗示任何特定的实现特征(例如, 应用程序是否在服务器、桌面或其他设备上执行 设备)。

授权服务器 服务器成功后向客户端颁发访问令牌 验证资源所有者并获得授权。

授权服务器与资源的交互 服务器超出了本规范的范围。这 授权服务器可能与资源服务器是同一台服务器 或单独的实体。单个授权服务器可能会发布 多个资源服务器接受的访问令牌。

不过还是有点混乱。

“代表资源所有者并经其授权发出受保护资源请求的应用程序”

“代表资源所有者发出受保护的资源请求”是什么意思?

[更新]

在研究了韦恩杨的答案后,我在Slack's oauth page找到了这张照片

【问题讨论】:

标签: azure oauth-2.0 azure-active-directory azure-keyvault


【解决方案1】:

为什么 AuthClientId 也称为 Application Id?

Client IdOAuth2.0 protocol 中的标准定义。也是实际应用。 Application Id 只是 Azure 门户中的另一个名称。

这个名称更接近应用程序本身的含义。例如,可以用客户端调用 Native Client,但 Web App/Api 实际上是运行在服务器中的服务器服务。但它们都是应用程序。

因此,应用程序 ID 对普通用户更有意义。但是client Id是一个标准定义,你不能改变它。

“代表以下人员发出受保护的资源请求”是什么意思? 资源所有者”?

这意味着客户端可以代表用户请求访问令牌并将访问令牌发送到资源。 (如果让用户自己做,不安全又复杂)

在OAuth2.0框架中,客户端是用户(资源所有者)、应用程序(受保护的资源)和身份提供者(授权服务器)的桥梁。如果用户想要访问SaaS 应用程序,他将向客户端发送授权请求,而不是直接向授权服务器发送授权请求。然后客户端可以代表用户向授权服务器请求访问令牌,并将访问令牌发送给应用程序。

这是协议流程:

 +--------+                               +---------------+
 |        |--(A)- Authorization Request ->|   Resource    |
 |        |                               |     Owner     |
 |        |<-(B)-- Authorization Grant ---|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(C)-- Authorization Grant -->| Authorization |
 | Client |                               |     Server    |
 |        |<-(D)----- Access Token -------|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(E)----- Access Token ------>|    Resource   |
 |        |                               |     Server    |
 |        |<-(F)--- Protected Resource ---|               |
 +--------+                               +---------------+

  

CF,Client代表资源所有者获取访问令牌并发送访问令牌。

对于AAD,有Authorize access to Azure Active Directory web applications using the OAuth 2.0 code grant flow的文档:

客户端:原生应用

资源:Web API

资源所有者:用户

授权服务器:AAD

这里的 Native 应用程序是代表用户请求令牌并将令牌发送到资源的客户端。

【讨论】:

  • 谢谢,但我很难理解所有用户都是资源所有者。
  • 嗨@KirstenGreed。并非所有用户都是资源所有者。如果要限制用户分配,您可以转到 AAD> 企业应用程序> 选择您的应用程序> 需要用户分配> 设置为是> 在此应用程序下的用户和组中添加用户。
  • 作为资源所有者的用户也是反直觉的......但我想这是一个不同的问题。
  • @KirstenGreed 。那是 OpenID 连接,而不是 Oauth2.0。 OAuth2.0 无法做到这一点。此外,实际上,即使在 OpenID 连接中,身份提供者中也有客户端。 OpenID 基于 OAuth。对于最终用户,您无法感受后端的工作原理。如果你使用 Fiddler 来抓流量你会发现在 http 请求中也应该有一个 clientid。使用无法获取令牌并直接发送令牌。
  • 另外,这就是 OAuth2.0 能做的事情和原因。
【解决方案2】:

在 Azure 中,要创建服务主体,您必须注册应用程序。这就是为什么它被称为应用程序 ID (AppId)。所以:

AppId = ClientId = AuthClientId = 您的应用程序的 ID

TenantId = DirectoryId = Azure Active Directory 的名称或 Guid

【讨论】:

  • 什么是客户端?
  • 我不明白你的问题。客户端是访问远程服务的软件(或硬件)。
  • 因此将客户端也称为应用程序没有意义,但这就是您的答案所暗示的。我更新了问题以表明我正在尝试理解这些名称选择背后的想法。
  • 嗨@KirstenGreed,客户端ID是OAuth2.0 protocol中的标准定义。它实际上也是应用程序。应用程序 ID 只是 Azure 门户中的另一个名称。这个名称更接近应用程序本身的含义。例如,可以用客户端调用 Native Client,但 Web 应用程序/api 实际上是运行在服务器中的服务器服务。但它们都是应用程序。因此,应用程序 id 对普通用户更有意义。但是客户 ID 是一个标准定义,您无法更改它。
  • 谢谢@WayneYang-MSFT,您提供的链接有答案。我更新了问题以表明即使有链接我仍然觉得答案令人困惑
【解决方案3】:

为什么会在此处的客户端 ID 主题中出现混淆:

Azure 旧门户 (https://manage.windowsazure.com) 中,他们将“客户端 ID”称为“客户端 ID”,当涉及到 Azure 新门户 (@ 987654322@) 他们提供了“Application ID”和“Object ID”,所以这里开始混淆了,很多人可能会将“Object ID”复制为“Client ID”,但在新门户中我们需要复制“Application ID” ”作为我们的“客户 ID”。

希望这能让许多仍有困惑的人清楚。

【讨论】:

  • 它解释了混淆是历史性的,而不是重命名背后的想法
猜你喜欢
  • 2018-10-28
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
相关资源
最近更新 更多