这是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:用户或管理员未同意使用该应用程序。
所以情况是这样的 -
如果我使用v1.0端点,我同时获得访问和刷新令牌
击中终点
https://outlook.office.com/api/v2.0/Users('dummy@example.com')/subscriptions
发回401 Unauthorized
。我知道端点目标是v2.0,但我没有找到v1.0的一个。
但是,如果我使用v2.0端点,我可以创建订阅,但只能获得很快就存在的访问令牌,这就需要再次完成整个过程,我不需要想。
答案 0 :(得分:2)
作为评论者指出,您已注册Azure AD v2.0应用程序,并且正在调用Azure AD v1.0端点。这不是您面临的严重问题,但我建议您将auth端点重新配置为v2.0。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
我认为您可能遇到的问题是在调用管理员同意端点之前未配置静态权限。 Azure AD v2.0的一项新功能是动态同意&允许您在请求时请求新权限的范围;但是,对于管理员同意,您必须将这些配置为静态权限。
您可以通过以下用户界面在the App Reg Portal内的Azure AD v2.0中配置静态权限:
然后再次尝试点击管理员同意端点,最后重新请求具有offline_access
范围的刷新令牌。