首页 > 其他分享 >SSO单点登录

SSO单点登录

时间:2024-02-23 11:35:46浏览次数:31  
标签:keystore bei 单点 登录 cas 认证 SSO

 

1. 单点登录

  单点登录(Single Sign-On,简称SSO) ,允许用户使用一组凭据(如用户名和密码)登录到多个相关但独立的软件系统或应用程序中。

  是指在多系统应用群中,登录一个系统,便可在其他所有系统中得到授权而无需再次登录。包括单点登录与单点注销两部分。简而言之,多个系统,统一登录。

  单点登录是一种定义怎样登录的规范,并非具体登登录得技术实现。

 

  单点登录原理:相比于单系统登录,SSO需要一个独立的认证中心。只有认证中心能接受用户的用户名或密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。  

        间接授权通过令牌实现,SSO认证中心验证用户得用户名、密码通过,创建授权令牌;在接下来的得跳转过程中,授权令牌作为参数发送给各个子系统,子系统得到令牌,即得到了授权;

        可以借此创建局部会话,局部会话登录方式与单系统登录方式相同。

    通过单点登录,用户体验得到改善,因为可以更轻松地切换和访问不同的应用程序,而不需要频繁地输入用户名和密码。

    此外,单点登录还可以提高安全性,因为用户只需记住一组凭据,减少了因为使用弱密码或忘记密码而带来的风险。

 

2. CAS与搭建

  CAS(Central Authentication Service)项目,它是由Yale大学发起的,旨在为Web应用系统提供可靠的单点登录方法。CAS提供了一种基于票据的认证系统,允许用户在一次登录后访问多个相关但独立的应用程序而无需重新认证。

  CAS项目于2004年12月成为了JA-SIG(Java Architectures Special Interest Group)的一个项目,后来成为了Apereo基金会的一部分。JA-SIG和Apereo旨在支持开源软件在教育领域的使用,CAS作为其中一个项目,为许多学术和非学术机构提供了可靠的单点登录解决方案。

  CAS项目的核心思想是通过一个中心化的认证服务器来管理用户的身份认证,以及颁发和验证票据来实现单点登录。它为用户提供了方便的登录体验,同时提高了安全性和管理效率。

 

  CAS(Central Authentication Service)本身是一个独立的认证服务器,也是一个灵活的认证解决方案,可以与各种不同的Web服务器和应用程序进行集成,包括Tomcat和支持HTTPS的服务器。

  1) Tomcat HTTPS支持

1.生成密钥库
1)d盘下面建一个文件夹cas,文件夹下面再建一个文件夹keystore(存放证书的地方)
2)keytool -genkey -v -alias l_bei -keyalg RSA -keystore D:\cas\keystore\l_bei.keystore
  PS:keytool:jdk自带工具,用于生成密钥。输入口令(随便输,自己记得就行)
2.从密钥库导出证书
keytool -export -trustcacerts -alias l_bei -file D:/cas/keystore/l_bei.cer -keystore D:/cas/keystore/l_bei.keystore
3.将证书导入到JDK证书库
keytool -import -trustcacerts -alias l_bei -file D:/cas/keystore/l_bei.cer -keystore "D:\JAVAJDK11\jdk-11.0.16.1\lib\security\cacerts"
PS:注意jdk路径。
4.查看证书列表:
keytool -list -keystore "D:\JAVAJDK11\jdk-11.0.16.1\lib\security\cacerts"
5.删除证书
keytool -delete -alias l_bei -keystore "D:\JAVAJDK11\jdk-11.0.16.1\lib\security\cacerts"

  
  

  
  
  
  


  2) Tomcat 配置 HTTPS 支持

  步骤一:打开tomcat下的conf下的server.xml文件,然后找位置copy保存,协议 最大线程 开启ssl。

<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol"  
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="D:\cas\keystore\l_bei.keystore"
               keystorePass="ll163.cn"/>

  PS:注意keystore路径与密钥密码。

   步骤二:乱码,在conf 找 logging.properties 文件,找到下面配置修改:UTF-8改为GBK。

 java.util.logging.ConsoleHandler.encoding = GBK

  步骤三:下载war包,放到tomcat/webapps目录下,修改war包名字为cas.war。

  war包下载:https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.14/

  下载:cas-server-webapp-tomcat-5.3.14

 

  步骤四:修改用户名和密码

