配置webgate拦截跳转到ldap登录页实现单点登录

前提是企业已经做好LDAP系统,子系统已经实现自己的登录逻辑,且子系统只需要配置好webgate以及相关配置,就能对接LDAP单点登录。(对于LDAP也就了解,这里不做LDAP的详细搭建)

了解一下通过LDAP登录的原理

![image-20190413163116319](/Users/magicyou/Library/Application Support/typora-user-images/image-20190413163116319.png)

• 单点集成,需要在应用系统服务器配置Apache服务器,对应用系统做反向代理,并在其上安装用于拦截Http请求的插件Webgate。

• OAM和插件通信,实现对应用系统的单点集成,此处需要应用系统改造现有登陆逻辑,接收OAM认证后传递的用户信息。

• 集成LDAP单点的同时,需实现逃生机制,即可实现在应用系统本地登录认证。

前面说过,我们的系统是在lnmp运行,所以Apache在这里作为中介,转到nginx的端口上的应用。

准备

1. 增加用户和组

User appuser

Group appgrp

  1. 其他

    apache安装路径 /app/soft/apache/

    webgate目标安装路径 /app/soft/webgate/

    本机名 xxxx

    本机ip 10.0.XX.X

    按照集团给的配置信息(重要):

Name Value
WebGate ID XXX_WebGate
Password for WebGate 123456
Access Server ID acc_id_oam
Host name where an Access Server is installed node2
Port number the Access Server listens to 6000

安装apache

  1. 安装apache

    尽可能不要用centos带的那个Apache,自己再装一个版本最好是2.2,因为老系统用的就是这个版本(毕竟webgate版本没有升级),防止莫名错误,低调行事。

  2. 修改httpd.conf 如下几项

    1
    2
    3
    4
    5
    6
    7
    8
    User appuser

    Group appgrp

    Listen 9008

    ServerName 10.0.XX.X:9008

  3. /etc/hosts添加

    10.0.XX.X hostname

安装webgate

添加hosts文件

在j2ee系统安装apache的服务器用root用户登录服务器,添加hosts文件

1
vi /etc/hosts

添加如下

1
2
10.0.59.21 node1
10.0.59.22 node2

安装依赖包等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cd /lib64/

ln -s /usr/lib64/libstdc++.so.6 .
ln -s /usr/lib64/libstdc++.so.5 .
执行安装

安装组件
yum install libXau-1.0.6-4.el6.x86_64
yum install libXau-1.0.6-4.el6.i686
yum install libXdmcp-1.1.1-3.el6.x86_64
yum install libXdmcp-1.1.1-3.el6.i686
yum install libxcb-1.9.1-2.el6.x86_64
yum install libxcb-1.9.1-2.el6.i686
yum install libX11-1.6.0-2.2.el6.x86_64
yum install libX11-1.6.0-2.2.el6.i686
yum install libXext-1.3.2-2.1.el6.x86_64
yum install libXext-1.3.2-2.1.el6.i686
yum install libXp-1.0.2-2.1.el6.x86_64
yum install libXp-1.0.2-2.1.el6.i686
yum install libXi-1.7.2-2.2.el6.x86_64
yum install libXi-1.7.2-2.2.el6.i686
yum install libXtst-1.2.2-2.1.el6.x86_64
yum install libXtst-1.2.2-2.1.el6.i686

命令行安装(使用appuser用户安装)

1
2
cd /home/appuser/software
./Oracle_Access_Manager10_1_4_3_0_linux64_APACHE22_WebGate

开始了漫长的选择题以及填空题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[appuser@xxxx software]$ ./Oracle_Access_Manager10_1_4_3_0_linux64_APACHE22_WebGate
InstallShield Wizard

���ڳ�ʼ�� InstallShield Wizard...

����׼�� Java(tm) �����...
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
.............................
��������[appuser@xxxx software]

莫名其妙,直接退出了,可能是如下问题,尝试解决。

运行到此直接退出,无日志输出,使用如下命令可以输入日志

