• Mongodb集成LDAP授权


    一、环境简介

    Mongodb enterprise v4.0.16

    OpenLDAP v2.4.44

    二、Mongodb集成LDAP的授权过程

    1. 客户端指定某种外部验证方式链接Mongodb;
    2. Mongodb根据配置中设置的ip、用户、密码等来绑定LDAP服务器;
    3. Mongodb根据配置的查询模板构建查询语句,并向LDAP服务器发送请求获得验证用户所属的用户组信息;
    4. LDAP服务器执行查询并返回用户组的信息;
    5. Mongodb在admin数据库中查找跟用户组对应的role,并对应的权限授权给当前用户;
    6. 客户端在授权的数据库上进行操作;

    三、配置过程

    在LDAP服务器新建用户mongodb

    image

    在LDAP服务器中新建dbrole组,并通过memberUid进行关联,这里需要填写用户的全限定名

    image

    在mongod.conf中新增LDAP的配置

    security:
        ldap:
            servers: "192.168.32.15:389"
            authz:
                queryTemplate: "dc=mango,dc=com?cn?sub?(&(objectClass=posixGroup)(memberUid={USER}))"
            bind:
                queryUser: "cn=root,dc=mango,dc=com"
                queryPassword: "mango"
                method: "simple"
    

    重启mongdb服务

    systemctl restart mongod
    

    在mongodb的admin数据库中新建角色

    use admin
     
    db.createRole({
      "role" : "dbrole",
      "privileges" : [],
      "roles" : [{
          "role" : "dbOwner",
          "db" : "test"
        }]
    })
    

    使用mongodb shell连接数据库

     mongo --username uid=mongodb,ou=db,dc=mango,dc=com --password mangodb --authenticationMechanism PLAIN --authenticationDatabase  '$external'
    

    四、security.ldap.authz.queryTemplate查询语法

    首先这个查询模板是LDAP server执行的,所以其最终是满足LDAP的查询语法;

    [ dn  [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]
    

    dn:定义查询开始的基点对象;

    attributes:定义返回命中的条目的哪个字段;如果不定义则返回条目对应的dn;

    scope:进一步控制相对基点的搜索范围,可以取值one、sub、base;

    filter:定义过滤条件,LDAP有自己的一套语法;

    具体的查询语法,网上已经比较多,这里只简单介绍一下mongod.config里配置的查询语句

    dc=mango,dc=com?cn?sub?(&(objectClass=posixGroup)(memberUid={USER}))

    在dc=mango,dc=com的节点下,查找objectClass=posixGroup,同时memberUid=当前登录用户的节并返回节点的cn字段;

    这里的{USER}在查询之前,mongodb会将它替换为登录的用户id;基于当前版本的mongodb的实现机制,这里是不能直接使用常量值;

  • 相关阅读:
    [洛谷P2824][题解][HEOI2016/TJOI2016]排序
    [整理]CSP-S2019第一轮试题解析
    [整理]Luogu CSP2020第一轮模拟赛
    [洛谷P4395][题解][BOI2003]Gem 气垫车
    [洛谷P5322][BJOI2019][题解]排兵布阵
    [整理]U S A C O 代 码 小 合 集
    第02组Alpha冲刺 总结
    第02组 Alpha冲刺 (6/6)
    第02组 Alpha冲刺 (5/6)
    第02组 Alpha冲刺 (4/6)
  • 原文地址:https://www.cnblogs.com/wufengtinghai/p/15114316.html
Copyright © 2020-2023  润新知