【问题标题】:Accessing Microsoft Graph API (for OneDrive) from ASP.Net Web API & MVC Web Application.从 ASP.Net Web API 和 MVC Web 应用程序访问 Microsoft Graph API(用于 OneDrive)。
【发布时间】:2018-09-17 05:49:23
【问题描述】:

我有一个使用 IdentityServer4 的 .Net Core 应用程序,并为身份验证实现了自定义 UserStore。 现在我想访问当前登录用户的 Graph API (来自自定义 UserStore 并在 Azure AD 上具有相同用户名/电子邮件的用户)。

当用户尝试访问 OneDrive 上的资源(如果尚未经过身份验证)时,要求将用户重定向到图形同意屏幕。

我创建了一个应用程序 Azure 应用程序注册门户,但与提供的示例混淆,因为它们使用 OAuth 进行身份验证,并且我已经在使用 IdentityServer4。

我正在关注这个; https://developer.microsoft.com/en-us/graph/docs/concepts/auth_overview

【问题讨论】:

    标签: c# asp.net-web-api .net-core microsoft-graph-api onedrive


    【解决方案1】:

    根据您的描述,我假设您想访问 Microsoft Graph,但您有自己的身份服务器。

    官方文档中的例子只展示了如何获取accesstoken。

    在这种情况下,您有自己的身份服务器,这意味着您可以使用Get Access without a user

    正如官方文档中提到的,您可以将其作为后台服务或守护进程运行。

    我们可以在需要的时候从这个后台服务获取accesstoken,并使用它来调用Microsoft Graph。

    【讨论】:

    • 是的。我有自己的 IdentityServer (IdentityServer4),但我想代表用户访问 Graph API。在我的案例中,不同之处在于,用户使用他们在 Identityserver 的自定义用户存储中创建的帐户登录到应用程序。 Azure 和自定义商店上的电子邮件地址将与我想用来代表登录用户访问 Graph API 的电子邮件地址相同。
    • 根据this document,您的应用必须从 Azure Active Directory (Azure AD) 获取访问令牌,Microsoft 的云身份服务才能调用 MS Graph
    • 是的。我想我必须使用 Authorization_Code 流程但不确定如何使用?我必须将使用电子邮件、所需范围和其他信息传递给login.microsoftonline.com/common/oauth2/authorize,我将获得一个代码,进一步需要发送该代码以获取 access_token。
    • 可以参考this document获取accesstoken
    • 您能否参考本文中提到的一些代码示例?
    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多