c# - 在结束会话 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 地址和域名都可以被识别为有效?
谢谢。
解决方案
您不能对 IP 地址使用 HTTPS:
https://10.10.10.10
使用 HTTPS 时必须始终使用域,否则必须使用 HTTP。但是使用 HTTP 会给您带来其他问题,尤其是浏览器会拒绝的 cookie。因此,获取客户端信任的 10.10.10.10 域。
推荐阅读
- php - 从php中的另一个页面获取变量
- java - org.sonarsource.sonarqube:sonar-check-api:jar:7.0-SNAPSHOT 的 POM 丢失,没有可用的依赖信息
- angular - 为什么这个浅拷贝发生在角度 5 的两个不同对象之间?
- javascript - TypeError:SimpleSchema 不是 Meteor 1.6 项目中的构造函数
- python - 有没有办法将 geotif 作为输入数据放入张量流或 python 中的 keras 中?
- python - 如何使用 Python TypeError 通过 Elasticsearch 更新或插入?
- javascript - 在javascript中找到html元素的结束标记
- vue.js - 将 json 传递给其他 vue 组件
- ios - 即使应用程序终止,也能快速显示本地通知
- ios - 如何在 swift 4.1 和 xcode 9.3 中使用 JSONDecoder 解码嵌套的 JSON 数组和对象?