phpcms首页如加上用户登6的音讯,phpldapadmin具体设置

By admin in 美高梅手机版4858 on 2019年5月4日

一、需求
    一.属性隐藏

在CentOS6.五上设置OpenLDAP并布署LDAP格局用户登入

一.装置PHP和apache 要是未有EPEL的源须求设置下 yum install epel-release
若未有下载下来,就创办/etc/yum.repo.d/epel.repo


[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

phpldapadmin依赖apache和php
yum install php httpd 配置httpd.conf
2.安装OpenLDAP yum install *openldap* openldap openldap-servers
openldap-clients 配置OpenLDAP,配置文件/etc/openldap/slapd.conf
该文件暗中认可未有,从/usr/share/openldap-servers/slapd.conf.obsolete拷贝1份到该地点owner为ldap:ldap


database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=iflyyun,dc=cn" read
by * none database bdb
suffix "dc=iflyyun,dc=cn"
checkpoint 1024 15
rootdn "cn=Manager,dc=iflyyun,dc=cn"

配置/etc/openldap/ldap.conf


BASE dc=iflyyun,dc=cn
URI ldap://bja-pro0002.hadoop.cpcc.iflyyun.cn


布置ldap管理员用户密码
sldappasswd(注意不要用ldappasswd,不然会报GSSAPI错误)
输入密码,获得{SSHA}ph+VRzfWSeamboy0itVlazrJrxzVHh80格式的密码再修改/etc/openldap/slapd.conf
直接选择公开密码,使用加密密码有点问题 配置apache识别index.php
修改/etc/httpd/conf/httpd.conf 找到上边这一行,加多index.php
DirectoryIndex index.html index.html.var index.php
修改/etc/httpd/conf.d/php.conf 测试OpenLDAP配置文件是还是不是科学: slaptest
-u -f /etc/openldap/slapd.conf
3.安装phpldapadmin yum install phpldapadmin
配置/etc/phpldapadmin/config.ini


$servers->setValue(‘server’,’host’,’192.168.51.211′);
$servers->setValue(‘server’,’port’,389);
$servers->setValue(‘server’,’base’,array(‘dc=iflyyun,dc=cn’));
$servers->setValue(‘login’,’auth_type’,’cookie’);
$servers->setValue(‘login’,’bind_id’,’cn=Manager,dc=iflyyun,dc=cn’);
$servers->setValue(‘login’,’attr’,’dn’);(3九七行,那行撤废注释)
//
$servers->setValue(‘login’,’attr’,’uid’);(将那行注释掉,不然登入会报错)


修改/etc/httpd/conf.d/phpldapadmin.conf,允许从其余机器访问


Order Deny,Allow
Allow from all


4.phpldapadmin配置 删除/etc/openldap/lapd.d/目录下的有所文件
创造LDAP根目录 ldapadd -x -D”cn=Manager,dc=iflyyun,dc=cn” -f base.ldif
-W base.ldif


dn: dc=iflyyun,dc=cn
o: ldap
objectclass: dcObject
objectclass: organization


成立管理员用户 # Manager, iflyyun.cn
dn: cn=Manager,dc=iflyyun,dc=cn
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: Manager
description: LDAP administrator
五.LDAP客户端配置phpcms首页如加上用户登6的音讯,phpldapadmin具体设置。 安装必备软件 yum install nss-pam-ldapd pam_ldap
openldap-clients 需求修改的布署文件有:
/etc/sysconfig/authconfig、/etc/pam.d/system-auth、/etc/openldap/ldap.conf、/etc/nssswitch.conf
修改/etc/sysconfig/authconfig


IPADOMAINJOINED=no
USEMKHOMEDIR=yes
USEPAMACCESS=no
CACHECREDENTIALS=yes
USESSSDAUTH=no
USESHADOW=yes
USEWINBIND=no
USEDB=no FORCELEGACY=no
USEFPRINTD=yes
FORCESMARTCARD=no
PASSWDALGORITHM=yes
USELDAPAUTH=yes
USEPASSWDQC=no
IPAV2NONTP=no
USELOCAUTHORIZE=yes
USECRACKLIB=yes
USEIPAV2=no
USEWINBINDAUTH=no
USESMARTCARD=no
USELDAP=yes
USENIS=no
USEKERBEROS=no
USESYSNETAUTH=yes
USESSSD=no
USEHESIOD=no

修改/etc/pam.d/system-auth


#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_ldap.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so

account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
account required pam_ldap.so

password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok md5
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_ldap.so

修改/etc/openldap/ldap.conf


#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never

TLS_CACERTDIR /etc/openldap/cacerts

BASE dc=iflyyun,dc=cn
URI ldap://hfa-pro0002.hadoop.cpcc.iflyyun.cn


修改/etc/nssswitch.conf


#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Valid entries include:
#
# nisplus Use NIS+ (NIS version 3)
# nis Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#

# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis

passwd: files ldap
shadow: files ldap
group: files ldap

#hosts: db files nisplus nis dns
hosts: files dns

# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files

bootparams: nisplus [NOTFOUND=return] files

ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files

netgroup: nisplus

publickey: nisplus

automount: files nisplus
aliases: files nisplus

开启名称缓存服务 service nscd restart

一.装置PHP和apache 若是未有EPEL的源要求设置下 yum install epel-release
若未有下载下来,就创办/e…

1、yum安装相关软件及希图条件

yum -y install openldap* db4 migrationtools

service iptables stop

service NetworkManager stop

chkconfig iptables off

chkconfig NetworkManager off

此处为了方便关闭了防火墙,实际生育意况请留意!

请看成效图

       只呈现用户名,部门(因为是单OU设计为了做区分),登陆密码

二、配置openldap

cd /var/lib/ldap

slapd(一定要施行该命令,以浮动相关铺排文件)

chown ldap:ldap /var/lib/ldap/*

cp /usr/share/openldap-servers/DB_CONFIG.example
/var/lib/ldap/DB_CONFIG

service slapd restart

至于slapd.conf该配置文件,有时安装完结后可能未有,要求编写制定导入
—>> 下载地址

然后将slapd.conf放置/etc/openldap下

浮动管理员密码,并且保留好

slappasswd –h {SSHA} –s redhat(此处的redhat正是密码,能够随意改换)

变化的结果注意保留好!

美高梅手机版4858 1

    二.属性顺序显示

三、编辑配置文件slapd.conf

database bdb

suffix “dc=example,dc=com”   
#改动成温馨的域名,举个例子:dc=test,dc=com#

rootdn “cn=Manager,dc=example,dc=com”  
#改造管理员名称及域名,举个例子:cn=admin,dc=test,dc=com#

rootpw此处所写的正是上一步所发出的加密密码#定义LDAP根管理员的密码(强烈建议使用加密的密码)rootpw与加密密码之间最佳用按TAB键分隔

剔除原先配置

rm  -rf  /etc/openldap/slapd.d/*

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

chown -R ldap.ldap slapd.d/

service slapd restart

cd /etc/openldap

vi base.ldif  内容如下:

美高梅手机版4858 2

将dc=test,dc=com修改为和谐实在要用的,然后推行

ldapadd  -f base.ldif  -x -D  cn=admin,dc=test,dc=com –w
[此间填写ldap助理馆员admin密码]

然后重启服务

service slapd restart

自家用的是cookie的不二等秘书技,请先张开discuz的公文

          部门>用户名>登陆密码

四、配置服务开机运营

chkconfig slapd on        # ldap服务(伍.四为ldap)未来成为了slapd

chkconfig rsyslog on     #rsyslog服务(日志)5.4为syslog

chkconfig rpcbind on     #启动rpcbind服务5.4为portmap 111端口

\source\function\function_member.php

    叁.用到UID可以登录

五、安装phpldapadmin

yum -y install epel-release

yum -y install httpd php php-bcmath php-gd php-mbstring php-xml
php-ldap

yum -y install phpldapadmin

vim /etc/httpd/conf.d/phpldapadmin.conf

增多上自个儿要求拜访web端的网段,笔者在此地是剔除了Deny from
all,增加了Allow from all,实验阶段方便而已,实际生育条件还是要专注!

vi /etc/phpldapadmin/config.php

修改前:

// $servers->setValue(‘login’,’attr’,’dn’);

$servers->setValue(‘login’,’attr’,’uid’);

修改后:

$servers->setValue(‘login’,’attr’,’dn’);

//$servers->setValue(‘login’,’attr’,’uid’);

保留退出

service httpd restart

找到函数function setloginstatus()

          用户能够行使账户(本身的名字)登入WEB分界面

陆、访问测试

开发浏览器输入

用户名:cn=admin,dc=test,dc=om

密码:填写此前安装的密码(写原作,不要填写加密后的密码)

把以下的代码

    四.隐身登入后LOGO标识

  1. dsetcookie(‘auth’, authcode(“{$member[‘password’]}\t{$member[‘uid’]}”, ‘ENCODE’), $cookietime, 1, true);  
  2.     dsetcookie(‘loginuser’);  

    五.隐形右侧按钮

变为:

二、功能达成

 

#在文书夹里面页面实际情况.jpg能够见到效果

 

    一.足以落成的成效

  1. dsetcookie(‘auth’, authcode(“{$member[‘password’]}\t{$member[‘uid’]}”, ‘ENCODE’), $cookietime, 1, true);  
  2.     dsetcookie(‘loginuser’,$_G[‘username’]);  

          #在布署文件中(/etc/phpldapadmin/config.php)做如下修改

在首页我们得以这里做:

      属性隐藏设置                                                     
                                                                       
                          #恒定贰①七行 找到这一条数据 =>
$config->custom->appearance[‘hide_attrs’] = array();

          #例子:
                     $config->custom->appearance[‘hide_attrs’]
= array(‘objectClass’,’sn’,’cn’,’uid’);

 

                        #隐藏 objectClass,sn,cn,uid属性

{if $_COOKIE['fgiC_2132_auth']}  
        <li  class="header_link" style="margin-left: 10px;"><a href="{siteurl()}bbs/home.php?mod=space" target="_blank">欢迎,{$_COOKIE['fgiC_2132_loginuser']}</a>  
        </li>  

        <li  class="header_link">|<a href="{siteurl()}bbs/member.php?mod=logging&action=logoff">退出</a></li>  
        {else}  
         <li class="reg_ico"></li>  
        <li class="header_link"><a href="{siteurl()}bbs/member.php?mod=register">注册</a></li>  
        <li class="login_ico"></li>  
        <li class="header_link"><a href="{siteurl()}bbs/member.php?mod=logging&action=login">登录</a></li>  
        {/if}  

      属性顺序展现                                                     
                                                                       
                          #永世26五行 找到这一条数据 =>
$config->custom->appearance[‘attr_display_order’] = array();

  

          #例子:

只顾这里的cookie

                   
 $config->custom->appearance[‘attr_display_order’] = array(

 

                       ‘givenName’,
                       ‘sn’,
                       ‘cn’,
                       ‘uid’,
                       ‘uidNumber’,
                       ‘userPassword’

  1. {if $_COOKIE[‘fgiC_2132_auth’]}  

                       );

纵使地点的

      使用名字能够登录                                                 
                                                                       
                         #固化41四行 找到这一条数据 =>
#$servers->setValue(‘login’,’fallback_dn’,false); false改为true

dsetcookie(‘auth’,
authcode(“{$member[‘password’]}\t{$member[‘uid’]}”, ‘ENCODE’),
$cookietime, 1, true);

                     $servers->setValue(‘login’,’attr’,’dn’);
                     $servers->setValue(‘login’,’attr’,’uid’);

作者们那边推断假若存在那么些值就显得出登入的用户名相关的音信,未有的话就展示出登⑥分界面

                        #管教那两行不被讲授掉

      超时时间
                     $servers->setValue(‘login’,’timeout’,30);

 

                        #切切实实日子友好安装

  1. {$_COOKIE[‘fgiC_2132_loginuser’]  

      关闭无名氏登陆开关
                   
 #$servers->setValue(‘login’,’anon_bind’,true);

 

                        #false改为true

表示的是用户名,便是上边的

      登入界面LOGO隐藏掉                                               
                                                                       
                 
 #在/usr/share/phpldapadmin/htdocs/welcome.php里面修改
注释掉第一陆行消息就足以了

 

      隐藏页眉页脚                                                     
                                                                       
                        #追寻关键字minimalMode 找到这一条数据 =>
$config->custom->appearance[‘minimalMode’] = true;
false改为true

  1. dsetcookie(‘loginuser’,$_G[‘username’]);  

二.失效功效

到此地,大家基本就做到了,可是退出如何做啊?张开文件source\class\class_member.php找到函数function
on_logout()系统暗许的正是其一用户退出函数,不过请看那一个函数中有七个推断语句

     #沉痛警告:开启用户只可以开到本身的条规,就无法应用UID登入了

 

 

  1. if($_GET[‘formhash’] != $_G[‘formhash’]) {  
  2.             showmessage(‘logout_succeed’, dreferer(), array(‘formhash’ => FORMHASH, ‘ucsynlogout’ => $ucsynlogout));  
  3.         }  

而作者辈一会要做的连年中是平素不formhash这些值的,所以大家要新写三个退出函数如下:

 

//add by jiang in order to logut in the home page  
        function on_logoff(){  
                global $_G;  

        $ucsynlogout = $this->setting['allowsynlogin'] ? uc_user_synlogout() : '';  
        clearcookies();  
        $_G['groupid'] = $_G['member']['groupid'] = 7;  
        $_G['uid'] = $_G['member']['uid'] = 0;  
        $_G['username'] = $_G['member']['username'] = $_G['member']['password'] = '';  
        $_G['setting']['styleid'] = $this->setting['styleid'];  

        showmessage('logout_succeed', dreferer(), array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout));  

        }  

  

相比一下大家就能够清楚,新写的淡出函数只是少了地方的论断语句而以我们在phpcms做的首页中进入剥离按钮:

 

  1. <a href=”{siteurl()}bbs/member.php?mod=logging&action=logoff”>退出</a>  

那正是谈起此地是还是不是产生了吧?大家回去首页来点击一下会意识提醒未有概念操作logoff解决的办法是:文件source\module\member\member_logging.php找到

美高梅手机版4858 , 

  1. if(!in_array($_GET[‘action’], array(‘login’, ‘logout’,’logoff’))) {  
  2. showmessage(‘undefined_action’);  
  3. }  

在array这里就新扩展的logoff,那时再去点就从未有过提示了

so

done!

 

 

转自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有