没有得到 refresh_token

Not Getting a refresh_token

这是 my other question 的延续。

我不得不最终让有问题的用户成为管理员角色,然后我在 https://apps.dev.microsoft.com/

创建了一个新的应用程序注册

应用程序通过使用所需参数点击 https://login.microsoftonline.com/common/adminconsent?.. 端点获得了管理员许可。

一切正常,我什至能够为该用户创建 Outlook 邮件订阅。

问题是,端点 https://login.microsoftonline.com/common/oauth2/v2.0/token 没有给我 refresh_token。我尝试在获取授权码的范围内包含 offline_access(参考 - http://massivescale.com/microsoft-v2-endpoint-primer/),但出现以下错误 -

AADSTS65001: The user or administrator has not consented to use the application.

所以情况是这样的-

正如评论者所指出的,您已经注册了一个 Azure AD v2.0 应用程序,并且正在调用 Azure AD v1.0 端点。这严格来说不是您面临的问题,但我建议重新配置您的身份验证端点以适用于 v2.0。

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

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

我认为您可能 运行 遇到的问题是在调用管理员同意端点之前没有配置静态权限。 Azure AD v2.0 的新功能之一是动态同意和范围,允许您在请求时请求新权限;但是,为了获得管理员同意,您必须将这些配置为静态权限。

您可以通过下面的UI在the App Reg Portal内部的Azure AD v2.0中配置静态权限:

然后尝试再次访问管理员同意端点,最后重新请求 offline_access 范围内的刷新令牌。