gpt4 book ai didi

azure - 单个授权请求中的多个资源

转载 作者:行者123 更新时间:2023-12-02 06:30:34 25 4
gpt4 key购买 nike

我们目前使用以下授权网址: https://login.microsoftonline.com/common/oauth2/authorize?resource=https%3A%2F%2Foutlook.office365.com

我们还想使用 Graph API,因此我添加了以下内容: https://login.microsoftonline.com/common/oauth2/authorize?resource=https%3A%2F%2Foutlook.office365.com%2F%26https%3A%2F%2Fgraph.microsoft.com

我在两个资源之间尝试了不同的分隔符,但无法使其工作。每一项资源都是单独工作的。我希望一次支持超过 1 个资源?

最佳答案

我认为您在这里尝试通过直接将多个值传递给 resource 参数来执行的操作将不起作用(可能不是受支持的方案,但我会等到 Microsoft 的某人确认或我)找到准确说明这一点的 Azure AD 文档。同时,这里有一个 old blog post 说了类似的话,但这是一个谈论 SSO 和 2014 年旧版本的博客:),所以不要仅仅依赖于此。)

下面我将解释如何通过重用刷新 token 来实现此场景,并且无需在同一调用中传递两个资源 ID。(注意:此方法适用于授权代码授予流程,但不适用于隐式授予流程(例如基于 JavaScript 的 SPA),因为在这种情况下不会返回刷新 token )

  • 从授权端点获取授权代码后,您可以前往 Azure AD token 端点请求单个资源的 token (根据您的应用程序要求,使用对端点的 REST 调用或 ADAL 库 AcquireToken 方法等方法)
  • 您将获得访问 token + 刷新 token 作为对 token 端点调用的响应。访问 token 对于第一次调用中提到的资源有效(例如 graph.microsoft.com)
  • 然后使用您刚刚获得的刷新 token ,再次调用 token 端点(REST 或 ADAL AcquireTokenSilent,这样第二次就不会弹出询问用户凭据的窗口)并获得在此调用的情况下,通过指定第二个资源 ID 来指定第二个资源的 token
  • 您这次获得的访问 token 对第二个资源有效。
  • 事实上,您可以继续执行此操作,因此名称“多资源刷新 token ”会出现在某些地方。尽管现在所有刷新 token 都应该是多资源的,或者可以用于请求您的应用程序同意的任何资源。

可以帮助您进一步理解和实现的链接

关于azure - 单个授权请求中的多个资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com