【问题标题】:Custom API dynamically authenticating to different SharePoint tenants自定义 API 动态验证不同的 SharePoint 租户
【发布时间】:2018-05-01 13:39:55
【问题描述】:

我有一个自定义的 .NET API,并为 Azure AD 设置了多租户身份验证,效果很好。来自不同 Office 365 订阅的客户都将调用相同的 API,并且 API 将代表正在调用的用户访问 Office 365。到目前为止一切顺利。

我们已经代表用户调用了 Microsoft Graph,没有任何问题。现在我们还需要代表用户调用SharePoint,偶然发现了一个问题,那就是必须在我们的应用服务中预先配置位置,如下图所示:

我们可以通过在此配置中配置所有 SharePoint 租户来解决此问题,但由于它可能会经常更改且不会发出警告,我们希望找到一个可以动态设置的解决方案。

(我知道我可以使用 Azure API 更新 Azure 配置,但我正在寻找一种能够有效地向“任何”租户进行身份验证的解决方案)

有谁知道我们是否可以在我们的应用程序中动态覆盖此设置以及如何覆盖?

【问题讨论】:

    标签: .net azure sharepoint office365 sharepoint-online


    【解决方案1】:

    根据您的描述,您使用的是内置的应用服务身份验证/授权(Easy Auth)。 AFAIK,您还可以显式指定额外的登录参数,如下所示:

    https://<your-webapp-name>.azurewebsites.net/.auth/login/aad?resource=https://graph.microsoft.com&response_type=code id_token
    

    根据您的要求,您可能需要使用相应的resource 参数将您的自定义重定向到上述端点进行身份验证。

    此外,如果您想代表登录用户调用 Microsoft Graph 和 SharePoint 资源,您可能需要在代码中使用 on-behalf-of flow 来获取访问另一个 API 的令牌。由于您使用的是内置身份验证,因此您可以专注于从 .NET Web API 项目中的其他资源(例如 Microsoft Graph 或 SharePoint)获取令牌的过程。详细代码教程,可以关注Calling a downstream web API from a web API using Azure AD

    【讨论】:

    • 我想我可以在一个请求中包含多个资源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 2012-09-29
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多