我试图找出导致进入页面的OAuth流程(使用login.microsoftonline.com作为IDP)在OAuth流程中间出现的错误原因。
错误是:
AADSTS50011(请求中指定的回复URL与为应用程序配置的回复URL不匹配:“ 89bee1f7-5e6e-4d8a-9f3d-ecd601259da7”。
看着发出的请求,我确实看到了与之对应的请求:
我看过几篇有关AADSTS50011的帖子,有些人说这可能是微软的问题,而另一些人说有问题的客户端ID需要注册。但是我的代码没有在任何地方使用这个神秘的客户端ID,我想知道它的来源。
我不确定,但似乎此请求可能来自https://webshell.suite.office.com/iframe/TokenFactoryIframe或与之相关的Javascript。
顺便说一句,在请求交换中,我看到看起来也正在使用正确的客户端ID(00000002-0000-0ff1-ce00-000000000000),并且身份验证似乎正在成功。我什至看到有问题的页面开始加载,但是随后几秒钟出现了错误。
更新:与这个问题有关的是上述第一个URL实际在做什么。这是指向/ authorize的链接,其重定向URI位于相同的位置。这似乎很奇怪,在正常的OAuth流程中是否可以预期?如果是这样,为什么?
答案 0 :(得分:1)
错误消息很清楚。您的应用程序需要在AAD租户下注册,并且您在代码中为回复URL /重定向URI输入的任何内容都必须与您在租户中设置的内容相匹配。
这里是注册本机应用程序的指南,因为过程有些不同。 https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/application-proxy-configure-native-client-application
对于在Azure AD租户下发布的应用程序,客户端ID与应用程序ID相同。对于本机应用程序,“应用程序ID”和“客户端ID”是同义词。
答案 1 :(得分:1)
您的应用程序似乎正在使用ADAL.js库。 ADAL.js库设计用于在Web浏览器中运行的客户端JS Web应用程序中,例如“单页”应用程序。 ADAL.js使用https://login.microsoftonline.com协议向OAuth 2.0 implicit flow发送了请求。
要回答有关该错误的问题,您需要在Azure AD应用程序注册中设置重定向URI,以匹配ADAL.js配置中的重定向URI。默认情况下,ADAL.js使用应用程序的起始页作为重定向URI。您还需要在ADAL.js配置中设置应用程序的客户端ID。有关配置ADAL.js的详细信息,请参见此wiki。另外,您可以按照注册步骤以及此sample using Adal.js。