gpt4 book ai didi

azure 广告。授权流程是否需要从浏览器调用开始才能获取桌面应用程序的授权 token ?

转载 作者:行者123 更新时间:2023-12-03 02:48:31 30 4
gpt4 key购买 nike

有关背景信息,请参阅:this question

因此,授权流程的第一步是使用 Web 浏览器中的 URL 获取授权 token ,如下所示。对于桌面应用程序,它需要具有以下签名(我对其进行了未编码以使其更具可读性):

https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/authorize
?client_id={client id}
&response_type=code
&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
&response_mode=query
&scope=openid offline_access https://graph.microsoft.com/.default

这最终会到达指定的redirectURL(假设我在Azure中的应用程序注册中设置了相同的redirectUrl并进行了身份验证。一切都很好。响应看起来像这样:

https://login.microsoftonline.com/common/oauth2/nativeclient?code=OAQABAAIAAAA...ggAA

然后,该代码用于使用来 self 的 VBA (MS-Access) 的 POST http 请求生成 access_token 和 refresh_token

https://login.microsoftonline.com/{tenant Id}/oauth2/v2.0/token

grant_type=authorization_code
client_id={client id}
scope=https://graph.microsoft.com/.default
redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
code=OAQABAAIAAAA...ggAA <== ie the code that was copied from the URL in the Authorization step above

该调用返回 access_token(1 小时后过期)和refresh_token(默认 90 天后过期)。该refresh_token用于在过期后获取另一个access_token。

到目前为止,一切顺利。

第一步(获取授权代码)在浏览器中运行,并将生成的代码复制粘贴到我的应用程序中,以便在第二步中使用(获取 access_token)。每次 access_token 过期时,refresh_token 都会用于获取另一个 access_token 和另一个 refresh_token,从而再提供 90 天的时间。一切都很好。

我的问题是这样的:90 天不活动后,access_token 和最近的刷新 token 都将过期。我是否需要返回第一步,通过浏览器窗口获取新的授权代码,从网络浏览器 URL 复制并粘贴代码并将其用于第二步?

我是否总是需要使用网络浏览器来获取授权码,或者是否有一些我完全错过的编程方法来做到这一点?

谢谢。穆雷

最佳答案

Is it the case that I will then need to return to the first step, get a new Authorization Code via a browser window, copy and paste the code from the web browser url and use it for the second step?

是的,你说得对。

is there some programatic way to do that which I have completely missed?

是的,资源所有者密码凭据 (ROPC) 授予流程允许应用程序通过直接处理用户的密码来登录用户。 ROPC flow需要高度的信任和用户暴露,并且您应该仅在无法使用其他更安全的流程时才使用此流程。

关于 azure 广告。授权流程是否需要从浏览器调用开始才能获取桌面应用程序的授权 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391597/

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