标签: cas

使用CAS或OAuth进行SSO?

我想知道是否应该使用CAS协议或OAuth +某些身份验证提供程序进行单点登录.

示例场景:

  1. 用户尝试访问受保护资源,但未经过身份验证.
  2. 应用程序将用户重定向到SSO服务器.
  3. 如果通过身份验证,则用户从SSO服务器获取令牌.
  4. SSO重定向到原始应用程序.
  5. 原始应用程序根据SSO服务器检查令牌.
  6. 如果令牌没问题,将允许访问,并且应用程序知道用户ID.
  7. 用户执行注销并同时从所有连接的应用程序注销(单点注销).

据我所知,这正是CAS发明的.CAS客户端必须实现CAS协议才能使用身份验证服务.现在我想知道在客户(消费者)网站上使用CAS或OAuth.OAuth是CAS的那部分的替代品吗?OAuth作为新的事实上的标准应该优先考虑吗?是否有一个易于使用的(不是Sun的OpenSSO!)更换为CAS支持不同的方法,如用户名/密码,OpenID的,TLS certifactes认证部...?

语境:

  • 不同的应用程序应该依赖于SSO服务器的身份验证,并且应该使用类似会话的东西.
  • 应用程序可以是GUI Web应用程序或(REST)服务.
  • SSO服务器必须提供用户标识,这是从中央用户信息存储获取有关用户的更多信息(如角色,电子邮件等)所必需的.
  • 单签出应该是可能的.
  • 大多数客户端都是用Java或PHP编写的.

我刚刚发现WRAP,它可能成为OAuth的继任者.这是微软,谷歌和雅虎指定的新协议.

附录

我了解到OAuth不是为验证而设计的,即使它可用于实现SSO,但只能与OpenID等SSO服务一起使用.

OpenID在我看来是"新CAS".CAS具有OpenID未命中的一些功能(如单点注销),但在特定场景中添加缺失部分并不困难.我认为OpenID已被广泛接受,最好将OpenID集成到应用程序或应用程序服务器中.我知道CAS也支持OpenID,但我认为CAS对OpenID来说是可有可无的.

security cas oauth single-sign-on

177
推荐指数
5
解决办法
7万
查看次数

CAS与SAML与OAuth2相比

在你没有做任何作业的情况下让我问过于基本的问题之前,我想说我一直在做很多关于这些主题的阅读,但我仍然感到困惑.

我的需求似乎很简单.在我的公司,我们有一堆Ruby on Rails应用程序.我想构建一个所有这些应用程序都应该使用的SSO身份验证服务.

我试着做一些关于如何做到这一点的研究CAS,SAML并且阅读了OAuth2.(我知道OAuth中的"Auth"代表授权,而不是身份验证,但我阅读了足够多的文章,说明如何使用OAuth进行身份验证 - 就是其中之一.)

有人能用简单的语言告诉我这三个是什么吗?他们是替代品(竞争)吗?比较它们甚至是正确的吗?

而且有很多宝石似乎都在说非常相似的东西:

我只想要一个单独的Rails应用程序来处理我的其他Rails应用程序的所有身份验证.

注意:我不想让用户使用他们的Google/Facebook帐户登录.我们的用户已在我们的网站上拥有帐户.我希望他们能够使用该帐户登录一次,并且无需再次登录即可访问我们的所有应用程序.在任何应用中注销都应该在所有应用中签名.

UPDATE

我遇到过这两个OAuth解决方案:

他们似乎在描述与我想要的非常相似的东西.但我还没有找到任何指南/博客文章/教程,展示如何使用SAML/CAS执行此操作.

建议欢迎.

更新2

关于我们用例的更多细节.

我们没有任何现有的SAML架构.主要是我们的用户(直接在我们的网站上注册)将访问我们的所有应用程序.将来,我们可能会有第三方(合作伙伴)公司调用我们的API.我们也可能有来自这些第三方(合作伙伴)公司(在其网站上注册)访问我们的应用程序的用户.

cas ruby-on-rails saml single-sign-on oauth-2.0

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

与Liferay一起去或不去?什么是好的,坏的和丑的?

我们正在为我们正在寻求构建的新Web事物评估几种解决方案.它有几个方面,包括用户管理,内容管理,活动,社区和金融交易.

我们正在寻找自己的框架,使用Joomla + Vaadin + CAS(仅举几例)来DIY,但我想知道我们是否应该简单地采用Liferay门户进行一站式购物?

我一直在寻找推荐书,并没有提出太多建议.我很欣赏任何使用Liferay(或选择不参加)的人,他们会分享它解决(或不解决)的技术障碍,以及可能创造的其他技术障碍.

谢谢!

java joomla cas liferay vaadin

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

在django中使用哪种CAS实现?

我应该使用哪种CAS实现来启用CAS单点登录到我的django应用程序(trusing指定的CAS服务器,我对创建CAS提供程序不感兴趣)?我能找到的是以下内容:

我之前使用过django-cas,似乎有效,但似乎有点被遗弃?django-cas-consumer至少似乎有更近期的活动.

每种实施的实际利弊是什么?我应该使用其他实现吗?

python authentication django cas single-sign-on

24
推荐指数
3
解决办法
8679
查看次数

