标签: cas

从CAS获取更多属性而不仅仅是用户ID

我正在使用带有JDBC身份验证处理程序的CAS,并且想知道在成功进行身份验证后,是否可以获取主体对象的其他属性(例如firstname,lastname),而不仅仅是CAS中的用户名?

cas

14
推荐指数
2
解决办法
2万
查看次数

单点登录(SSO):如何使用Active Directory作为CAS服务的身份验证方法?

我正在开发Liferay的门户网站,并希望在那里应用单点登录机制(SSO).我正在使用Jasig CAS对我的多个Web应用程序进行集中身份验证.到目前为止,我知道我可以使用CAS作为身份验证方法,但下一步是添加更多智能并从Active Directory服务器请求身份验证.

这可以通过使用AD作为进行身份验证的"数据库"来实现,但我是新手,并且不知道如何使用Jasig CAS.

有任何线索如何完成这项任务?

cas active-directory single-sign-on

12
推荐指数
1
解决办法
3万
查看次数

JASIG CAS登录没有CAS登录界面

我们正在尝试将CAS服务器用于我们现有的基于Web的应用程序的SSO.我们的目标是

  • 跨越各种应用程序(包括跨域)的Achive SSO.
  • 当重定向到CAS Server登录页面时,为不同的应用程序定制登录(在UI术语中)页面.
  • 能够在不进入CAS登录页面的情况下进行登录,原因是"小登录部分"嵌入在页面本身中,并且用户不会被重定向到CAS登录页面以获得更好的可用性.

我们完成了第一个和第二个目标.但是遇到第三个问题.

对于此功能,我们尝试复制与第二个目标相同的操作,唯一的区别是从非CAS登录页面提交/发布数据(凭据,登录票证等).

  • 我们不能使用iframe在小部分中显示CAS登录页面,这很容易受到浏览器兼容性问题的影响.
  • 我们不能使用ajax来使用CAS api来获取登录票并进行HTTP发布(跨域问题)
  • 我们所做的是:通过在服务器端执行HTTP发布来检索非cas登录页面的加载上的loginticket和执行ID.当我们发布用户名/密码以及loginticket和execId时,CAS服务器而不是接受发布数据会将用户重定向到CAS登录页面,但是返回浏览器并再次提交数据工作正常.原因是CAS和浏览器之间没有建立jsession,因此CAS拒绝任何发布数据.我们可以使用CAS restAPI,但它只会登录用户,无法帮助完成SSO.

关于我们如何处理这个问题的任何想法?

谢谢,Pratik

java cas jasig

12
推荐指数
1
解决办法
8271
查看次数

Angular PUT请求通过SSL禁止

我使用Angular 5作为Spring Boot REST服务器的前端.如果不使用SSL,一切都正常.当我切换到SSL时,最终我得到了一切工作.它适用于GET请求,但到目前为止,我无法获得PUT请求.

我的猜测是,这是某种CORS问题,因为GET是一个简单的请求而PUT显然不是(CORS参考),但我无法弄清楚如何解决问题.

在我的Spring Boot Rest控制器上,我有注释@CrossOrigin("*"),所以我不认为这是问题,但我不确定.

另一个难题是通过CAS服务器处理身份验证.我已将以下配置添加到CAS属性中.这些是允许GET请求工作的最后一块,但我不确定要对它们进行哪些更改(如果有的话)来处理PUT请求:

cas.httpWebRequest.cors.enabled=true
cas.httpWebRequest.cors.allowOrigins[0]=*
cas.httpWebRequest.cors.allowMethods[0]=*
cas.httpWebRequest.cors.allowHeaders[0]=*
Run Code Online (Sandbox Code Playgroud)

这是我的请求标头和响应:

请求:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
Content-Length: 1975
Content-Type: application/json
Cookie: JSESSIONID=117D9345E985D824E46…BF32; io=gLhCcBoZrfNcppioAAAB
Host: localhost:4200
Referer: https://localhost:4200/sales/proposals/dashboard
User-Agent: Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/57.0
Run Code Online (Sandbox Code Playgroud)

回应(状态代码 - 403禁止):

access-control-allow-origin: *
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-length: 56
content-type: application/json;charset=UTF-8
date: Wed, 03 Jan 2018 16:39:14 GMT
expires: 0
pragma: no-cache
strict-transport-security: max-age=31536000 ; includeSubDomains
x-content-type-options: …
Run Code Online (Sandbox Code Playgroud)

ssl cas spring-boot angular

12
推荐指数
1
解决办法
1787
查看次数

有条件地应用注释吗?

在我的java-play应用程序中,我@RequiresAuthentication(clientName = "CasClient")在控制器中有注释.

我只想在生产环境中验证用户身份.

如何有条件地应用注释?

如果我接近身份验证的方式是错误的,那么只在java play应用程序中生成CAS身份验证的常规方法是什么?

java cas annotations playframework-2.3

11
推荐指数
1
解决办法
1803
查看次数

PKIX路径构建失败,但证书是cacerts

我有这个问题也在这里描述.问题是我创建了一个证书并将其添加到tomcat的密钥库中,然后我将其复制到cacerts信任库.但是,不知怎的,我仍然得到这个错误.

我做了什么:

1)keytool -genkey -alias cas -keyalg RSA -keystore cas.keystore -storepass changeit

2)keytool -exportcert -alias cas -file cas.crt -keystore cas.keystore

