SSO单点登陆,范例代码部署增益方案
发布于 作者:苏南大叔 来源:程序如此灵动~

经过两篇sso
文章的分析,相信大家都会感觉到这个legalthings/sso
官方提供的运行方式的局限性了。为了更好地分析这个sso
的过程。本文中,苏南大叔对这个legalthings/sso
范例,稍稍的进行些改造。以便其更接近于生产模式。改善的地方主要集中在两点:不同的broker
使用不用的域名,并且启动命令的参数传递,也换成其他方式。

本文的范例来自legalthings/sso
。截至到发稿,最新版本为0.3.0 - Bearer auth
。
改造目标
本文范例legalthings/sso
源码来自:
前置阅读文章为:
原版的legalthings/sso
范例运行,需要执行如下四条命令。
但是这几个启动命令,和平时大家所熟悉的nginx
+php
的构架是很不搭配的,导致很多新人会望而却步。那么苏南大叔本文中的主要改造之处,就在于使用大家更容易接收的方式实现上述四条命令相同的目的。
网站域名设定
server
域名假设为sso
,三个broker
域名分别设置为a
/b
/c
。四个域名设置在本地的hosts
位置中做了映射。当然,正式的生产环境上,是没有这一步骤的。这里仅仅是个模拟操作而已。

nginx
设置
这里的设置,就是最普通的nginx
+php
的设置了,唯一特殊的地方,就是增加了个access_log
。主要目的就是便于分析相互之间的数据请求情况。这个nginx
的正常生效,需要新建个对应的logs
目录。
另外,/code/www/php/sso/
字样,是苏南大叔本地的路径,您需要修改为您自己的项目路径。

代码更改
本步骤仅仅是为了替换原版命令中的env
传递命令的方式,而做的修改,并不是唯一答案。下面这篇文章有更详细说明:
增加一个新的配置文件examples/config/broker.php
,注意设置需要和server/myssoserver.php
中的配置保持一致。
然后在下述一系列文件中,增加上述配置文件的调用。比如在autoload.php
后面,增加这个require_once
。
broker/*.php
,ajax-broker/*.php
:

修改ajax-broker
代码
文件ajax-broker/index.html
,这代码里面有个google cdn
上的jquery
引用,由于未知原因,这个js
文件也是不能访问的。苏南大叔给它换一个新的资源文件。

总结
上述设置之后,从使用方式上来说,就和生产环境基本上没有太大区别了。也不管是什么样的服务器系统也都是能部署和使用的了。大家敬请期待,接下来的苏南大叔提供的sso
原理分析及代码实现。



Hello, Thank you for nice article!
This is really helpful for me ( I am translating from Chinese to Japanese )
I am developing applications which are PHP app as a main server and Java app as a broker.
Is there any possibility to pass session ID from Java app to PHP app using this lib? Thank you!