1
./Oracle_Access_Manager10_1_4_3_0_linux64_APACHE22_WebGate -is:log tmp.log

日志内容如下,最后报错信息:

1
ERROR: Invalid bundled JVM. Missing 'jvm' file错误:无效的捆绑JVM。失踪的jvm文件

需要安装glibc.i686,glibc.x86_64已安装,但webgate依赖32位glibc

安装命令如下,使用root身份,两个包需要同时安装。

1
rpm -ivh glibc-2.12-1.80.el6.i686.rpm nss-softokn-freebl-3.12.9-11.el6.i686.rpm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[appuser@xxxx software]$ ./Oracle_Access_Manager10_1_4_3_0_linux64_APACHE22_WebGate
InstallShield Wizard

���ڳ�ʼ�� InstallShield Wizard...

����׼�� Java(tm) �����...
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
.............................
�������� InstallShield Wizard...

-------------------------------------------------------------------------------
欢迎使用 Oracle Access Manager 10.1.4.3.0 WebGate 的 InstallShield 向导

InstallShield 向导将在计算机上安装 Oracle Access Manager 10.1.4.3.0 WebGate。
要继续,选择“下一步”。

Oracle Access Manager 10.1.4.3.0 WebGate
Oracle



按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

填1,下一步

1
2
3
4
5
6
7
8
9
10

您即将安装的产品的所有者必须是运行 Web 服务器时使用的同一个用户身份。大多数时候, 运行 Web 服务器所使用的身份是 `root' 或
`nobody'。查找所有者身份的快捷方式是对服务器进程执行 `ps'操作。

输入运行 Web 服务器时所使用身份的用户名 [nobody] appuser

为上述用户名输入组 [nobody] appgrp

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

如下:
用户名 appuser
用户组 appgrp
填1,下一步

1
2
3
4
5
6
7

请指定 Oracle Access Manager 10.1.4.3.0 WebGate 的安装目录。

请指定目录名称或按 Enter 键 [/opt/netpoint/webgate] /app/soft/webgate

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

填写webgate安装目录,/app/soft/webgate
填1,下一步

1
2
3
4
5
6
7
8
9
10

Oracle Access Manager 10.1.4.3.0 WebGate 将安装在以下位置:
/app/soft/webgate4/access
总大小:
133.4 MB
请记下 Oracle Access Manager 10.1.4.3.0 WebGate 安装目录: /app/soft/webgate4/access,
因为您将来需要引用它。

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

GCC 运行时库的位置 []: /lib64

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

正在安装 Oracle Access Manager 10.1.4.3.0 WebGate... 请等待。


|-----------|-----------|-----------|------------|
0% 25% 50% 75% 100%
||||||||||||||||||||||||||||||||||||||||||||||||||

正在创建卸载程序...


正在解压缩语言包。请稍候...


WebGate 配置


WebGate 配置


正在更改文件所有权和权限...

-------------------------------------------------------------------------------


指定传输安全模式
[X] 1 - 公开模式: 不加密
[ ] 2 - 简单模式: 通过 SSL 和 Oracle 提供的公共密钥证书进行加密
[ ] 3 - 证书模式: 通过 SSL 和外部 CA 提供的公钥证书进行加密

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
请提供 WebGate ID, 主机名和 WebGate 连接的端口号。 必须对安装的每个 WebGate 使用唯一的 ID。

WebGate ID [XXX_WebGate]

WebGate 的口令6 [*******]

Access Server ID [acc_id_oam]

在其中安装 Access Server 的主机名 [node2]

Access Server 监听的端口号 [6000]

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

按照集团给的配置填写,例:

Name Value
WebGate ID XXX_WebGate
Password for WebGate 123456
Access Server ID acc_id_oam
Host name where an Access Server is installed node2
Port number the Access Server listens to 6000

填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

正在配置 WebGate...