步骤2)因为我想把证书放在我的tomcat密钥库中 cacerts

3)keytool -import -alias cas -file cas.crt -keystore"C:\ Program Files\Java\jdk1.8.0_77\jre\lib\security\cacerts"

4)keytool -import -alias cas -file"C:\ Program Files\Java\jdk1.8.0_7\jre\bin\cas.crt"-keystore"D:\ portal\apache-tomcat-8.0.3\conf\portal.keystore"

所以现在使用第3步和第4步,我在tomcat密钥库和信任库中添加了证书cacerts.

现在我可以列出我的信任和密钥库

使用此命令..

keytool -list -v -keystore"C:\ Program Files\Java\jdk1.8.0_77\jre\lib\security\cacerts"-alias cas

......我明白了:

Keystore-Kennwort eingeben:
Aliasname: cas
Erstellungsdatum: 09.09.2016
Eintragstyp: trustedCertEntry

Eigentümer: CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=xxx
Aussteller: CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=xxx
Seriennummer: xxx …
Run Code Online (Sandbox Code Playgroud)

java ssl https cas

11
推荐指数
1
解决办法
6350
查看次数

Spring Security和CAS集成

任何人都可以粘贴简单的步骤,将Spring安全性和CAS集成到此处进行单点登录和单点注销.注意我不想要任何基于角色的访问.我有一个已经与spring security集成的Web应用程序.现在我试图用CAS执行SSO,但是我收到了这个错误 sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

这是我目前的spring security.xml

       <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:sec="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.1.xsd
        ">

<sec:http entry-point-ref="casProcessingFilterEntryPoint" >
        <sec:intercept-url pattern="/**" access="ROLE_USER" />
        <sec:logout logout-success-url="/loggedout.jsp" invalidate-session="true"/>
        <sec:custom-filter ref="casAuthenticationFilter" after="CAS_FILTER"/>
    </sec:http>

    <sec:authentication-manager alias="authenticationManager">
        <sec:authentication-provider ref="casAuthenticationProvider"/>
    </sec:authentication-manager>

<bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="authenticationFailureHandler">
            <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
                <property name="defaultFailureUrl" value="/casfailed.jsp"/>
            </bean>
        </property>
        <property name="authenticationSuccessHandler">
            <bean …
Run Code Online (Sandbox Code Playgroud)

java cas spring-security

10
推荐指数
1
解决办法
2万
查看次数

CAS与SAML之间有什么关系?

我知道CAS和SAML是用于单点签名的不同协议,但让我感到困惑的是"CAS具有SAML实现"的文章.

CAS和SAML是不是可以实现单点登录的不同方式?

可以说,客户的企业有SAML服务器,但第三方网站称他们支持基于CAS的SSO.在这种情况下,最终用户最初会登录到企业系统,当访问第三方网站时,它是否会连接到企业SAML服务器以寻找SAML断言?


  1. CAS和SAML之间究竟有什么关系?

  2. CAS在上述设置中究竟在哪里?

cas saml single-sign-on saml-2.0

10
推荐指数
2
解决办法
9145
查看次数

使用Java REST Client示例来访问CAS REST API

我按照教程在本地CAS服务器上启用REST服务.

但是没有Java示例

"Java REST客户端示例

我们需要一个真实的,有效的例子,前一个是没用的.很多人都通过电子邮件告诉我它不能正常工作,我确认它不起作用."

我能够找到这个,但不幸的是,这对我不起作用.

任何指针/链接?非常感激.

rest cas jasig

9
推荐指数
2
解决办法
2万
查看次数

多个应用程序上的SSO和REST Api身份验证

在我们公司,我们部署了多个使用CAS服务器通过SSO保护的Web应用程序.用户请求应用程序的URL,如果尚未经过身份验证,则会重定向到CAS服务器登录页面.在成功验证的情况下,用户将被重定向回最初请求的URL.常见的工作流程,完美运作

但是,我们还希望使用CAS Server保护我们的REST Apis.我们的首选流程如下:

  • 用户为应用程序REST Api创建令牌
  • 使用此令牌,用户可以请求临时访问令牌(如CAS令牌)
  • 在对REST Api的每个请求中,用户将临时访问令牌包括为HTTP头或请求参数
  • REST Api应用程序检查提供的临时令牌对CAS服务器的有效性

听起来像OA服务器,CAS服务器确实支持,除了不要求用户随时提供凭据,但我们也想为服务提供身份验证,即调用我们的API的其他应用程序:

  • 开发人员要求提供REST Api令牌(与CAS用户关联)
  • 应用程序使用Api令牌请求临时访问令牌
  • 对Api的进一步请求包括临时访问令牌,作为HTTP头或请求参数
  • REST Api应用程序针对CAS服务器检查临时访问令牌的有效性

我们希望我们的REST Api应用程序对用户凭据一无所知,甚至无法访问用户数据库,这对于使用该应用程序的人来说效果很好(重定向到CAS登录页面).

我不知道如何在不必大量定制CAS服务器的情况下实现此流程并自行实现此行为.

谷歌使用JWT for OAuth 2.0用于服务器到服务器应用程序,这似乎是要走的路.

如果有人能提供一些提示或替代方案(对CAS服务器),我将不胜感激.也许有人已经使用CAS服务器实现了这种模式,并且可以提供有关此问题的一些信息.

最诚挚的问候,Marco

spring cas oauth-2.0 jwt rest-security

9
推荐指数
1
解决办法
1万
查看次数