简单的SSO - 使用自定义身份验证 - CAS还是某些Oauth或openid服务器?

我想更多地了解解决单点登录的不同方法及其优缺点.您是否使用过一个特定的解决方案,告诉我它有什么好处,并告诉我有哪些限制或次优部分.

以下是我想知道或不明白的细节.

SSO是一个巨大的主题,如维基百科中所列.我学的越多,我的问题就越多.

首先,我不了解CAS的令牌验证的必要性,它有什么用?

它更安全吗?我猜它很容易受到像中国人那样的中间人攻击.客户还应该使用ssl吗?

让我们变得真实,这是我们的需求:如果已经在我们的某个应用程序中登录,则自动识别/登录用户.

  • my-php-app.com
  • my-java-app.com
  • my-ruby-app.com

(我们有很多用不同语言编写的webapps)

我们希望(保留)我们自己的身份验证规则和用户存储,但可能会添加一些Oauth2提供程序,如facebook-connect.我们希望它对用户来说简单易用,对于使用它的开发人员来说简单.

你会怎么做?

  • CAS?
  • OpenID的?我可以用它进行集中认证吗?
  • 其他?或者是OAuth服务器?

在客户端,您是否会使用iframe(如灯箱)来显示重定向的页面?为什么/为什么不呢?


还有另一个与SSO相关的问题:Saml经常(错误地)混入SSO讨论中 - 如果我这么说,我能理解吗?

当浏览器指向www.yetanother-myapp.com时,saml实现不会提供sso(自动登录)?


我研究过的一些相关的SO问题:

谢谢你教育我!

ruby java cas oauth single-sign-on

23
推荐指数
2
解决办法
8701
查看次数

尝试通过安全透明方法X访问安全关键方法Y失败

我有一个相当稳定的服务器应用程序版本,已经在数十个客户中部署了将近一年.

一位新客户最近设置了该应用程序,并收到以下错误:

System.MethodAccessException:尝试通过安全透明方法[SomeMethod]访问安全性关键方法[SomeOtherMethod]失败.

SomeMethod和SomeOtherMethod都是我编写的程序集中的方法,这些方法是针对.NET 4构建的,并且是在Windows服务中运行的.如果它有所不同,SomeOtherMethod确实引用了针对.NET 2.0构建的第三方程序集(EntLib 4.1)中的类型.查看EntLib 4.1的代码,我确实看到它们同时使用SecurityTransparent和APTC属性,但这从未在其他客户端引起过问题.

这些程序集是从.NET 2.0 CLR升级的,但很久以前.这个确切的代码正好在其他客户上运行,我没有明确使用APTC属性,也没有在任何地方使用SecurityCritical属性.

这使我得出结论,这是一个配置问题或者.NET Framework补丁问题.是否有针对.NET发布的补丁会导致这种突破性变化?是否有一个配置设置在某些地方执行这种类型的检查,默认情况下是关闭但我的客户可能已启用?

最后一点.我的服务使用SSRS RDLC生成PDF.由于.NET 4中的一些更改,我必须通过以下配置强制服务使用旧版安全策略:

  <runtime>
    <NetFx40_LegacySecurityPolicy enabled="true" />
  </runtime>
Run Code Online (Sandbox Code Playgroud)

有关我需要执行此操作的详细信息,请参阅此stackoverflow帖子:.NET 4.0中的内存使用率非常高

重要的是,我也在所有其他客户那里做到这一点.只有这一个客户遇到问题.

security cas .net-4.0 code-access-security

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

Shibboleth和CAS之间的区别?

请解释一下Shibboleth和CAS之间的区别?

cas shibboleth

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

AtomicInteger weakCompareAndSet上的"虚假失败"是什么意思?

Java AtomicInteger类有一个方法 -

boolean weakCompareAndSet(int expect,int update)
Run Code Online (Sandbox Code Playgroud)

它的文件说:

可能是虚假的失败.

这里"虚假失败"的意思是什么?

java cas

17
推荐指数
3
解决办法
3776
查看次数

调用Restful Webservice时,Uri不是绝对异常

以下代码段用于使用restful API调用我的Web服务.

ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    String uri= "https://127.0.0.1:8443/cas-server-webapp-3.5.0/login";
    WebResource resource = client.resource(URLEncoder.encode(uri));
      MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
       queryParams.add("username", "suresh");
       queryParams.add("password", "suresh");
       resource.queryParams(queryParams); 
       ClientResponse response = resource.type(
            "application/x-www-form-urlencoded").get(ClientResponse.class);
    String en = response.getEntity(String.class);
    System.out.println(en); 
Run Code Online (Sandbox Code Playgroud)

并在运行上述代码时获得此异常

com.sun.jersey.api.client.ClientHandlerException: java.lang.IllegalArgumentException: URI is not absolute

    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:151)
    at com.sun.jersey.api.client.Client.handle(Client.java:648)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
Run Code Online (Sandbox Code Playgroud)

我搜索了许多文章,并没有得到我做错的地方.

旁注:cas-server-webapp-3.5.0 在Apache tomacat7中部署在我的机器上的war

java cas web-services servlets http

15
推荐指数
3
解决办法
10万
查看次数

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

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

cas

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