问题标签 [pac4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
29 浏览

amazon-cognito - Cognito 外部 IdP 登录到期

您好,我们有一个使用 pac4j 的 java 应用程序来处理使用 AWS Cognito 的 OIDC 登录。

使用 AWS Cognito 从一些外部 IdP 登录时,似乎有 5 分钟的限制才能完成所有操作,否则会出现错误(请参阅本页注释https://docs.amazonaws.cn/en_us/cognito/latest /developerguide/cognito-user-pools-oidc-flow.html)。

我们遇到了这个问题,无法从中恢复。进一步的调查表明,pac4j 还向 Cognito 发送了一个状态和一个 nonce 作为回调 URL 中的参数,以便 pac4j 可以验证响应来自同一请求。

问题是,当登录过程花费超过 5 分钟并且 Cognito 显示错误时,如果用户再次登录,外部 IdP 将立即响应(因为用户之前成功登录),因此 Cognito 也会重定向到回调 URL 没有任何问题。但是,这次 Cognito 以某种方式移除了回调 URL 中的 state 和 nonce 参数,而 pac4j 将失败并显示org.pac4j.core.exception.TechnicalException: Missing state parameter.

关于如何解决这个问题的任何建议?Cognito 中是否有可以延长 5 分钟限制的配置?或者我们可以绕过 pac4j 验证状态和随机数吗?如果我们绕过它,从安全的角度来看会有什么影响?

谢谢你。

0 投票
0 回答
30 浏览

single-sign-on - 使用 Pac4j 的多租户应用程序的 SSO SAML

我想为我的多租户应用程序配置 SAML SSO。到目前为止,我发现我们可以让多个 SAML2Clients 具有单独的回调 URL,我们可以在请求中发送这些 URL,以便 IDP 将响应发布到调用正确租户的端点。

为此,我看到有人配置多个租户,例如:tenant1.myapp.com/tenant2.myapp.com/,这将有助于检测用户想要访问哪个租户。

但就我而言,无法检测用户想要访问哪些租户。我目前在登录页面上输入用户名、密码和组织名称。所以在 SAML 请求之前没有办法知道用户想去哪里。

有没有其他型号可以满足我的需要?我正在考虑在 IDP 级别设置一个附加属性,它会告诉 SP 用户可以访问哪个组织,但不确定这是否是个好主意。

0 投票
0 回答
20 浏览

saml-2.0 - Pac4j - saml 提示 SHA1withRSA MessageDigest 不可用 SHA1withRSA MessageDigest 不可用

Shrio + buji-pac4J + PAC4J-samL用于 SSO。以下是依赖版本

https://i.stack.imgur.com/fFdcL.png
pac4j-saml配置代码在这里
https://i.stack.imgur.com/ZZKTn.png
metadata.xml部分代码
https://i.stack.imgur.com/ oHq8O.jpg
部分错误信息

配置元数据文件后访问单点登录地址时,提示“SHA1withRSA MessageDigest not available”。
idp提供了元数据签名算法http://www.w3.org/2000/09/xmldsig#rsa-sha1,别名是sha1withrsa,但是pac4rendering saml解析sha1withrsa使用的是APIMessageDigest.getInstance("SHA1withRSA");但是MessageDigest只支持 MD2,MD5,SHA-1,SHA-256,SHA-384,SHA-512算法。pac4J-SAML的签名算法有什么配置或方法支持SHA1withRSA吗?
我尝试了以下方案:
1.升级 pac4J-SAML 和 Buji-pac4j,结果:SHA1withRSA MessageDigest not available
2.将 BouncyCastle 添加到 sun.security 结果:3.SHA1withRSA MessageDigest not available
将 SHA1WITHRSA 算法更改为另一种可以解析的算法,例如 SHA1 结果:证书验证失败
困扰我好几天了,你能帮帮我吗?