sso学习之IAM环境搭建

1.     IAM简介

参考百科:

IAMIdentity and Access Management 的缩写),即身份识别与访问管理,具有单点登录、强大的认证管理、基于策略的集中式授权和审计、动态授权、企业可管理性等功能。

2.     环境准备

2.0 首先创建新目录mkdir –p /HIAM/software,把相关安装包都拷贝过来,准备安装

2.1 配置hosts:先ifconfig查看下自己本机ip,然后写入hosts

这样主要应该是为了访问本机不用使用ip或者localhost,直接使用网址访问。

2.2 配置本地yum源

  主要目的是为了应对网络不佳的状况。

 1.  待补上

2.3 安装jdk

Jdk:

 

        -i:显示组件信息。

        -v: view,visual显示安装过程。

        -h:hash安装时列出标记。

查看安装结果:

使用rpm –ql jdk1.8查询到安装到的目录:

 /usr/java/jdk1.8.0_171-amd64/

设置环境变量:

1). vi /etc/profile,shift+g跳到最后一行

2). 在文件最后添加

JAVA_HOME=/usr/java/jdk1.8.0_171-amd64

JRE_HOME=/usr/java/jdk1.8.0_171-amd64/jre

PATH=$JAVA_HOLME/bin:$JRE_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATHCLASSPATH

## PATH的配置根据利己原则,把原来的PATH写在后面,不然很有可能你安装完之后使用的java命令还是系统自带的openjdk里的,一般这种东西某些人又不想删。

3). source /etc/profile ##也可以放在在~/.bashrc以自动执行

3. 安装配置Tomcat

 Tomcat版本:9.0.8,进入相应目录执行

3.1 Tomcat

1 解压

[root@qingxin software]# tar -zxvf./apache-tomcat-9.0.8.tar.gz

2 配置

 第一个tomcat使用默认配置,不修改。但按步骤还是设置下防火墙。配置过程遇到一点问题,记录下:

[root@qingxin conf]# service iptables save

The service command supports only basic LSB actions (start, stop,restart, try-restart, reload, force-reload, status). For other actions, pleasetry to use systemctl.

[root@qingxinconf]# systemctl iptables save

Unknown operation 'iptables'.

[root@qingxin ~]# yum install iptables-services

[root@qingxin ~]# systemctl enable iptables

[root@qingxin ~]# systemctl start iptables

[root@qingxin ~]# service iptables save

 iptables: Savingfirewall rules to /etc/sysconfig/iptables:[ 确定  ]

[root@qingxin ~]# service iptables restart

至此,正常解决。参考:

http://blog.163.com/xavier_666/blog/static/25884000720163299503423/

3 启动tomcat

[root@qingxin bin]# ./startup.sh

4 访问

3.2 Tomcat(cas)

 简单说就是,复制一份。改改端口号避免冲突,启动两个容器。步骤:

1.     [root@qingxin software]# cp -rapache-tomcat-9.0.8 apache-tomcat-9.0.8-cas

2.     修改server.xml

1)  <Server port="18005" shutdown="SHUTDOWN">

2)  <Connector port="18080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="18443" />

3)  <Connector port="18009" protocol="AJP/1.3"redirectPort="18443" />

3. 针对修改的端口修改防火墙

[root@qingxin conf]# /sbin/iptables -I INPUT -p tcp --dport18080 -j ACCEPT

 [root@qingxin ~]#service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  确定  ]

[root@qingxin~]# service iptables restart

    Redirecting to/bin/systemctl restart  iptables.service

4.  启动

[root@qingxin bin]# ./startup.sh

5.  访问

4 redis安装

1.     安装gcc

[root@qingxin software]# yum install -y gcc g++ gcc-c++make

2.     解压redis

[root@qingxin software]# tar -xzvf redis-4.0.9.tar.gz

3.     安装redis

1)     进入redis目录

   [root@qingxinsoftware]# cd redis-4.0.9/

2)     编译

[root@qingxin redis-4.0.9]# make

3)     安装

[root@qingxin redis-4.0.9]# make install

4)     启动

[root@qingxin redis-4.0.9]# ./src/redis-server redis.conf&

