问题标签 [apereo]
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.
single-sign-on - Apereo CAS分两步加载用户属性并存储起来进行属性发布
在我们的 Apereo CAS 5.3.8 保护应用程序中,我们需要在登录后显示一个屏幕,该屏幕显示一个下拉菜单,其中包含一些用户必须从中选择一个选项的值。仅在满足某些条件时才需要显示屏幕,具体取决于某些用户属性。在某些情况下,我们需要的所有属性都在登录后加载,但在其他情况下,我们需要根据用户的选择加载其他属性。然后必须将用户选择转换为我们希望存储在 CAS 断言中的其他一些用户属性,以便客户端应用程序可以访问用户属性并根据这些属性做出决策。
为了显示这个额外的屏幕,我们创建了一个自定义的多因素提供程序。加载的属性被传递给一个PrincipalFactory
实现。
除了用户下拉选择之后发生的部分之外,几乎所有东西都可以正常工作。问题是如何分两步加载主要属性?我尝试更新自定义操作中的principal
andauthentication
对象,该操作在用户选择后触发,但它不起作用,它始终保留旧主体,并在登录后立即加载属性。
我认为问题可能是由于属性被传递给 aPrincipalFactory
并且可能它们只被写入一次并且变得不可变。我尝试使用 aAuthenticationTransactionManager
和 aAuthenticationResultBuilder
但无法添加额外的计算属性。
任何指导将不胜感激。
json - 无法使用 pac4j 让通用 OAuth2 客户端与 CAS 服务器一起工作
我正在使用 CAS 服务器中的委托身份验证将登录与 Instagram 集成。我已经在 cas.properties 文件中配置了所有必需的属性,并为它创建了一个服务注册 JSON 文件。当我登录 Instagram 帐户时,我被重定向回 CAS 登录页面,但没有任何反应。
我尝试使用服务注册表 JSON 文件以及 cas.properties 中的不同属性进行试验
cas.properties 文件包含以下内容
服务 JSON 文件如下:
我无法达到 CAS 能够获取访问令牌并使用配置文件 URL 获取用户详细信息的地步。
相反,我收到以下错误:
如果我尝试再次尝试并使用 Instagram 登录 CAS,则会收到不同的错误:
为了能够使用 Instagram 成功将用户登录到 CAS 服务器,我需要做更多或更改什么?
2019 年 8 月 16 日更新
通过修补其中一个模块,我能够让 PAC4J 为 Instagram 工作。我必须手动将访问令牌添加到被调用的最终配置文件 url,并将身份验证方法从 basicAuth 更改为 requestBody。
但是,现在当 Instagram 将我重定向回 CAS 服务器时,在登录后,我应该被重定向到服务 URL。相反,我被重定向到 CAS 登录成功页面,并显示以下消息:
您,tridhya123,已成功登录中央身份验证服务。但是,您看到此页面是因为 CAS 不知道您的目标目的地以及如何到达那里。再次检查身份验证请求,并确保指定了经过 CAS 授权和注册的目标服务/应用程序。
下面是显示从 Instagram 到 CAS 的登录流程的调试日志文件:
cas - CAS 覆盖:如何减小 WAR 大小
我正在将 CAS 从 3.x 升级到 5.x。CAS Overlay 安装:构建一个大约 120 MB 的 war 文件,大约是 3.x 的 5 倍。
如何从 war 文件中跳过未使用的模块/jar 以减少文件大小和部署时间?我只需要针对数据库和 AD/LDAP 进行身份验证。
kerberos - 带有 SPNEGO 的 CAS 总是回退到 NTLM
我们已经在我们的“内部”网络中使用了 CAS,并且在一个站点中使用了 Kerberos,并且它可以正常工作。
我们现在想要配置我们自己的第二个站点,但配置稍有不同(DNS 名称/SPN)。
我试着解释一下..首先是非工作配置,然后是工作配置,有一些小的变化..
我们尝试使用 SPNEGO 运行 CAS。
我们可以在 中使用kinit
(linux 命令)cas.keytab
并从 中获取有效的 Kerberos 票证kdc of REALM2.DE
,但它不适用于 CAS。CAS 总是回退到 NTLM。我们需要做什么,它会起作用吗?也许他使用了来自 keytab 的错误 SPN 条目?我无法得到它。
- Ubuntu 16 LTS 和 Ubuntu 18 LTS
- CAS:5.2.7
- REALM1 = Windows Active Directory(有用户)
- REALM2 = MIT Linux Kerberos Realm(有 CAS 服务器)
- acme.de = 官方 SSL 证书的互联网域
- REALM1 和 REALM2 之间的 REALM 信任工作。
不工作配置的描述:
SPN 就像HTTP/cas.acme.de@REALM2.DE
/etc/krb5.conf:
cas.properties:
/etc/cas/login.conf:
cas.keytab:
工作配置说明:
只是 SPN 和 Internet DNS 名称已更改
SPN 就像HTTP/cast.realm2.de@REALM2.DE
/etc/krb5.conf:
cas.properties:
/etc/cas/login.conf:
cast.keytab:
我们已经尝试过自己调试,但我们无法得到它..
我们希望有人可以帮助我们解决这个问题。
如果您需要任何进一步的信息,请告诉我们
谢谢!
single-sign-on - 设置与 CAS 服务器集成的 Apereo Cas Management
我想安装 Apero Cas Management (6.0 版)并将其与 Cas Server(6.0 版)集成。
我已按照以下步骤安装:
第 1 步:我安装了 Cas Server
我用 REST API 检查了它。有效。
我的服务器停留在http://203.162.141.7:8080
这是我的 Cas 服务器的配置。我把这个配置放在/etc/cas/config
. 这是我的文件 cas.properties 文件
第 2 步:我安装了 Cas-management-overlay
我把我的 cas-management-overlay 的配置文件/etc/cas/config
也放了。这是我的 management.properties 文件
我的这里是users.json
文件
然后我跑了./build.sh
,它告诉我
最后,我访问此链接以打开 cas-management http://203.162.141.7:8088/cas-management
,但它重定向到此 urlhttp://203.162.141.7:8080/cas/login?service=http%3A%2F%2F203.162.141.7%3A8088%2Fcas-management%2F
并在下面显示此错误
我不知道我哪里出错了。
keycloak - CAS 6.1 - Pac4J 的状态参数为空
我已经使用 LDAP/AD 和数据库设置了 CAS,它可以工作。现在我想添加 Keycloak,但我得到了一个关于状态的异常。
为了测试我添加了谷歌,但出现了类似的问题。
我可以在日志中看到 keyloak/google 的成功身份验证,这意味着 keycloak/google 原则上可以工作。问题接缝是,在重定向回 CAS 之后,会话已经结束。上下文中的会话存储是空的。因此,状态为空,无法匹配到 TST。当我withState = false
在 pac4j 中设置时,一切正常,但我想使用状态来保证安全。
在pac4j google group 的这个问题中,有人遇到了同样的问题,因为他没有使用标准端口,我也这样做了。但是更改为 80/443 并没有为我解决问题。我在本地主机上使用自签名 ssl 证书在 tomcat 9 中运行。
还有其他建议吗?
编辑
我几乎可以肯定,问题出在外部tomcat上。但到目前为止,我还没有找到关于如何正确设置外部 tomcat 的工作文档。打开以征求建议。
更新
Seams
就像cas-server-support-oauth-webflow
破坏了 pac4j webflow。如果我删除此依赖项,它将起作用。不知道这是一个错误还是应该以这种方式工作。如果没有 OAuth-Webflow,我将无法获得 Ldap/数据库的 access_token。
oauth-2.0 - apereo CAS 服务器中 accessToken url 的错误请求
我想将我的 spring 云网关应用程序与apereo CAS
服务器(在 8443 端口上运行)集成,并将服务器配置CAS
为Oauth2
授权服务器。这是流程;
我请求网关
它与授权服务器交互(
CAS
此处)在交互之前,它需要在那里登录。
我使用默认
cas-overlay-template
凭据成功登录。(casuser:Mellon
)cas
login/oauth2/code/login-client?code=OC-3-TURQDNdC4jXulPgK7ipJSzfoBLi-iaSv&state=aitARK42e0zx2iTFkeZxoRM2rLehXSex6gTIfZOHlwY%3D
使用url重定向到网关。[invalid_grant]
网关发生错误。
我检查Spring Cloud Gateway
跟踪日志并在获取访问令牌步骤时发生错误。
显然,由于请求错误,它无法access_token
请求。但是,我找不到有效的参数是什么。而且,我不手动请求,而是在幕后自动发生。我的错误在哪里?感谢您的帮助。
这是我的spring cloud gateway
配置:
cas oauth2
注册服务:
我使用的资源:
https://apereo.github.io/2019/02/19/cas61-as-oauth-authz-server/
https://apereo.github.io/cas/5.3.x/installation/OAuth-OpenId-Authentication.html#responsegrant-types
cas - Apereo CAS中如何通过api取票?
我是CAS的初学者。我想通过 OpenAPI 获取票,我可以提供用户名和密码(可以加密)。但我不知道如何实现?谢谢你的建议!