首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能否/如何在不同的CAS-服务上共享身份验证/SSO?

我能否/如何在不同的CAS-服务上共享身份验证/SSO?
EN

Stack Overflow用户
提问于 2019-05-14 21:03:47
回答 1查看 348关注 0票数 0

我有两个CAS-服务(CAS 6.0.3)注册(通过JSON)与不同的serviceIds和AuthenticationHandlers等。我可以再次分别对这两个服务进行身份验证(例如cas/login?service=http.service 1)。但是,当我尝试访问第二个服务(cas/login? Service =http. service 2)时,在再次验证其他服务之后,我会得到以下错误消息:

票..。与提供的服务不匹配。最初的服务是..。提供的服务是.

所有“.”匹配/是同一个服务-ID-字符串。错误消息的内部代码für是"INVALID_SERVICE“

CAS认为“好吧,您已经登录了,我可以直接将您转到您的服务”。它甚至制作了一个SessionToken进行验证,然后重定向。但是,当第二个服务验证票证时,错误消息就会出现。

是否允许Service1和Service2在登录Service1后使用相同的"SSO上下文“/CAS-会话/允许登录在service2中?对于这个主题,我可以在服务-JSON配置中使用RegisteredServiceProperty吗?

我已经阅读了这个页面上的所有内容:https://apereo.github.io/cas/6.0.x/index.html,甚至试图搜索源代码以获得这样的验证选项。

这是我的日志中启用了“跟踪”-Level的最后一行:

代码语言:javascript
复制
=============================================================
WHO: myuser
WHAT: ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D
ACTION: SERVICE_TICKET_VALIDATE_SUCCESS
APPLICATION: CAS
WHEN: Wed May 15 11:02:14 CEST 2019
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1
=============================================================


2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.AbstractCasProtocolValidationSpecification] - <Is validation specification set to enforce [renew] protocol behavior? [no]. Is assertion issued from a new login? [no]>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.Cas20WithoutProxyingValidationSpecification] - <Number of chained authentications in the assertion [1]>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.validation.AbstractCasProtocolValidationSpecification] - <Validation specification is satisfied by the produced assertion>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.services.AbstractServicesManager] - <No environments are assigned to service [myservice]>
2019-05-15 11:02:14,965 DEBUG [org.apereo.cas.validation.RegisteredServiceRequiredHandlersServiceTicketValidationAuthorizer] - <Evaluating service [AbstractWebApplicationService(id=https://blub.blub, originalUrl=https://blub.blub, artifactId=ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D, principal=null, source=service, loggedOutAlready=false, format=XML, attributes={})] to ensure required authentication handlers can satisfy assertion>
2019-05-15 11:02:14,965 TRACE [org.apereo.cas.util.CollectionUtils] - <Converting multi-valued element [[MailboxAuthenticationHandler]]>
2019-05-15 11:02:14,966 TRACE [org.apereo.cas.web.view.CasReloadableMessageBundle] - <Examining language bundle [classpath:custom_messages_de] for the code [INVALID_SERVICE]>
2019-05-15 11:02:14,966 TRACE [org.apereo.cas.web.view.CasReloadableMessageBundle] - <Examining language bundle [classpath:messages_de] for the code [INVALID_SERVICE]>

验证-响应是:(错误消息是德语的,但它是相同的/ "INVALID_SERVICE"-error):

代码语言:javascript
复制
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
    <cas:authenticationFailure code="INVALID_SERVICE">Ticket &#39;ST-2-tNnqqJfwFeSSAqaQf-LBTF7AvsMLAPTOP-3DHMD58D&#39; passt nicht zum angegebenen Service. Der urspr&amp;uuml;ngliche Service war &#39;https://blub.blub&#39; und der &amp;uuml;bermittelte Service war &#39;https://blub.blub&#39;.</cas:authenticationFailure>
</cas:serviceResponse>
EN

回答 1

Stack Overflow用户

发布于 2019-05-15 12:32:54

我找到了这种行为的原因。即使在这些自定义处理程序的内部具有相同的代码/属性时,也无法在不同的服务上使用不同的AuthenticationHandler。

如果"CAS“在本例中显示更精确的错误消息(在日志中),或者在某个地方有文档记录,这将是非常好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56138577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档