5)     查看进程

[root@qingxin redis-4.0.9]# ps -ef|grep redis

root     13231  5775  010:13 pts/0    00:00:00./src/redis-server 127.0.0.1:6379

root     13239  5775  010:14 pts/0    00:00:00 grep --color=autoredis

6)     开放redis默认的6379端口

[root@qingxin redis-4.0.9]# /sbin/iptables -I INPUT -p tcp--dport 6379 -j ACCEPT

[root@qingxin redis-4.0.9]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  确定  ]

[root@qingxin redis-4.0.9]# serviceiptables restart

          Redirectingto /bin/systemctl restart iptables.service

     

5. Openldap

 5.1 关闭selinux

  临时关闭用setenforce 0,永久关闭需要编辑/etc/selinux/config, 将SELINUX=enforcing改为SELINUX=disabled,保存后退出,并重启。如果不希望重启,还希望达到这个效果,可以修改自定义启动脚本:echo“ /usr/sbin/setenfore 0” >> /etc/rc.local (/etc/rc.local文件链接到/etc/rc.d/rc.local文件),查看当前selinux状态可以用sestatus。

可以看到,setenforce 0之后,selinux由强制模式变成了宽容模式。

 

5.2 依赖包下载

 1). yum install gcc

 

2). yum install*ltdl* -y (-y yes自动选择)

5.3 安装Berkeley DB

 1). tar –zxvf db-5.2.36.tar.gz

先把安装包解压出来,结果如下

2). cddb-5.2.36/build_unix/ 进行安装前配置

执行:../dist/configure --prefix=/HIAM/software/berkeleydb-5.2.36

3). 编译make

经过2分钟左右的等待后,完成。准备下一步,安装。

4). 安装make install

结果如下:

5). 配置环境变量

vim /etc/profile

注意下,这里openldap还没安装,我们只是提前配置下,另外PATH我依旧习惯性的把原PATH写在后面。

6). 使配置文件修改生效

source/etc/profile

 

5.4 安装Openldap

 1). 解压tar –zxvf openldap-2.4.44.tgz

结果:

 2). 保证后面编译openldap时可以找到lib和include下的库

 

3). 进入openldap目录

 [root@qingxin software]# cd openldap-2.4.44/

4). 执行命令进行安装前的配置

 

[root@qingxinopenldap-2.4.44]# ./configure --prefix=/HIAM/openldap-2.4.44 --enable-syslog--enable-modules --enable-debug --enable-ppolicy --with-tlsCPPFLAGS=-I/HIAM/software/berkeleydb-5.2.36/include/ LDFLAGS=-L/HIAM/software/berkeleydb-5.2.36/lib/

正常完成,准备编译依赖

5). 编译依赖

make depend

6). 编译

make

完成,准备安装。

7). 安装

make install

 

8). 进入到openldap安装后目录,修改密码

 

注:这里直接粘贴{SSHA}Fds2viLvTTdNyyRzQqy4c4/LPuAZE13t作为密码即可,为了后面密文配置管理员密码。密码明文应该是123456。

这里注意下,不管什么明文密文管理密码,你需要保留的是这个命令执行完成后的那一串字符:{SSHA}N3O/Xthj3ChOgMkaDdarpxp0uhDsoYT0

这个需要写到后面的slapd.conf配置文件里面去。这里躺了一趟坑,重点记录下。【ldap_bind: Invalid credentials (49

[root@qingxin bin]# slappasswd

New password:

Re-enter new password:

{SSHA}N3O/Xthj3ChOgMkaDdarpxp0uhDsoYT0

 

修改密码想要生效应该需要重启openldap。

9). 启动openldap

10). 修改配置文件

这里注意下,密码和前面保持一致。

11). 准备初始化.ldif文件

在bin目录下创建ldif文件。

[root@qingxinbin]# touch 1.ldif

[root@qingxinbin]# vim 1.ldif

内容如下:

[root@qingxinbin]# vim 2.ldif

内容如下:

 

12). 导入ldif文件

密码是明文123456

[root@qingxinbin]# ./ldapadd -x -D "cn=Manager,dc=zqx,dc=com" -W -f 1.ldif

