如何在liferay门户上实现单点登录?

时间:2015-04-28 09:54:49

标签: iframe liferay single-sign-on

我使用liferay开发了一个门户网站,并使用iframe将应用程序添加为portlet。该应用程序需要登录。现在我想实现单点登录。

我如何实现这一目标?

2 个答案:

答案 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只是一个快速入侵,可以在门户网站的同一页面上显示任何完全外部的应用程序。恕我直言,这是关于“显示”,而不是“整合”该应用程序。