如何获取 Azure ID 令牌以用于 webapi 中的授权?
How to fetch Azure ID Token to use for authorization within webapi?
我们即将 运行 Azure 中的 D365 CRM,现在我们正试图找出如何授权对我们的 onprem 的调用 api。
场景被简化为;用户正在 D365 CRM 中保存注释,当发生这种情况时,我们还想调用我们的 onprem api.
我们想使用 Azure ID 令牌(具体来说不是访问令牌)进行调用。这是在访问api.
时对用户进行授权
是否可以获取 ID Token 并通过调用发送?到目前为止,我们只能设法获取不够好的访问令牌。如何找回ID Token?
您正在混合使用 OAuth / OpenID Connect 的基本概念。在调用 API 时,您 必须 使用 access_token
。 id_token
的目的不是在API中做出授权决定,而是在客户端获取用户的基本信息。
您可以找到 really good formulated and compact article on the subject here.
当您拥有 access_token
并且它是正确的时,它包含您需要的所有信息:
- 哪个是调用应用程序
- 谁是代理最终用户
- 授予了哪些权限(应用程序角色或范围)
任何其他信息(可能是 id_token 的一部分)都可以使用 API.
后端的 Microsoft Graph 获取
这里还有一些有用的参考资料:
注意两种令牌类型中的声明引用。
我们即将 运行 Azure 中的 D365 CRM,现在我们正试图找出如何授权对我们的 onprem 的调用 api。
场景被简化为;用户正在 D365 CRM 中保存注释,当发生这种情况时,我们还想调用我们的 onprem api.
我们想使用 Azure ID 令牌(具体来说不是访问令牌)进行调用。这是在访问api.
时对用户进行授权是否可以获取 ID Token 并通过调用发送?到目前为止,我们只能设法获取不够好的访问令牌。如何找回ID Token?
您正在混合使用 OAuth / OpenID Connect 的基本概念。在调用 API 时,您 必须 使用 access_token
。 id_token
的目的不是在API中做出授权决定,而是在客户端获取用户的基本信息。
您可以找到 really good formulated and compact article on the subject here.
当您拥有 access_token
并且它是正确的时,它包含您需要的所有信息:
- 哪个是调用应用程序
- 谁是代理最终用户
- 授予了哪些权限(应用程序角色或范围)
任何其他信息(可能是 id_token 的一部分)都可以使用 API.
后端的 Microsoft Graph 获取这里还有一些有用的参考资料:
注意两种令牌类型中的声明引用。