通过 CAS REST 协议进行身份验证时是否可以生成 TGT cookie(SSO 会话)?

Possible to generate a TGT cookie (SSO session) when authenticating via CAS REST Protocol?

我们有一个现有的 CAS 6.0.3 服务器,用于跨多个使用 CAS 协议的应用程序的 SSO。

我通读了文档,看起来 CAS 在验证后创建了一个 TGT cookie(加密并签名),它允许用户访问其他应用程序(CAS 客户端)而无需再次登录。

最近,我们添加了一个选项,可以绕过 CAS 登录页面,使用 CAS REST 协议对其中一个应用程序的用户进行身份验证(生成 TGT,然后是服务票证)。但是,该用户无法访问其他应用程序。

有没有办法在通过 CAS REST 协议进行身份验证时生成 SSO 会话(TGT cookie)?

I read through the docs, and it looks like CAS creates a TGT cookie (encrypted and signed) after authenticating, and that allows user to access the other applications (CAS clients) without having to sign in again.

是的。

Is there a way to generate a SSO session (TGT cookie) when authenticating via CAS REST protocol?

没有。 REST 是无状态的。如果您使用 REST,则意味着您希望拥有自己的 SSO 管理工具,该工具主要使用 CAS 作为身份验证引擎而不是 SSO 解决方案。因此,您有责任管理自己的 SSO 会话。

其他人已经诉诸于各种变化和 hacks 这些年来所有这些都破坏了一些东西。有很多方法可以解决这个问题,例如您可以从 CAS 借用创建该 cookie 的代码,尝试自己创建 cookie,并 configure/tweak 它的属性和路径,以便 CAS 本身可以理解它。随着时间的推移,所有这些都会导致维护头痛、过早衰老和 DNA 丢失。