我知道CAS是网络的单点登录协议.其目的是允许用户访问多个应用程序,同时仅提供一次凭据(例如用户ID和密码).它还允许Web应用程序对用户进行身份验证,而无需访问用户的安全凭据,例如密码.
那么,我怎样才能将Jasig CAS服务器用于Android移动应用程序?一些指导方针非常有用!
解决方法
实际上有两种方法可以做到这一点,每种方法都有一些缺点.
1)公开REST接口(here you’ll find a simple JAVA client that consumes them和iOS sample如何在移动设备上使用它)
这里的问题是,如果有人从商店下载您的应用程序并检查其中的网络流量(或者只是分解它),他会找到您拨打的电话.有了这个,他可以创建一个与你相同的APP,并记录用户输入的密码(如man-in-the-middle attack)
2)在APP内的Web视图中打开真实网站
您需要在CAS服务器上创建模型登录页面或响应式登录页面,以使其看起来不错.显然,即使在这里,有人理论上可以复制你的APP和你的CAS上的网站,看起来你的APP抓住了用户名和密码,然后将它发送到你的CAS,给用户一个一切正确的印象,但它很多更复杂.
但即使在这里你也需要调整CAS; CAS旨在接受成功登录后将重定向的服务的登录.因此,在这种情况下,您需要向CAS配置添加虚假服务,并检查webview是否会重定向到它.当发生这种情况时,你会在CASTGC cookie中找到TGT.
在我们的第一个APP中,我们使用了REST版本,但是当我们将CAS用于网站时,我们也希望将REST访问权限仅限于设施中的其他服务器,因此我们提出了第二种解决方案似乎更合适,但是整体CAS似乎没有为移动APP做好准备