使用从Azure AD和ADAL

时间:2015-06-04 12:23:59

标签: cordova authentication sharepoint azure-active-directory adal

目标

使用来自基于Apache Cordova的移动应用程序使用OAuth的REST请求访问内部部署的SharePoint数据。

到目前为止我尝试了什么

1。 Azure移动服务/混合连接/ AAD / ADAL

与博文Access SharePoint on behalf of the user类似,但使用内部服务器代替O365:

  1. 客户端使用ADAL for Apache Cordova登录。
  2. 通过混合连接连接到本地服务器的移动服务。
  3. 使用ADAL.net使用在步骤1中获取的令牌获取SharePoint服务器的令牌。
  4. 除了第三步之外,这种方法很好,因为内部部署服务器和AAD之间没有任何连接,因此无法获取令牌。

    2。与上面相同,加上Azure应用程序代理

    我们在此post中设置了Kirk Evans所描述的Azure应用程序代理。 用于移动服务的Azure AD应用程序被授予应用程序代理的应用程序的访问权限(在同一Azure AD租户中)。

    现在第一步到第三步工作正常。我们已经能够使用应用程序代理URL作为资源获取令牌。然后我们尝试使用令牌执行REST请求,如下所示:

    GET https://<server>.msappproxy.net/_api/web/title
    Authorization: Bearer <the token>
    Accept: application/json;odata=verbose
    

    但是这会将302重定向发送到https://login.microsoftonline.com。 我试图通过将令牌作为“id_token =”发布到应用程序代理来模拟使用浏览器时所做的握手,但这似乎有点牵强,而不是Azure应用程序代理设置所预期的。

    我认为缺少的部分是为内部部署SharePoint启用基于令牌的身份验证。我找不到任何关于如何做到这一点。我正在考虑在内部部署服务器上调查SharePoint应用程序(现在是加载项)的设置。我怀疑这会解决问题。 我尝试使用以下方法将服务器连接到AAD: How to: Use an Office 365 SharePoint site to authorize provider-hosted apps on an on-premises SharePoint site。再次,这更像是在黑暗中拍摄的。

    问题

    如何获取AAD的令牌并使用它来从Cordova移动应用程序执行针对内部部署SharePoint的请求?

0 个答案:

没有答案