【问题标题】:SharePoint Provider Hosted App Credentials to Consume Web APISharePoint 提供程序托管应用程序凭据以使用 Web API
【发布时间】:2015-04-24 21:03:47
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

    HTH,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 2015-09-02
      • 2013-10-04
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多