【问题标题】:Accessing Microsoft Graph from C# Web API从 C# Web API 访问 Microsoft Graph
【发布时间】:2018-11-12 20:12:34
【问题描述】:

我有以下应用架构:

  • Angular 5 客户端
  • 受 Azure 令牌保护的 C# Web API

客户端和 API 在 Azure 应用注册中注册,客户端使用令牌正确地对 API 端点进行身份验证。所以我得到了我需要的数据。到目前为止,一切顺利。

但是,我想让 API 层(服务器端)从 Microsoft Graph 中获取一些数据(例如,一个简单的“我”请求,https://graph.microsoft.com/v1.0/me/)。我试图使用客户端发送到 API 的令牌,并使用应用程序密钥创建令牌。这两种方法都给我带来了 MS Graph 方面的权限不足错误。

我做错了什么?

【问题讨论】:

    标签: azure microsoft-graph-api adal


    【解决方案1】:

    确保您将应用注册设置为有权访问 Microsoft Graph。您可以通过转到应用程序注册来做到这一点,然后...

    • 点击设置
    • 转到所需权限
    • 点击添加
    • 点击选择 API
    • 选择 Microsoft Graph 并单击选择
    • 在应用程序权限下,检查正确的权限

    单击 Select 选择权限,然后单击 Done 完成添加 API 访问权限。

    重要!
    单击授予权限按钮以实际授予应用程序权限。管理员必须授予这些权限,您可以通过单击按钮来完成。您对为应用程序启用的权限所做的任何更改都需要您通过单击按钮明确授予权限。

    更多信息,例如应用程序权限与委托权限,可以在这篇文章中找到:HowTo: invite AAD user with Microsoft Graph

    【讨论】:

    • 这里还可以采用两种方法:应用程序权限(始终需要管理员批准)或委托权限 + 代表(有时需要管理员批准)。代表允许您将 API 收到的令牌交换为新的委托令牌,然后以应用程序 + 用户的身份调用 API。应用程序权限提供组织范围的访问权限,但更可靠、更简单。委托权限提供更严格的访问权限,但更脆弱:)
    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多