在 webapps 下找文件夹:cas
apache-tomcat-cas\webapps\cas\WEB-INF\classes

如果没有,先启动一下tomcat。bin\startup.bat

启动后。

找到文件:
application.properties

打开最后一行有用户名密码:
cas.authn.accept.users=casuser::Mellon

casuser为用户名;
Mellon为密码;

  再次启动tomcat,访问: https://localhost:8444/cas/login

 



 

标签:keystore,bei,单点,登录,cas,认证,SSO
From: https://www.cnblogs.com/warmNest-llb/p/18028245

相关文章

  • 智慧安防平台easy1400视图平台用户登录及设备注册功能详解
    用户登录视图库平台后,首先会看到一个整洁的首页界面,上面清晰地展示了各种功能菜单和操作按钮。在这里,用户可以轻松地进行以下操作:添加采集设备:选择左侧的“采集设备”菜单,并点击“添加”按钮。系统会弹出一个对话框,要求用户填写设备ID、名称和用户口令等信息。请确保设备ID的11~1......
  • flask+bootstarp登录小案例
    python前后端交(web_login.py). fromflaskimportFlask,render_template,request,redirect,url_for,session,flashapp=Flask(__name__)@app.route('/login')defindex():returnrender_template('登录css.html')@app.route('/home&......
  • PySide基础三大件的案例_登录界面
    描述制作一个简单的登录界面,拥有两个输入框和对应的Label文字提示以及一个登录按钮用户输入账密后,如果是代码中编写的账密则将两个Label的文字替换展示操作步骤使用Designer软件制作一个UI文件使用VsCode插件的功能将其转成python文件新建一个python文件写具体代码代码f......
  • selenium自动登录cnblogs案例
    代码如下:importjsonimporttimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.edge.serviceimportServicefromselenium.webdriver.chrome.optionsimportOptionsser=Service()ser.path=r'D:\驱动路径......
  • 给 PyQt5 登录添加记住用户密码功能,并优化一些内容
    使用PyQt5(PySide2)+SQLAlchemy做一个登录注册页(七)本文将介绍自己用PyQt5+SQLAlchemy做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端未分离的实现方式,后续将出一个前后端分离的,你可以将PyQt5改为PySide2以获得更宽松的开源协议本文由于涉及到的代码较多,将会是一......
  • SVN报错“Failed to run the WC DB work queue associated with”解决办法
    最近在checkSVN上的iOS代码时,失败报错:  FailedtoruntheWCDBworkqueueassociatedwith“目录/文件”,cleanup同样报错。最后在网上找到了解决方案并解决了问题,解决方法如下:一、安装sqlite31下载我是window1032位,下载以下文件:1.下载 sqlite-dll-win32-x86-......
  • Kob_配置Mysql与注册登录模块(中)
    配置Mysql与注册登录模块(中)session与jwtsession验证url包括公开的和需要权限的登录,注册这种页面肯定是公开界面,大家都可以访问.发送一个登录请求,将账号和密码发送到服务器,服务器接收数据去和数据库存储的账号密码数据进行比对,如果通过就向用户发送一个sessionid,用户会将这......
  • requests实现模拟登录
    发送登录请求importrequestsdata={'username':'用户名','password':'密码','captcha':'3333','remember':'1','ref':'http://www.aa7a.cn/'......
  • centos7.9 无法远程登录报Permission denied, please try again 错误
    最近因高危漏洞对openssh的版本升级到OpenSSH_9.4p1,OpenSSL1.1.1k 25Mar2021 有台机器无法远程连接,报如下错误: 有点奇怪,openssh同时升级了两台机器  ,另外一台都可以最开始怀疑是PermitRootLoginyes注释掉的原因,打开注释还是无法登录反正各种折腾,最后修改如下......
  • 如何实现基于vue技术的管理系统的用户是否登录
    问题:在进行前后端分离开发时候,我们会处理一些前端用户的登录状态。如果用户没有进行登录,则不允许用户访问某些页面一、登录方式首先可以先了解一下前后端分离后的登录方式(1)Cookie+Session(2)Token二、Cookie+SessionHTTP是一种无状态的协议,客户端每次发送请求时,首先要和服务......