Settings链接包含大部分门户的全局设置。主要包括以下内容:
General:配置全局设置,例如company name(公司名称), domain(域), the virtual host(虚拟主机), a global portal logo(logo)等。
Authentication:配置登陆IDS,连接LDAP及单点登录。
Users:有三个标签,labeled Fields(域标签),Reserved Credentials(保留证书),Default User Associations(默认用户关联)。labeled Fields(域标签)开启或者关闭某些用户字段,例如生日或者使用条款等。Reserved Credentials(保留证书)可以保留用户不能使用注册的昵称和email地址,通过该功能可以阻止用户使用一些政治或者敏感词汇注册,例如admin或者主席等。Default User Associations(默认用户关联)配置新用户默认关联的角色、用户组和社区,提供一个复选框,允许追溯应用到现有用户。
Mail Host Names:可以增加其他关联到你的组织的邮件列表。例如,你的主域名可能是mycompany.com,但是,你可能会使用mycompany-marketing.com作为新闻相关的邮件域名。任何与你组织相关的域名可以放在这里。
Email Notifications:Liferay为某些事件发送邮件提醒,例如用户注册,密码修改等等,你可以在这里定制这些信息。
下面我们详细描述这些设置。
General链接允许你设置运行门户的公司/组织/站点名称。在这里设置的名称同样定义你门户的默认社区名称,默认情况下是liferay.com,因此,你可以根据你的组织进行自定义设置。同时,你也可以设置virtual host(虚拟主机),邮件域等其他多方面关于你组织的信息。
Authentication链接下有许多标签,所有的都是用于配置用户在Liferay中如何认证,因为Liferay支持很多种验证方法,针对每一种都有相应的设置。
通用设置仅影响Liferay自身的功能性,对其他标签中的整合选项不做任何事情,该选项允许用户定制Liferay开箱的认证行为,特别的,General标签允许你进行多项全局认证设置:
l 通过email地址(默认),昵称或者用户ID(系统在数据库中自动生成的数字串-不推荐)
l 启用/禁用自动登录,如果启用,Liferay允许用户勾选“remember”选项,将用户名及密码存储在用户的浏览器中,如果禁用,用户每次都需要手工登录。
l 启用/禁用忘记密码功能。
l 启用/禁用请求密码重置链接。
l 启用/禁用陌生人注册创建账号,如果你运作的是一个Internet站点,你可能就希望保留该选项,便以访客在站点创建账号。
l 启用/禁用使用公司域邮箱的人员创建账号(通用设置中设置的信息)。这对于内部与外部站点都采用Liferay创建的企业很方便,你可以确保内部站点用户必须由管理员创建,但外部站点用户可以自己注册ID。
l 启用/禁用 email地址验证,如果启用,Liferay将发送一个验证邮件,里面包含一个验证链接,用户必须点击链接通过验证后才能访问门户。
默认情况,所有的设置除了最后一个都是启用的,其中的一个默认设置使用用户的email地址验证是很重要的,Liferay默认采用这种方式主要有以下理由:
1) 每个用户的email地址都是唯一的。
2) 人们通常都能记住他们的email地址,假如用户一段时间不登陆门户,他很可能忘了他的昵称,特别是在不允许用户修改昵称的情况下。
3) 如果一个用户修改了他的email地址,很有可能用户会忘了更新他email地址属性,特别是如果该email没有被用来做认证。如果用户的email地址没有更新,门户发送的所有通知用户都不能收到。因此,让用户从思想上将email地址作为最重要的东西是非常重要的,当登陆门户后让用户及时更新email地址。
因为上述理由,Liferay默认情况下使用email地址作为用户名。
通过控制面板可以直接连接Liferay到一个LDAP目录,这里有两个地方可以配置LDAP设置:portal-ext.properties文件(下一章中介绍)和控制面板,控制面板设置将被存储在数据中。注意,如果你两个都用,存储在数据库中的设置将覆盖portal-ext.properties文件中的设置。因此,我们推荐大部分用户采用控制面板设置LDAP——非常简单同时还不用重启Liferay。仅有的一个将LDAP配置在portal-ext.properties文件中的理由是如果有多个Liferay节点都是用同一个LDAP目录。在这种情况下,初始化部署启动的时候可以非常容易将portal-ext.properties拷贝到相应的节点。不管采用哪种方式设置,设置的内容是一样的。
l 启用/必须
Enabled:勾选启用LDAP认证。
Required:假如LDAP认证是必须的,勾选该内容,此时,用户必须首先成功绑定到LDAP目录才能登陆门户。如果允许没有LDAP账号但是有Liferay账号的用户登录Liferay,不勾选。
l LDAP服务器
在这里添加LDAP服务器,如果有超过一个LDAP服务器,你可以通过up/down箭头进行排序。当增加一个LDAP服务器时,需要提供一些数据以便Liferay可以构建LDAP服务器并查找用户记录。不管增加多少个LDAP服务器,每个服务器的配置选项是相同的:
l 默认值
多个主要的目录服务列在这里,选中其中一个,表单的剩余部分将自动填入合适默认的值 。
l 连接
设置连接LDAP的基本参数:
Base Provider URL:LDAP位置,确保安装Liferay的服务器与LDAP服务器能够相互通讯,如果两个服务器间有防火墙,确保合适的端口是开放的。
Base DN:这时LDAP目录的基标示名(DN)。通常模仿组织,对于一个企业来说,基DN通常类似于:dc=companynamehere,dc=com结构。
Principal:默认情况下,管理员ID被自动填在这个地方,如果你已经将默认的LDAP管理移除,这里需要填入你的管理员证书的全称。由于Liferay将使用这个ID同步LDAP用户,因此这里需要一个管理员证书。
Credentials:管理员用户的密码。
这就是所有连接一个LDAP目录所需要的内容,剩下的配置项是可选的:通常,默认的属性映射数据对于在用户登录尝试登陆时将信息同步回Liferay的数据库是非常重要的。
假如你的LDAP目录为了避免证书采用非加密方式传输而使用了SSL模式运行,需要进行额外的配置步骤让两个系统之间共享加密密钥和证书信息。
例如,假设你是在Windows Server 2003上部署了Microsoft Active Directory目录服务,使用以下步骤共享证书信息:打开Window 2003域控制,打开Certificates MMC snapin。选择本地Certificates mmc snapin导入根证书à Trusted Root Certification Authorities ->MyRootCACertificateName。右键点击证书选择All Tasks ->export-> select DER encoded binary X.509 .CER。拷贝导出的.cer文件到你的Liferay门户服务器上。
如果已经安装了CAS(参考下面的单点登录章节内容),你需要将证书导入到cacerts密钥库中,采用以下命令导入:
keytool -import -trustcacerts -keystore /some/path/jdk1.5.0_11/jre/lib/security/cacerts -storepass changeit -noprompt -alias MyRootCA -file /some/path/MyRootCA.cer |
Keytool应用时java SDK的一部分。
结束后,回到控制面板的LDAP页面。在Base DN域中修改LDAP URL,将协议修改为https,端口修改为636,如下所示:
ldaps://myLdapServerHostname:636 |
保存更改,此时,Liferay将使用LDAP的安全模式进行用户认证。
Users
l 用户
本小节包含在LDAP中查询用户的设置。
认证查询过滤(Authentication Search Filter):查询过滤框可以用来决定用户登录的查找条件。默认情况下,Liferay使用email地址作为登录名,假如修改了这块设置-在控制面板的Settings->Authentication,紧挨着LDAP标签的General标签中—你需要在这个地方修改过滤,默认设置为使用LDAP的email address属性做为条件。例如,如果修改了Liferay的认证方式为使用昵称,就需要修改相应的过滤以匹配用户输入:
(cn=@screen_name@) |
Import Search Filter:依赖于LDAP服务器,有多种不同的方式鉴别用户,通常情况下,默认设置即可(object-Class=inetOrgPerson),但是如果你想仅在用户的子集或者具有不同对象类的用户中搜索,可以修改该设置。
User Mapping:接下来的一连串域定义LDAP属性与Liferay域的映射关系,这里有5个域必须进行映射,这样用户才能被正确标示。你必须为以下几个Liferay域建立与LDAP属性的映射:
l Screen Name(昵称)
l Password(密码)
l Email Address(email地址)
l Full Name(全称)
l First Name(姓)
l Middle Name(中间名)
l Last Name(未尾名)
l Job Title(职位)
l Group(组)
控制面板提供默认的常用于LDAP属性的映射关系,你也可以增加自己的映射。
Test LDAP Users:一旦你已经构建了属性映射集合(见上述),点击Test LDAP Users按钮,Liferay将尝试拉取LDAP用户,匹配前面的映射。
l 组(Groups)
Import Search Filter:该过滤器找到你想映射到Liferay的LDAP groups。输入你想为映射获得的LDAP group属性,一下属性可以被映射:
l Group Name
l Description
l User
Test LDAP Groups:点击Test LDAP Groups呈现你的查询过滤后的grousp列表。
Users DN:输入用户即将存入到LDAP树上的位置。当Liferay执行导出操作时,用户将被导出到这个位置。
User Default Object Classes:当一个用户被导出后,使用默认的object classes创建用户。获取默认object classes的方法是:使用JXplorer等LDAP浏览工具定位一个用户,查看存储在LDAP上的用户Object Class属性。
Groups DN:输入groups即将存入到LDAP树上的位置,当Liferay执行导出操作时,组将被导出到这个位置。
Group Default Object Classes:当一个组被导出后,应用被列出的默认Object Classes创建组,找出默认object classes的方法是:使用JXplorer等LDAP浏览工具定位一个组,查看存储在LDAP上的组Object Class属性。
一旦你已经完成了选项设置和连接测试,点击SAVE,在这里,你可以增加其他LDAP服务器或者仅设置更多的一些选项适应所有你的LDAP服务器连接。
l Import/Export
Import Enabled:勾选该项允许Liferay从你的LDAP目录中批量导入数据。假如你只是想Liferay在用户登录时同步用户,不要勾选该项。当在集群环境中应用时,不能勾选该项。否则,所有节点在启动时都会尝试进行批量导入。
当勾选该项后,多个选项变为可见。
Import on Startup Enabled:勾选该项,Liferay将在启动时运行导入。该选项仅在勾选了Import Enabled选项后可用。
Export Enabled:勾选该项允许Liferay从数据库中导出用户账号到LDAP。Liferay使用监听器监听User对象的变化,不管什么时候,只要User对象发生变化,监听器既会将变化输出到LDAP服务器。注意,默认情况下,每次用户登录,LastLoginDate域都会发生更新,当导出是开启状态,这种影响将导致每次用户登录时用户都会被导出。你可以通过在portal-ext.properties文件中设置以下属性禁用该功能:
users.update.last.login=false |
Use LDAP Password Policy:默认情况下Liferay使用它自己的密码策略。这块可以通过控制面板右侧Portal部分的Password Policies链接进行配置。如果你想使用LDAP目录定义的秘密策略,勾选该项。一旦启用,Password Policies标签将显示一个信息:你未使用一个本地的密码策略。现在,你就需要使用LDAP目录的机制设置密码策略,Liferay通过解析LDAP服务器返回的LDAP控制信息实现这种方式的密码保护,Liferay查找的LDAP控制信息是由Fedora Directory Server返回的。如果你使用其他不同的LDAP服务器,需要在portal-ext.properties文件中定制该信息,目前不提供设置界面。后续描述如何进行设置。
一旦完成了LDAP配置,点击Save按钮。
不在GUI界面中的LDAP选项
尽管大部分LDAP配置可以再控制面板中进行,但也有一部分配置参数只能通过编辑portal-ext.properties文件。这些选项在Liferay后续版本中提供GUI设置支撑,但在目前版本中只能通过编辑属性文件。
如果需要修改这些选项,从portal.properties文件中拷贝LDAP部分到你的portal-ext.properties文件中。注意,对于已经采用GUI配置的LDAP参数,这里的配置将被忽略。GUI配置的参数存于数据库中,优先于属性文件配置。
ldap.auth.method=bind #ldap.auth.method=password-compare |
设置LDAP认证方法采用bind或者password-compare,Bind最为适合,采用Bind方式不需要考虑加密策略。password-compare与字面意思一样:从LDAP中读出用户密码,解密密码,与Liferay中的用户密码进行比较,同步两者。
ldap.auth.password.encryption.algorithm= ldap.auth.password.encryption.algorithm.types=MD5,SHA |
在ldap.auth.metho设置为password-compare,设置密码加密算法。
ldap.import.method=[user,group] |
如果增加该设置,Liferay将从LDAP树中特定部分导入所有用户,Liferay将搜索所有的组(group),导入每个组中的用户。对于不属于任何组的用户,将不被导入。
ldap.error.password.age=age ldap.error.password.expired=expired ldap.error.password.history=history ldap.error.password.not.changeable=not allowed to change ldap.error.password.syntax=syntax ldap.error.password.trivial=trivial ldap.error.user.lockout=retry limit |
以上是LDAP服务器可能返回的错误信息属性,当用户绑定到LDAP,服务器能返回相应的成功或者失败的控制信息,这些控制包含一个信息,该信息描述错误信息或者返回的响应信息。尽管在LDAP服务器之间的控制是相同的,但消息可以不同。这里所描述的属性包含这些消息的缩略词,可以在Red Hat's Fedora Directory Server中使用,但如果不使用该服务器,这些缩略词可能不能在你的LDAP服务器上使用。假如不能工作,你可以根据你的服务器错误消息替换相应的属性值以便于Liferay能够识别。
单点登录解决方案允许你为多个系统提供一个单点登陆证书服务器,这允许人们只需要在单点登录认证服务器上认证,即可自动登录Liferay,同时也自动登录其他系统。
Liferay在本文编写时,支持多种单点登录解决方案。当然,如果你的产品还没有被支持,你可以使用扩展开发环境实现对产品的支持---或者也可以选择扩展支持服务,更多信息请联系[email protected]。
CAS认证系统最初是由耶鲁大学创建的,是一个应用非常广泛得开源单点登录解决方案,同时也是Liferay第一个支持的单点登录产品。
请根据需要参看CAS安装文档。
第一步,将CAS 客户端 .jar文件拷贝到Liferay的库文件夹。在Tomcat上,库文件夹位置是[Tomcat Home]/webapps/ROOT/WEB-INF/lib,完成后,CAS客户端在Liferay下一次启动后即为可用状态。
CAS服务器应用程序需要一个在你的服务器上应用合适的安全套接字层(SSL)证书配置才能工作,如果你想自己生成一个,你需要使用JDK自带的keytool功能。第一步就是生成key,下一步,将key导入到一个文件中。
最后,将key导入到你的本地java key存储,对于公共,基于internet的产品环境,你需要从公共的认证中心(例如Thawte或者Thawte)购买一个登录key,或者由公共认证中心认证你的登录key。对于内部网,需要IT部门对用户的浏览器进行预先配置,这样用户在登录时就不会出现关于证书的警告信息。
使用以下命令生成一个key:
keytool -genkey -alias tomcat -keypass changeit -keyalg RSA |
替换示例中的密码(changeit),使用一个你能够记住的密码。如果你不是使用Tomcat,你也可以使用一个不同的别名。对于首名和尾名,输入localhost,或者你服务器的主机名称。不能够使用IP地址。
使用以下命令将key导入到一个文件:
keytool -export -alias tomcat -keypass changeit -file server.cert |
最后,将key导入到你的java key存储,使用以下命令:
keytool -import -alias tomcat -file %FILE_NAME% -keypass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts |
如果是在windows系统,将上面的$JAVA_HOME替换为%JAVA_HOME%。当然,在即将运行CAS的系统中,所有上面描述的都要完成。
一旦你的CAS服务器启动并运行后,即可以配置Liferay使用它。配置Liferay使用CAS非常简单,在控制面板中使用Settings -> Authentication -> CAS 标签,启用CAS authentication,修改URL属性指向你的CAS服务器。
Enables:设置为true启用CAS单点登录。
Import from LDAP:通过CAS认证的用户可能在Portal中还没有,启用该项,如果门户中用户不存在,将自动从LDAP中导入。
剩余部分的设置是默认包含的各种URLs。修改默认的localhost指向你的CAS服务器,结束后,点击Save。之后,当用户点击Sign In链接,他们将直接连接到CAS服务器并登录到Liferay。
Liferay门户同时也允许用户使用他们的Facebook账号登陆,启用该功能,你只需要简单的选中启用框,输入Facebook提供应用ID及密码即可。FaceBook SSO使用Facebook中的主email地址匹配Liferay用户表中的email地址。如果匹配,用户自动登录,如果不匹配,
该Facebook用户会被快速的增加到Liferay。一旦选定,新用户将被创建,Facebook中的四个字段被取过来(first name, last name,email address, 和 gende)。
NTLM是一个微软的协议,用于通过微软Internet Explorer认证,尽管微软在Windows server的近期版本中采用了Kerberos,NTLM仍然在workgroup认证时使用。Liferay Portal现在支持NTLM v2认证,NTLM v2相比NTLM v1更为安全,具备更强的认证过程。
Enabled:选中该项启用NTLM认证。
Domain Controller:输入域控制的IP地址,该服务器包含你想在Liferay中使用的用户账号。
Domain:输入domain/workgroup名称。
接下来的链接是Mail Host Names,你可以在General标签中所配置的邮件主机名称旁边输入其他的邮件主机名称(一行一个)。通过该配置可以让portal知道组织所拥有的邮件主机名称。
在Email Notifications链接下有四个标签,Sender(发送)标签设置portal的管理员名称和email地址。默认情况下是Joe Bloggs和[email protected],你可以根据自己的需要进行修改,该名称与地址将出现在所有portal所发出的邮件的From域中。
其他的三个标签(账号创建通知,密码修改通知以及密码重置通知)都可以进行相应发送内容的客户化定义。
Identification部分由许多关于地址、电话号码以及其他你可以为Portal配置的信息。通过该功能可以为允许Portal的组织建立联系信息。开发人员可以在应用程序中查询这些信息。
该部分设置portal的默认语言及时区,你同样可以设置在整个portal范围内的页面左上脚显示的Logo。使用该功能时,必须选择合适大小的图片。如果使用的图片太大,会使导航栏显示混乱。