【问题标题】:How to generate user access token from active directory token?如何从活动目录令牌生成用户访问令牌?
【发布时间】:2019-08-19 00:23:36
【问题描述】:

我们使用自定义 web api 和 angular 作为前端。我们已经有活动目录访问令牌,我们需要在用户上下文下访问 SharePoint 列表。如何使用 azure Active Directory 令牌生成用户访问令牌以代表 Flow 访问 SharePoint?

【问题讨论】:

  • 为什么要使用活动目录令牌来生成令牌?您可以使用广告访问令牌直接访问 sharepoint rest api。可以参考advaiya.com/blog/access-sharepoint-rest-api-using-oauth
  • 我们正在使用自定义 web api 并从基于角度的前端应用程序中调用它们。我们需要使用用户上下文访问共享点库。
  • 简短的回答是肯定的,您可以将您拥有的访问令牌换成另一个 API 的令牌。您使用代表流程来执行此操作。
  • 您好,Junnas,感谢您的回复。你能告诉我,如何使用它吗?

标签: azure-active-directory access-token sharepoint-online


【解决方案1】:

要使用获取的 access_token 从另一个 API 请求新的 access_token,您可以使用 on_behalf_of 流程。

对于 V2 enpoint,请求 URL:

https://login.microsoftonline.com//oauth2/v2.0/token

POST /oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id=<application-id>
&client_secret=<key value>
&assertion=<acquired access_token>
&requested_token_use=on_behalf_of
&scope=https://graph.microsoft.com/User.Read email(here the example API is [ms graph API][1], and the permissions are User.Read and email)

详情可以参考这个dos

【讨论】:

  • 您好 SunnySun,感谢您的回复,但它对我不起作用,因为我遇到了未经授权的错误。
  • 我们正在使用带有 Azure AD V2 端点的应用程序。在这种情况下,SharePoint 范围的价值应该是什么?
  • 是的,在 v2 端点中,资源将被范围替换,范围的格式应为your sharepoint uri/permission。我已经更新了 v2 端点的答案,很抱歉给您带来不便。
  • 太棒了!它可能对你有用。
  • 并请给它做一个标记,以便它可以帮助其他人,谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2020-04-14
  • 2019-11-29
  • 1970-01-01
  • 2013-01-28
  • 2018-08-10
  • 1970-01-01
相关资源
最近更新 更多