ADSTS50011错误求助:回复地址与Azure应用配置不匹配
我之前也踩过类似的坑,折腾了好几个小时才搞定,给你列几个最可能的排查方向,按顺序试试:
严格匹配回复地址的细节:从你的描述看,本地应用地址是
http://localhost/SkypeWebSDKSamples/(带结尾斜杠),但你在AAD配置的地址是http://localhost/SkypeWebSDKSamples(不带斜杠)——AAD对地址匹配是非常严格的,差一个斜杠就会触发这个报错!先把两个地址统一,要么都加斜杠,要么都去掉,再重新测试。另外还要注意大小写,比如SDKSamples和SdkSamples在AAD眼里是完全不同的地址,必须100%一致。确认回复地址的类型正确:在AAD应用注册的“回复地址”设置里,这个地址的类型必须选Web,而不是SPA或其他类型。你是用IIS部署的传统Web应用,不是前端单页应用,类型选错的话AAD会直接拒绝这个地址。
抓包查看实际请求的redirect_uri:打开浏览器开发者工具(F12)切换到“网络”标签,触发登录流程后,找到向AAD发送的授权请求(URL里会包含
authorize),查看请求参数里的redirect_uri值,确认它和你在AAD配置的地址是不是完全一致。有时候代码里硬编码的地址和你以为的不一样,比如漏写了路径、错写了端口,都会导致匹配失败。核对应用注册的租户和登录租户:有时候会不小心在不同的AAD租户里注册了同名应用,导致实际请求的租户和配置回复地址的租户不是同一个,自然匹配不上。检查你登录的账户所属租户,和应用注册所在的租户是不是同一个。
清除缓存重启会话:浏览器可能缓存了旧的授权会话信息,导致一直用错误的回复地址请求。试试用隐身窗口打开应用,或者清除浏览器的缓存和Cookie,再重新测试。
检查Skype Web SDK的配置代码:确保代码里设置的
redirectUri参数和AAD里的配置完全一致,比如有没有拼写错误、路径写错的情况。比如SDK初始化时可能误写成http://localhost/SkypeSamples,少了WebSDK的部分,这样肯定会触发报错。
如果这些都试过还是不行,可以把抓包到的redirect_uri值和AAD配置的地址做对比,这样更容易定位问题。
内容的提问来源于stack exchange,提问作者Guarav T.

