如何在ADAL中或通过HTTP Ajax调用触发受Azure AD保护的资源?

如何在ADAL中或通过HTTP Ajax调用触发受Azure AD保护的资源?,azure,cordova,adal,adal.js,Azure,Cordova,Adal,Adal.js,所以我一个星期以来一直在做这件事,希望能得到一些帮助 我们有一个资源(SAP HANA应用程序)https//host:port/index.html 这是受Azure保护的,即当在浏览器上访问应用程序URL时,我们需要使用MS凭据登录,然后登录,对同一URL的后续API调用不需要身份验证,因为它需要已登录的会话 现在,我们一直在尝试在Cordova移动应用程序上复制类似的行为,该应用程序对SAP HANA主机执行相同的API调用。我们尝试了以下方法: 为此,我们使用了ADAL,并且我们可以使用

所以我一个星期以来一直在做这件事,希望能得到一些帮助

我们有一个资源(SAP HANA应用程序)https//host:port/index.html 这是受Azure保护的,即当在浏览器上访问应用程序URL时,我们需要使用MS凭据登录,然后登录,对同一URL的后续API调用不需要身份验证,因为它需要已登录的会话

现在,我们一直在尝试在Cordova移动应用程序上复制类似的行为,该应用程序对SAP HANA主机执行相同的API调用。我们尝试了以下方法:

  • 为此,我们使用了ADAL,并且我们可以使用以下参数登录Azure AD:
    • 权威=”https://login.microsoftonline.com/common"
    • 重定向URI=”http://localhost:51939/webapp/index.html"
    • 资源URI=”https://graph.microsoft.com“
    • clientId=已注册的客户端ID
    但它提供的accessToken仅适用于访问任何图形API,我如何为上述SAP HANA资源请求令牌,以便将其用于API调用。提供SAP HANA应用程序的任何URL只会导致一个错误,即租户上不存在资源

  • 尝试使用Cordova Plugin-InAppBrowser登录应用程序并触发MS登录,然后使用会话调用API,但插件不允许弹出窗口,因此MS登录失败并导致401

  • 那么,手动触发浏览器中发生的Azure身份验证流的正确方法是什么?

    如果要访问SAP HANA应用程序,需要使用AD应用程序的resourceUri,该应用程序用于在ADAL配置中保护SAP。