如何获取Azure ID令牌以用于webapi中的授权?

时间:2019-08-15 07:15:06

标签: azure jwt azure-active-directory dynamics-crm

我们将在Azure中运行D365 CRM,现在我们试图找出如何授权对我们的onprem api的调用。

该场景被简化为类似;用户正在D365 CRM中保存注释,当发生这种情况时,我们还希望调用onprem api。

我们要使用Azure ID令牌(具体来说是NOT Access令牌)进行呼叫。这是在访问api时授权用户。

是否可以获取ID令牌并随呼叫一起发送?到目前为止,我们仅设法获取了不够好的访问令牌。我们应该如何检索ID令牌?

1 个答案:

答案 0 :(得分:1)

您正在混合OAuth / OpenID Connect的基本概念。调用API时,您必须使用access_tokenid_token的目的不是在API中做出授权决定,而是在Client App中获取有关用户的基本信息。

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

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

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

可以使用API​​后端的Microsoft Graph获得任何其他信息(可能是id_token的一部分)。

以下是一些有用的参考资料:

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