Enter LDAPPassword:

adding new entry"dc=zqx,dc=com"

 

[root@qingxinbin]# ./ldapadd -x -D "cn=Manager,dc=zqx,dc=com" -W -f 2.ldif

Enter LDAPPassword:

adding new entry"ou=people,dc=zqx,dc=com"

 

[root@qingxinbin]#

 

13). 导入slapd关于同步和密码策略的配置

  按文档类似的改一下就好了

 

14). 开放389端口供外部访问

   默认明文端口389,密文端口636

15). 导入密码策略

  按文档,类似的改下。遇到一个问题,ldap_add: Invalid syntax (21)。一直改格式都没有用,后来重启系统后终于好了,怀疑是不是有什么缓存之类的东西。

 

16). JXplorer

 

 

 

6. phpldapadmin

 6.1 安装php环境

  yuminstall httpd mysql-devel php-mysql php -y

 centos7直接yum install mysql-server会提示没有可用的包,需要自己手动wget获取下。

 php-mysql在centos上兼容性不好,会和php-mysqlnd冲突,暂时选择不安装php-mysql。【yum install httpd php php-bcmathphp-gd php-mbstring php-xml php-ldap】

 

6.2 安装phpldapadmin

 

 1. 解压

       [root@qingxinsoftware]# tar -zxvf phpldapadmin-1.2.3.tgz

 2. 创建html页面

       [root@qingxinsoftware]# cp -r phpldapadmin-1.2.3 /var/www/html/

       [root@qingxinsoftware]# cd /var/www/html/

       [root@qingxinhtml]# cd phpldapadmin-1.2.3/config/

       [root@qingxinconfig]# cp config.php.example config.php

       [root@qingxinconfig]# vim config.php

3. vim config.php

 

 

 

参考文档,根据自己实际的情况修改。

 

4). 关闭防火墙或暴露端口

[root@qingxin config]# service httpdrestart

Redirecting to /bin/systemctl restarthttpd.service

 

5). 登陆phpldapadmin

 

 http://192.168.15.142/phpldapadmin-1.2.3/htdocs/index.php

 

 

 

参考:https://www.cnblogs.com/lemon-le/p/6266921.html

https://www.cnblogs.com/yangxiaofei/p/5699187.html

https://www.zhukun.net/archives/7963

https://www.jianshu.com/p/cd6aa994dc21

http://blog.51cto.com/xiaofengfeng/1953736

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
统一身份认证是一种用于管理和认证用户身份的系统,它可以集中管理用户的账号和权限。在Java学习搭建统一身份认证系统,首先需要了解相关的技术和框架。 首先,可以使用Spring Security框架来实现统一身份认证。Spring Security提供了一套安全性管理机制,可以集成到Java应用中,用于处理用户认证、授权和安全攸关的任务。通过配置Spring Security,我们可以定义用户角色、权限和身份验证规则。 其次,敏感数据的存储和传输也需要考虑安全性。可以使用HTTPS协议来加密请求和响应,确保数据在传输过程中的安全性。同时,建议使用Hash算法对用户密码进行加密存储,例如使用BCrypt算法进行密码及密码验证。 另外,统一身份认证系统需要与用户的数据进行交互。可以选择使用关系型数据库如MySQL或者非关系型数据库如MongoDB来存储用户信息。通过使用ORM框架如Hibernate或MyBatis,可以简化Java应用对数据库的访问和操作。 在实现用户认证过程中,通常需要支持多种认证方式。例如,可以使用用户名和密码进行认证,也可以支持第三方登录(如微信、支付宝等),甚至可以使用单点登录(SSO)来实现用户统一认证。 最后,需要充分考虑安全性,例如避免常见的安全漏洞,如SQL注入、跨站脚本攻击(XSS)等,可以通过限制输入参数、使用防火墙、编写安全的代码等方式来提高系统的安全性。 总而言之,搭建统一身份认证系统需要使用相关的技术和框架,如Spring Security、HTTPS协议、Hash算法、数据库和ORM框架等。同时,需要考虑安全性并采取相应的措施来保护系统和用户数据的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值