如何获取 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_tokenid_token的目的不是在API中做出授权决定,而是在客户端获取用户的基本信息。

您可以找到 really good formulated and compact article on the subject here.

当您拥有 access_token 并且它是正确的时,它包含您需要的所有信息:

  • 哪个是调用应用程序
  • 谁是代理最终用户
  • 授予了哪些权限(应用程序角色或范围)

任何其他信息(可能是 id_token 的一部分)都可以使用 API.

后端的 Microsoft Graph 获取

这里还有一些有用的参考资料:

注意两种令牌类型中的声明引用。