Azure Active Directory 登录重定向循环

20

我需要允许用户通过公司网络登录以访问内部Web应用程序。

我已按照官方文档中给出的所有步骤进行操作,并且一切正常。

然而,我在登录时遇到一个奇怪的错误,即身份验证页面每隔一天就会进入重定向循环。

目前我需要立即修复的方法是更改 web.config 文件中应用程序的应用/客户端ID

<add key="ClientId" value="Enter_the_Application_Id_here" />
<add key="redirectUri" value="Enter_the_Redirect_URL_here" />
<add key="Tenant" value="common" />
<add key="Authority" value="https://login.microsoftonline.com/{0}/v2.0" />

目前为止,我已经在Microsoft Identity平台中创建了两个不同的应用程序,而我重复使用相同的App Id(每当一个停止工作时就切换它们),只要我更改App Id,登录就开始工作。

我不确定是否遗漏了什么,但除了一些类似于https://github.com/aspnet/Security/issues/219这样的问题之外,没有找到与此完全相关的内容。根据我的理解和互联网上的建议,如果这是权限相关的问题,它应该永远不允许登录,但实际上它确实允许登录。


1
这个可能会对你有帮助:https://github.com/Sustainsys/owin-cookie-saver。 - juunas
@juunas,目前的Kentor.OwinCookieSaver版本与我的当前应用程序框架即.Net 4.5不兼容。 - Cyberpks
@TomW,当前应用程序没有登录页面。一旦用户访问根URL,他将被重定向到企业登录页面,在那里他可以检查自己的凭据,如果登录成功,就会被重定向到应用程序。 - Cyberpks
你是否可能搞错了重定向URL?这样,App 1 的登录处理会在 App 2 上进行,但由于失败,会尝试登录 App 2,Azure 会重定向回 App 1,然后再次失败... - Kiwi
@S.Walker,1)是的,我正在全面使用HTTPS。2)是的,我也在使用角色(但不得不删除集成的“rolemanager”,现在编写了自己的“rolemanager”以解决一些冲突)。3)不,返回URL只是“根”URL(不包括“Controller / View”名称)。 - Cyberpks
显示剩余6条评论
2个回答

8
原来这是与AD配置有关的问题。我进入我的Azure App Service > 设置 > 认证/授权并创建了一个新的AD应用程序,然后在我的Web应用程序中使用了此应用程序的App ID,并且现在它可以正常工作了。

如果您正在使用多个服务器,则建议使用相同的机器密钥,否则可能会遇到意外的注销。 - Umang

6
你的企业登录陷入循环似乎很奇怪,可能是因为它进入了你的应用程序,但是速度很快,你没有注意到。我之所以这样说是因为我有一个Web应用程序,也遇到过类似的循环问题。经过研究,发现该过程如下:
1. 你的应用程序想要登录, 2. 转到企业登录并完成登录过程, 3. 然后拿着令牌返回应用程序, 4. 再次返回企业登录(不确定原因), 5. 最后拿着令牌返回应用程序,此时你已成功登录。
但是如果你在第三步检查登录状态,它还不知道自己已经登录,所以会回到第一步,导致陷入循环。
如果你的登录序列在应用程序启动时自动触发,那么可能与我的情况相同。
问候 Glenn

完全面对相同的情况,在 Azure 认证后导航到我的应用程序的登录页面,然后自动登录到我的应用程序并导航到仪表板页面。使用 https://github.com/Sustainsys/owin-cookie-saver 解决此问题。 - Umer Qureshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接