-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 安装在 Oracle Access Manager 10.1.4.3.0
WebGate 安装目录下。要使用 Oracle Access Manager 10.1.4.3.0 WebGate 模块, 可通过修改 Web
服务器目录中的配置来配置 Web 服务器。Oracle 可以自动为您更新配置。您也可以手动更新。

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1


填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
-------------------------------------------------------------------------------

请输入 Web 服务器配置目录的 httpd.conf 的绝对路径。
(如 "/export/apache/conf/httpd.conf") [] /app/soft/apache/conf/httpd.conf

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1


正在更新 Web 服务器配置...

出现错误。请重试。
WebGate already exists in your httpd.conf.
EditHttpConf Error. Unable to automatically update
/app/soft/apache/conf/httpd.conf.
No changes have been made to /app/soft/apache/conf/httpd.conf.
-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 安装在 Oracle Access Manager 10.1.4.3.0
WebGate 安装目录下。要使用 Oracle Access Manager 10.1.4.3.0 WebGate 模块, 可通过修改 Web
服务器目录中的配置来配置 Web 服务器。Oracle 可以自动为您更新配置。您也可以手动更新。

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 4

-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 安装在 Oracle Access Manager 10.1.4.3.0
WebGate 安装目录下。要使用 Oracle Access Manager 10.1.4.3.0 WebGate 模块, 可通过修改 Web
服务器目录中的配置来配置 Web 服务器。Oracle 可以自动为您更新配置。您也可以手动更新。

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

-------------------------------------------------------------------------------


请输入 Web 服务器配置目录的 httpd.conf 的绝对路径。
(如 "/export/apache/conf/httpd.conf") [/app/soft/apache/conf/httpd.conf]

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1


正在更新 Web 服务器配置...

出现错误。请重试。
Error: You are not authorized to configure this web server
EditHttpConf Error. Unable to automatically update
/app/soft/apache/conf/httpd.conf.
No changes have been made to /app/soft/apache/conf/httpd.conf.
-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 安装在 Oracle Access Manager 10.1.4.3.0
WebGate 安装目录下。要使用 Oracle Access Manager 10.1.4.3.0 WebGate 模块, 可通过修改 Web
服务器目录中的配置来配置 Web 服务器。Oracle 可以自动为您更新配置。您也可以手动更新。

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 4

-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 安装在 Oracle Access Manager 10.1.4.3.0
WebGate 安装目录下。要使用 Oracle Access Manager 10.1.4.3.0 WebGate 模块, 可通过修改 Web
服务器目录中的配置来配置 Web 服务器。Oracle 可以自动为您更新配置。您也可以手动更新。

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0] 1

是否继续自动更新 "httpd.conf"?
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

输入Apache配置文件的绝对路径,配置失败
查找原因:
1.怀疑是第一次配置的webgate在捣鬼,第一次配置成功,但是WebGate 主机名和 WebGate 连接的端口号是失败的,直接跳过了。删掉Apache,重装一次;
果然,奏效,接着往下走

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-------------------------------------------------------------------------------


请输入 Web 服务器配置目录的 httpd.conf 的绝对路径。
(如 "/export/apache/conf/httpd.conf") [/app/soft/apache/conf/httpd.conf]

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1


正在更新 Web 服务器配置...

-------------------------------------------------------------------------------
配置 Web 服务器

已经为 WebGate 修改 Web 服务器配置

请重新启动 Web 服务器以完成 WebGate 的安装。

按 1 到下一步, 3 取消 或者 4 重新显示 [1]


填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

-------------------------------------------------------------------------------
配置 Web 服务器

如果 Web 服务器是在 SSL 模式下设置的, 则需要使用与 SSL 相关的参数配置 httpd.conf 文件。要手动调整 SSL 配置,
请按显示的说明进行操作。

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1]

-------------------------------------------------------------------------------


有关其余产品设置和 Web 服务器配置的信息, 请参阅文档:
/app/soft/webgate4/access/oblix/lang/en-us/docs/config.htm
是否希望安装程序启动浏览器来查看此文档?
也可以记下文档路径, 以后自己启动浏览器。
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0] 1

