我是 OAuth 新手,正在研究应用程序身份/client credential使用 OAuth 的工作流程。基本上会有一个客户端应用程序使用客户端应用程序的应用程序 ID 调用 API。 API 将信任有权访问客户端应用程序的任何人。
我对实现的理解是:
- 将客户端应用注册到 Azure AD
- 将客户端应用的应用 ID 放入 API
- 启用 OAuth 请求,以便客户端应用能够从 AAD 接收访问 token
- 使用访问 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 来自您询问的特定客户端应用程序。
关于azure - 应用程序身份 - 应用程序 ID 和访问 token 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153297/