首页 > 解决方案 > IdentityServer4 endsession 重定向到帐户/注销给出 404

问题描述

我在 Azure 中通过 https url 运行 IdentityServer4,并且我正在使用带有angular-oauth2-oidc 库的 Angular CLI 项目来处理隐式流。我正在尝试设置单点注销,但它无法正常工作。

我正在调用logOut自动OAuthService​​配置(通过发现文档)在身份验证服务器上使用注销 url,即https://my-id4-server.example.com/connect/endsession使用包含 atoken_hint和 a 的查询字符串参数postLogoutUri

出于某种原因,实际行为是 IdentityServer4 将浏览器重定向(302)到 url https://my-id4-server.example.com/account/logout?logoutid=...,浏览器为此获得404。此外,如果我在单独的选项卡中打开 IdentityServer 页面,我可以看到我的会话仍然存在。

预期的行为是我的会话结束,并且我被重定向回我的 SPA。

在 ID4Server 端,我配置了:

此外,我可以在配置端点中看到endsession正确配置的.well-known端点。

在 SPA 方面,我配置了issuerredirectUriclientIdscope. 使用重定向返回登录就可以了。


底线:如果endsession端点重定向到account/logout哪个又给出 404,有什么问题?

标签: angularidentityserver4angular-oauth2-oidc

解决方案


问题是Logout(...)在 IdentityServer 方面缺少 Controller 操作。如果你没有这些,但其他一切都那里,那么你就会得到所说的行为。


推荐阅读