javascript - 检查登录用户 session 状态 OpenAM

标签 javascript java security agent openam

您好,我有以下案例。基于 Ajax 的 Javascript 应用程序、OpenAM 代理以及 OpenAM 和 JBoss 以及 REST java Web 服务。

如果我正确理解 OpenAM 文档,OpenAM Web 代理将充当 Web 服务器部分和 OpenAM 之间的中介。我的理解是,对于登录、注销、检查登录状态等简单服务,使用 OpenAM api 和 OpenAM 代理就足够了。例如,代理负责处理 token 并将我们重定向到登录页面并返回到请求访问的原始页面。

token 保存在 HTTPOnly cookie 中,这使得它无法访问。

同时 coockie 可以从 JBoss 服务器访问,因此理论上我可以实现根据 OpenAM 验证 token 的服务。还有注销服务。我的理解是,这样的实现将是一种黑客行为,因为首先,如果 session 无效,我们不应该最终到达 JBoss 服务器。应该由代理为我们执行此检查。

我的问题是,当我无法从浏览器(HTTPOnly cookie)访问 token 时,如何检查登录状态,而无需往返 JBoss 服务器仅获取对 cookie 的访问权限。以及如何在不再次涉及 JBoss 服务器的情况下实现注销。

最佳答案

how to check logged in status when I don|t have Access to the token from the browser (HTTPOnly cookie) without doing a roundtrip to the JBoss server only to get Access to the cookie.

如果您处于 HTTPOnly cookie 模式的客户端(浏览器)中并且想要检查 SSOToken cookie(默认名称 iPlanetDirectoryPro)的有效性,那么您可以调用 AM 服务器上的 session 端点。您不需要获取 cookie - 浏览器会将其添加到传出请求中 - 如果成功验证,它将返回 token 的详细信息。这样您就不会在客户端代码中获取 token 本身,但您可以解决它并回答您的问题。

请求:

POST /openam/json/sessions?_action=getSessionInfo HTTP/1.1
Host: myserver.com:8080
Content-Type: application/json
Cookie: iPlanetDirectoryPro=... <-- added by browser, not in code
Accept-API-Version: protocol=1.0,resource=2.0
Cache-Control: no-cache

{}

回应:

{
    "username": "demo",
    "universalId": "id=demo,ou=user,dc=openam,dc=forgerock,dc=org",
    "realm": "/",
    "latestAccessTime": "2017-09-28T20:15:17Z",
    "maxIdleExpirationTime": "2017-09-28T20:45:17Z",
    "maxSessionExpirationTime": "2017-09-28T22:15:16Z",
    "properties": {}
}

关于javascript - 检查登录用户 session 状态 OpenAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344748/

相关文章:

Java日期格式

python - 如何在Python3中只允许打开当前目录中的文件?

python-3.x - 查找或构建 python 安全分析器

javascript - 如何确定 Object3D 的宽度/高度/深度(就好像它没有旋转一样)?

javascript - 使用 Ext.create 在 ExtJS 4 GridPanel Column 中呈现动态组件

java - 如何避免 Web 服务中的类级别 @path 来处理所有 Web 服务调用

security - Brackets 网站和文本编辑器使用安全吗?

javascript - 如果对象的类型只是 "Object",如何在 DevTools 内存快照中找到特定对象?

javascript - 图表下方的对齐标签

java - 如何在 Websphere 中创建 SSL 连接