RESTful web服务的CAS身份验证
我的应用程序需要访问在不同服务器上运行的RESTful web服务。此web服务使用CAS身份验证,当通过浏览器使用它时,如果用户尚未通过身份验证,它将重定向到CAS登录。没有通过CAS实际登录的方法。我的应用程序还使用CAS,因此用户将通过身份验证 我希望通过JQuery/Ajax访问它,但是服务器似乎没有为JSONP配置,我知道这是必要的,因为跨域问题 现在,我可以通过我的服务器发出Ajax请求,这就引出了我的问题:如果没有CAS登录方法供我的服务器调用,我如何“告诉”web服务用户已通过身份验证RESTful web服务的CAS身份验证,rest,authentication,service,web,cas,Rest,Authentication,Service,Web,Cas,我的应用程序需要访问在不同服务器上运行的RESTful web服务。此web服务使用CAS身份验证,当通过浏览器使用它时,如果用户尚未通过身份验证,它将重定向到CAS登录。没有通过CAS实际登录的方法。我的应用程序还使用CAS,因此用户将通过身份验证 我希望通过JQuery/Ajax访问它,但是服务器似乎没有为JSONP配置,我知道这是必要的,因为跨域问题 现在,我可以通过我的服务器发出Ajax请求,这就引出了我的问题:如果没有CAS登录方法供我的服务器调用,我如何“告诉”web服务用户已通过身
因此,我想首先我想弄清楚浏览器、CAS和RESTful服务之间发生了什么,以及在没有任何明确的凭证传递的情况下如何处理授权。其次,我想看看在从我的服务器调用服务时如何/是否可以复制它-它与来自浏览器的请求不是同一个会话,因此没有CAS授权令牌,但我不知道如何获取或提供它。关于身份验证/单点登录如何工作的问题1:
当您登录CAS服务器(比如security.example.com)时,会在浏览器中为域security.example.com设置cookie。使用标准CAS身份验证和验证筛选器通过浏览器访问应用程序上的安全文件时的典型流程如下所示:
我们在应用程序中遇到了类似的问题,并使用了两种不同的方法来解决:
我在我的一个项目中使用这样的设置。 一些CAS实现通过rest调用启用授权。 尝试添加基本授权标头(用户名和密码的基本64编码)。 看起来像这样 标题(“授权”、“基本”)
还可以尝试在Mozilla上使用REST客户端访问REST API以进行调试。它将真正帮助您理解各种标题等。当您说“…通过我的服务器发出Ajax请求…”时,您的意思是通过HTTP请求向web服务发出请求吗?了解您的服务器应用程序是用哪种语言编写的可能也很有用。您好,Paul-是的,我指的是HTTP请求,服务器是Java。所以现在看来CAS框架支持某种应用程序范围身份验证,我认为这意味着我应该能够让我的servlet生成HttpRequests并对其进行身份验证。但这不起作用,我想我需要对org.jasig.cas.client做点什么,但我不太明白这应该是什么。任何建议仍然感谢!