You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为Azure配置OAuth2时未跳转登录页面,出现AADSTS90002错误

解决Azure OAuth2配置中的AADSTS90002错误

从你遇到的Error: AADSTS90002: Requested tenant identifier '${azuretenantid}' is not valid错误,以及重定向URL里显示的$%7BazureTenantId%7D(这是URL转义后的占位符${azureTenantId}),核心问题很明确:你的OAuth配置里的租户ID占位符没有被正确替换成实际的租户UUID——你只修正了accessTokenUri,但整个认证流程里还有其他依赖租户ID的配置项没处理。

下面是一步步的修复方案:

  • 全局替换所有配置中的租户ID占位符
    除了accessTokenUri,你需要检查所有涉及Azure AD的配置项,把未解析的${azuretenantid}${azureTenantId}替换成你的真实租户ID(就是你已经用到accessTokenUri里的那个xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),重点包括:

    • 授权端点(authorizationUri):也就是触发错误的那个https://login.microsoftonline.com/${azureTenantId}/oauth2/authorize,必须把占位符替换成实际值
    • 可能存在的用户信息端点、注销端点等其他Azure AD相关URL
  • 确认占位符的解析逻辑是否正常
    如果你是通过配置文件(比如application.yml、application.properties)或环境变量来管理这些参数,要注意:

    • 检查占位符的拼写一致性:错误里显示的是${azuretenantid}全小写,但你配置里用的是${azureTenantId}驼峰式,大小写不匹配会导致解析失败
    • 确保azureTenantId这个变量已经正确定义(比如在环境变量、配置文件或者应用启动参数中),没有遗漏或拼写错误
  • 验证修正后的授权URL
    把占位符替换后,你的授权URL应该长成这样:

    https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/authorize?resource=https://graph.windows.net&client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&redirect_uri=http://localhost:8084/login&response_type=code&scope=profile&state=wTeKZ1
    

    可以手动在浏览器里打开这个URL,如果能正常跳转到Azure的登录页面,说明租户ID的问题已经解决;如果还是报错,去Azure Portal的「Azure Active Directory」→「概述」里确认租户ID是否正确。

  • 检查Azure Portal里的重定向URI配置
    最后别忘了,要在Azure Portal的应用注册页面,把http://localhost:8084/login添加为重定向URI,并且要和你配置里的redirect_uri完全一致(包括协议、端口、路径,大小写敏感)——这也是OAuth流程中常见的坑。

如果做完这些还是有问题,可以查看应用的运行日志,看看有没有配置项未正确加载的提示,或者租户ID是否在运行时被成功注入到应用中。

内容的提问来源于stack exchange,提问作者rezearcher

火山引擎 最新活动