2015-02-23 91 views
0

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

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

是否允许在访问Web API时使用为已同意的应用程序发布的访问令牌?是否有任何其他解决方案将证书从SharePoint上下文“携带”到第三方服务?

谢谢!

回答

0

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

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

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

HTHS,

相关问题