SharePoint Provider托管应用程序凭据以使用Web API

时间:2015-02-23 14:00:54

标签: sharepoint asp.net-web-api azure-active-directory

我有一个SharePoint Online网站,其中包含一个由提供商托管的应用程序,以及一个使用Azure Active Directory保护的Web API服务。 我想从SharePoint应用程序中使用Web API服务 由于用户已经在SharePoint上下文中进行了身份验证,因此我想使用他们的凭据并随身携带"它转发到Web API服务(而不是提示用户输入用户名和密码)。

我的Web API已在AAD中注册,我注意到SharePoint应用程序也出现在AAD中(作为"同意的应用程序")。

是否有可能允许在访问Web API时使用为同意应用程序发出的访问令牌?是否有任何其他解决方案"携带"从SharePoint上下文到第三方服务的凭据?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,这应该是可行的,但是如果您将SharePoint15应用程序模型用于提供商托管的Web应用程序,则重新使用用户上下文可能具有挑战性。这表示您应该能够使用OAuth2.0从您的Web应用程序调用我们的Azure AD安全Web API,虽然可能会要求同意,但用户不需要再次登录。

github上有很多关于如何使用Azure AD(和ADAL客户端库)调用Web API的示例。这可能是最合适的:https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet尽管在使用OAuth2.0代码流调用Web API之前,它还使用OpenID Connect进行登录(使用Azure AD帐户)。在对Web API的调用中,access / Jwt令牌将包含有关客户端应用程序和已登录用户的信息。

最新的O365 REST API允许您使用Azure AD提供的相同OAuth2.0框架。这将允许您构建一个可以调用文件/ SharePoint,邮件/日历/联系人和Azure AD Graph以及您自己或其他Web API的Web应用程序:https://msdn.microsoft.com/office/office365/HowTo/platform-development-overview

HTHS,