azure - 应用程序身份 - 应用程序 ID 和访问 token 之间的关系

标签 azure asp.net-core oauth-2.0 azure-active-directory

我是 OAuth 新手,正在研究应用程序身份/client credential使用 OAuth 的工作流程。基本上会有一个客户端应用程序使用客户端应用程序的应用程序 ID 调用 API。 API 将信任有权访问客户端应用程序的任何人。 enter image description here

我对实现的理解是:

  1. 将客户端应用注册到 Azure AD
  2. 将客户端应用的应用 ID 放入 API
  3. 启用 OAuth 请求,以便客户端应用能够从 AAD 接收访问 token
  4. 使用访问 token 调用 API

但我的困惑是网络应用程序的应用程序 ID 和访问 token 之间的关系。我知道我们必须将客户端的应用程序 ID 放入 API 中,以便 API 能够以某种方式识别客户端应用程序。 API 如何知道访问 token 来自该特定应用 ID?它到底是如何工作的?

最佳答案

应用程序 ID 也称为客户端 ID,它代表代表资源所有者发出 protected 资源请求的客户端应用程序。

客户端应用程序对资源所有者进行身份验证并获得其授权,然后授权服务器将向客户端应用程序颁发访问 token 。

有关关系的更多详细信息,您可以查看 Azure Active Directory developer glossary

更新:

例如,我使用客户端凭据流来获取 MS Graph API 的访问 token 。然后我将其解码为 https://jwt.io/ 。您将找到声明 "aud": "https://graph.microsoft.com/""appid": "xxxxxx""app_displayname":“joywebapp2”,更多详情请参见Claims in access tokens

当您使用访问 token 调用 MS Graph API 时,它会知道访问 token 来自您询问的特定客户端应用程序。

enter image description here

关于azure - 应用程序身份 - 应用程序 ID 和访问 token 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153297/

相关文章:

azure - 如何在Azure Api管理服务中管理用户帐户?

python - 在 Azure Function 内执行任意 Python 代码(用户提交)

c# - 是否可以使用 ASP.NET Core Identity(基于 cookie)来保护 WebAPI?

asp.net-mvc - 在 Tag Helper 中获取属性名称

.net - Appsettings.json 不同版本?

curl - 使用 Curl 和 Oauth 2 将文件上传到 DropBox 的 DropBox API PUT 示例

Azure 网站 Elmah SMTP 邮件在部署时无法工作

azure - 如何仅授予对 Azure 订阅中部分资源的读取访问权限?

google-apps-script - 刷新 token "error": "invalid_client" on google app script - new feature upgrade auth

asp.net-core - 在 ASP.NET Core 中添加 OpenIdConnect 和刷新 token