标签: node.js azure-active-directory adal
我的应用程序结构是Web应用程序调用WebAPI(让我们称之为apiA)并调用另一个api(让我们称之为apiB)。现在,Web应用程序通过AAD JWT令牌验证呼叫。因此,将为apiA创建该令牌。但我希望api调用apiB作为登录用户,不想使用客户端机密等。
因此,简而言之,他们想要模仿用户并从为apiA创建的令牌中获取apiB的令牌,或者如果可能的话,可能会有一个对apiA和apiB都有好处的令牌。所以,我没有必要得到一个新的令牌。
有没有办法做到这一点?
答案 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进行身份验证。
请点击here,了解有关在On-Behalf-Of流程中使用委派用户身份进行服务呼叫服务的详细信息。