怎样用LDAP(AD)来认证Nginx的proxy_pass?

2013-01-29 19:59:14 +08:00
 Kymair
在本地有一台server foo可以访问某些受限环境的server bar(单独开了防火墙foo -> bar:80)
然后http://foo/abc会用proxy_pass转到http://bar/abc

现在的需求是,我想在Nginx里配置一些认证,最好是能用LDAP(Active Directory), 只让授权用户来访问http://foo/aaa http://foo/bbb
麻烦请问各位有什么好的思路?
因为http://foo/redmine 和http://foo/jenkins的Jenkins和Redmine(Rails app)都已经有插件去实现AD的认证,所以想统一用AD.. 可是又不大清楚怎样使用Redmine或Jenkins现有的系统去认证Nginx http://foo/aaa http://foo/bbb 的proxy_pass ...

好像有点乱,不知道描述清楚了没 >_<
10039 次点击
所在节点    NGINX
7 条回复
ericFork
2013-01-29 20:31:25 +08:00
Kymair
2013-01-29 20:41:42 +08:00
@ericFork 谢谢,其实试过nginx-auth-ldap 就是还没大想明白要怎么跟Redmine或者Jenkins或者任意的auth.php之类的做集成...
BOYPT
2013-01-30 13:39:25 +08:00
让nginx做auth有啥意义呢,这里明显是需要多个系统集成,nginx作为一个固化系统,是很难做到灵活的,你的web应用都是rail,wsgi前端套个auth中间件来做认证就是了。

HTTP Basic Auth仅仅是浏览器每次都带了HTTP头,写着用户名和base64了的密码,这种操作没必要折腾nginx来完成。
Kymair
2013-01-30 14:06:08 +08:00
@BYOPT 我需要验证的后台服务并不是Rails, 也不是Jenkins, 只是一些监测的古老的Applets + 纯HTML. 我只是想可不可以"借用" Rails或者Jenkins的authentication而已

Anyway已经成功, 感谢各位。直接用nginx-auth-ldap即可,会弹出一个类似HTTP Basic的对话框来输入用户名密码,不用专门的页面
LazyZhu
2013-01-30 14:45:38 +08:00
@BOYPT "nginx作为一个固化系统,是很难做到灵活的"
这话说明你根本不懂nginx

example: http://uimeet.com/imdb-api-release/
Kymair
2013-01-30 14:58:00 +08:00
:) Nginx其实是非常灵活的,尤其是武装了各种第三方模块之后以及Lua之后。
可以参见淘宝的应用 http://tengine.taobao.org/download/taobao_nginx_2012_06.pdf
以及Nginx传奇人物章宜春同学的 http://agentzh.org/misc/slides/nginx-conf-scripting/#1 + http://agentzh.org/misc/slides/recent-dev-nginx-conf/#1
BOYPT
2013-01-30 15:32:03 +08:00
@Kymair
确实有个流派是把很多业务逻辑以C模块方式去实现,但我认为那是属于优化流程,因为web开发首先是实现,这里面一般面向动态语言,然后再针对瓶颈去优化;模块级别的代码是C,维护成本会日益增加。淘宝、阿里之类的当然大可拿nginx大写特写,但不是谁都是淘宝能长期养下一群牛人,直接学人家那样直接上一堆模块只是埋下隐患。

当然,这仅仅是个效益最大化问题,符合需求当然才是最重要的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/59193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX