首页 > 解决方案 > 在结束会话 URI 中使用 IP 地址时,OpenId Connect 用户未注销(发现文档 end_session_endpoint)。使用 Gluu 身份服务器

问题描述

当我在 .Net 客户端应用程序中单击注销时,如果结束会话端点(发现文档中的“end_session_endpoint”)使用域名,我将成功注销。例如,框架使用以下 url 重定向到身份服务器 (Gluu),并完美地注销了应用程序。

https://my-gluu-server.com/oxauth/seam/resource/restv1/oxauth/end_session?
post_logout_redirect_uri=https%3A%2F%2Flocalhost%3A44300%2Fsignout-callback-oidc
&id_token_hint=<MY JWT...>
&state=CfDJ8AjASIR7C_....
&x-client-SKU=ID_NETSTANDARD2_0
&x-client-ver=5.5.0.00

但是当我将其更改为使用 IP 地址时(因为在我们打算托管它的地方无法解析域名),它无法注销。当我单击一个私有页面时,它会返回到 Gluu 服务器并且不需要登录(因为我没有注销),然后它会将我重定向回 .Net 客户端应用程序。

https://10.10.10.10/oxauth/seam/resource/restv1/oxauth/end_session?
post_logout_redirect_uri=https%3A%2F%2Flocalhost%3A44300%2Fsignout-callback-oidc
&id_token_hint=<MY JWT...>
&state=CfDJ8AjASIR7C_....
&x-client-SKU=ID_NETSTANDARD2_0
&x-client-ver=5.5.0.0

Gluu 或 OIDC 流程是否检查 url(发行者?),如果是,有没有办法解决这个问题,以便 IP 地址和域名都可以被识别为有效?

谢谢。

标签: c#.net-coreopenid-connectgluu

解决方案


您不能对 IP 地址使用 HTTPS:

https://10.10.10.10

使用 HTTPS 时必须始终使用域,否则必须使用 HTTP。但是使用 HTTP 会给您带来其他问题,尤其是浏览器会拒绝的 cookie。因此,获取客户端信任的 10.10.10.10 域。


推荐阅读