我使用liferay开发了一个门户网站,并使用iframe将应用程序添加为portlet。该应用程序需要登录。现在我想实现单点登录。
我如何实现这一目标?
答案 0 :(得分:0)
请按照以下步骤进行相同操作。
步骤:
1-安装CAS
我下载了CAS服务器发行版。所有(最近的)下载都可以在这里找到:http://www.jasig.org/cas/download
2-爆炸tar.gz,我抓住了cas-server-3.4.5 / modules / cas-server-webapp-3.4.5.war,
3-将文件重命名为cas-web.war。
4-复制war文件并将其粘贴到Tomcat webapps目录。
5-之前我没有停止过Tomcat,所以Tomcat仍在运行,我在浏览器中点击了http://localhost:8080/cas-web/并被有效地重定向到http://localhost:8080/ cas-web / login。默认演示CAS webapp验证用户名等于密码的位置,所以我尝试使用“test@liferay.com”登录为“test@liferay.com”
6- CAS帮助我告诉我我已登录,但当然没有登录任何有用的东西,因为我没有尝试登录任何特定的应用程序。配置Liferay以使用CAS进行身份验证
7-使用test@liferay.com和密码test@liferay.com在liferay中创建一个帐户,该帐户与CAS帐户相同。
8-要下载Yale CAS Client 2.0.11,请转到http://downloads.jasig.org/cas-clients/
9-创建一个文件夹并将cas.client zip文件解压缩到该文件夹中。
10-打开文件夹并导航到casclient jar文件(cas-client-2.0.11 \ java \ lib)。
11-复制文件。
12-转到Tomcat中的lib文件(webapps \ ROOT \ WEB_INF \ lib)并粘贴casclient jar文件以替换现有文件。
13-在命令提示符下转到ROOT目录。 (/liferay-portal-6.1.10-ee-ga1/tomcat-7.0.25/webapps/ROOT)
14-输入以下内容:
keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
15-输入changeit作为密码。
16-回答问题清单。请注意,名字和姓氏必须是服务器的主机名,不能是IP地址。这非常重要,因为即使IP地址正确,IP地址也无法验证客户端主机名。
输入密钥库密码:changeit 你的名字和姓氏是什么? :localhost 您的组织单位的名称是什么? : 您的组织名称是什么? : 您所在城市或地区的名称是什么? : 您所在州或省的名称是什么? : 这个单位的双字母国家代码是什么? : 是CN = localhost,OU =未知,O =未知,L =未知,ST =未知,C =未知是否正确? :是的
17-输入以下命令以导出您从个人密钥库生成的证书:
keytool -export -alias tomcat -keypass changeit -file server.cert
18-输入changeit作为密码。
19-使用以下命令将证书导入Java的密钥库:
keytool -import -alias tomcat -file%FILE_NAME%-keypass changeit -keystore%JAVA_HOME%/ jre / lib / security / cacerts
(确保代替%FILE_NAME%输入server.cert)
20-输入changeit作为密码。
21-输入yes。
22-要设置Liferay Portal,请导航到Tomcat中的classes文件(webapps \ ROOT \ WEB_INF \ classes)。
23-创建portal-ext.properties(如果它还不存在),在服务器类路径中的某个位置:
24-打开portal-ext.properties并输入:
cas.auth.enabled =真 cas.import.from.ldap =真 cas.login.url = http://localhost:8080/cas-web/login cas.logout.url = http://localhost:8080/cas-web/logout cas.server.url = http://localhost:8080/cas-web cas.validate.url = http://localhost:8080/cas-web/proxyValidate
25-保存。
26-启动Tomcat并转到Liferay Portal - >通过左侧的用户名和密码登录框登录Liferay - 如果用户将使用CAS独占登录。 (而不是点击右上角的登录链接。)
27-转到控制面板 - >门户网站设置 - >身份验证 - > CAS
(a) - 检查已启用 (b) - 确保键入所有URL与portal-ext.properties文件中提到的相同
28-保存。
29-然后从Liferay退出。
30-再次点击右上方的登录链接登录Liferay。
31-如果一切设置正确,您将被重定向到CAS服务器的登录屏幕。
32-使用“test@liferay.com”作为密码登录“test@liferay.com”。
33- CAS通过有效的服务票将您送回Liferay,Liferay验证服务票证,并且您以test@liferay.com测试用户身份登录Liferay。
34-然后点击退出
35-由于Liferay现在配置为使用CAS,它会将您发送到CAS注销URL。
有关详细信息,请查看以下链接。 http://www.liferay.com/community/forums/-/message_boards/message/13311091
希望它可以帮助你。!!
答案 1 :(得分:0)
我想给出一个比已经给出的特定答案更简短的答案(顺便说一下:注意链接到Liferay 4.3文档 - 至少7或8年。不看它,我我不确定它到底有多准确。
实现“单点登录”意味着所有相关应用程序必须使用相同的“单点登录”系统,以便可以安全地重用身份。 Liferay集成了许多SSO系统,其中包括CAS,Shibboleth和(企业版)SAML。您需要决定一个,为iframe的应用程序实现它,并为Liferay配置它。通常,这涉及将您的用户帐户保存在所有应用程序共享的LDAP目录中(否则您最终只能使用当前登录用户的名称)
当然,另一种更优雅的集成方法是抛弃iframe并在portlet中为您的其他应用程序实现UI。这样Liferay将为您处理身份验证,portlet将获得有关当前登录用户的第一手信息。这就是门户网站可以为您提供的内容 - iframe只是一个快速入侵,可以在门户网站的同一页面上显示任何完全外部的应用程序。恕我直言,这是关于“显示”,而不是“整合”该应用程序。