如何模拟用户令牌以进行服务调用

时间:2017-07-11 02:05:41

标签: node.js azure-active-directory adal

我的应用程序结构是Web应用程序调用WebAPI(让我们称之为apiA)并调用另一个api(让我们称之为apiB)。现在,Web应用程序通过AAD JWT令牌验证呼叫。因此,将为apiA创建该令牌。但我希望api调用apiB作为登录用户,不想使用客户端机密等。

因此,简而言之,他们想要模仿用户并从为apiA创建的令牌中获取apiB的令牌,或者如果可能的话,可能会有一个对apiA和apiB都有好处的令牌。所以,我没有必要得到一个新的令牌。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用OAuth 2.0 On-Behalf-Of流来委派用户的身份并对第二层Web API进行身份验证。请参阅document

  
    

对于服务器应用程序需要调用Web API的情况,使用示例很有帮助。想象一下,用户已在本机应用程序上进行了身份验证,并且此本机应用程序需要调用Web API。 Azure AD发出JWT访问令牌以调用Web API。如果Web API需要调用另一个下游Web API,它可以使用代表流来委派用户的身份并对第二层Web API进行身份验证。

  

enter image description here

请点击here,了解有关在On-Behalf-Of流程中使用委派用户身份进行服务呼叫服务的详细信息。