有关其余产品设置和 Web 服务器配置的信息, 请参阅文档:
/app/soft/webgate4/access/oblix/lang/en-us/docs/config.htm
是否希望安装程序启动浏览器来查看此文档?
也可以记下文档路径, 以后自己启动浏览器。
[X] 1 - 是
[ ] 2 - 否

要选择一个选项,请输入它的编号或在完成时输入 0: [0]

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

错误: 无法在当前路径中找到 Netscape 浏览器。
-------------------------------------------------------------------------------
配置 Web 服务器

请启动浏览器并打开 /app/soft/webgate4/access /oblix/lang/en-us/docs/config.htm 文档,
以获得有关配置 Web 服务器的详细信息。

按 1 到下一步, 2 到上一步, 3 取消 或者 4 重新显示 [1] 1

启动浏览器失败,无所谓,往下走,
填1,下一步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35


正在更改文件所有权和权限...

-------------------------------------------------------------------------------


请阅读以下信息。


Oracle COREid 10.1.4.3.0 自述文件


<VirtualHost *:9008>


---------------------------------------
目录
---------------------------------------

---------------------------------------
与 Oracle 联系
---------------------------------------

如果您在安装或配置 NetPoint 方面有疑问,请与 Oracle 客户关怀联系,电话为 (800) 833-3536,或者可以访问链接
http://www.oracle.com/corporate/contact/index.html。

Oracle
http://www.oracle.com
公司总部
500 Oracle Parkway
Redwood Shores,CA 94065

按 Enter 键 阅读文本(Y)(Q) [输入 q 以退出(N)] q

完成安装
填q,退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14

按 1 到下一步, 3 取消 或者 4 重新显示 [1] 1

-------------------------------------------------------------------------------

Oracle Access Manager 10.1.4.3.0 WebGate 已成功安装。
Oracle Access Manager 10.1.4.3.0 WebGate 设置信息
传输安全: open
WebGate ID: CRLD_ERPZT_WebGate
Access Server 主机名: drjtldapvdra05
Access Server 端口号: 5575

按 3 完成 或者 4 重新显示 [3] 3
您在 /var/spool/mail/appuser 中有邮件

webgate安装结束, Apache重启

Apache配置

1.1 修改/apps/apache/conf/httpd.conf
监听的端口:

1
Listen 9008

修改:

1
Include conf/httpd-vhosts.conf

1
2
3
<Location "/oberr.cgi">
SetHandler obwebgateerr
</Location>

下面增加:

1
2
3
4
<Location "/obrar.cgi">
AuthType Oblix
require valid-user
</Location>

修改:

1
2
3
4
<LocationMatch "*">
AuthType Oblix
require valid-user
</LocationMatch>

1
2
3
4
<LocationMatch "^/((?!(api|logfiles|osp)).)*$">
AuthType Oblix
require valid-user
</LocationMatch>

1.2. 修改/app/soft/apache/conf/httpd-vhost.conf
初始该配置文件的内容为空,参考以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *:9008>
ServerAdmin jitian-web-osp
DocumentRoot "/www/jitian-web-osp"
ServerName jitian-web-osp
ServerAlias jitian-web-osp
# ErrorLog "/www/jitian-web/logs/error_log"
# CustomLog "/www/jitian-web/logs/dummy-host.8888.com-access_log" common
# 开启反向代理
# Allow Override All
# Order allow,deny
# Allow from all
# PHP
ProxyPass / http://10.0.XX.X:9009/
ProxyPassReverse / http://10.0.XX.X:9009/
</VirtualHost>

ProxyPass 与 ProxyPassReverse 后面的『http://10.0.XX.X:9009/』是需要我们的请求的真正的目的服务器,其前边的 空格+/+空格 也是属于我们配置的一部分

检查Apache是否安装成功
重启:

1
2
/app/soft/apache/bin/httpd -k start
lsof -i :9008