如何使用刷新令牌使用ADAL for Cordova请求多个资源

时间:2016-03-17 19:27:53

标签: cordova azure authentication access-token adal

我跟随此Cordova & ADAL tutorial。我能够在我的原生应用程序上成功执行目录搜索。我想扩展应用程序的功能并添加一个azure web api资源并在同一个应用程序中使用它。

我使用VS2015模板创建了azure web api,将其发布到azure,将其添加为Azure Active Directory中的Web应用程序,并使我的本机应用程序可以访问其他应用程序的权限" Azure AD中的部分。

我现在想扩展示例目录搜索器应用程序,以便在不让用户再次登录的情况下使用api。根据我的研究,我发现我可以使用刷新令牌消耗多个资源,但是如果没有第二次将用户签名到Azure AD以获取web api资源的令牌,我就无法弄清楚如何执行此操作。

非常感谢任何示例或帮助。这是我的jsFiddle,让您了解我想要做的事情。

WidgetBlue retVal = new WidgetBlue();

1 个答案:

答案 0 :(得分:0)

我意识到这是一个古老的问题,但对于其他任何人:

在Azure中为客户端应用程序(ClientA)分配所需的延迟权限,使用acquireTokenAsync进行身份验证,然后通过acquireTokenSilentAsync请求其他资源(ClientB),同时提供ClientB和ClientAs Client的资源名称ID。

this.authContext.acquireTokenSilentAsync(
  clientBResourceUri,
  clientAId
);

这将为您返回clientB的JWT和刷新令牌,这些令牌将存储在tokenCache中。如果系统提示您用户需要登录,请确保已授予ClientA应用访问ClientB的权限