V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
Kymair
V2EX  ›  NGINX

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

  •  
  •   Kymair ·
    kymair · 2013-01-29 19:59:14 +08:00 · 10035 次点击
    这是一个创建于 4314 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在本地有一台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 ...

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

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

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

    example: http://uimeet.com/imdb-api-release/
    Kymair
        6
    Kymair  
    OP
       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
        7
    BOYPT  
       2013-01-30 15:32:03 +08:00
    @Kymair
    确实有个流派是把很多业务逻辑以C模块方式去实现,但我认为那是属于优化流程,因为web开发首先是实现,这里面一般面向动态语言,然后再针对瓶颈去优化;模块级别的代码是C,维护成本会日益增加。淘宝、阿里之类的当然大可拿nginx大写特写,但不是谁都是淘宝能长期养下一群牛人,直接学人家那样直接上一堆模块只是埋下隐患。

    当然,这仅仅是个效益最大化问题,符合需求当然才是最重要的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:36 · PVG 22:36 · LAX 06:36 · JFK 09:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.