当前位置: 首页 > news >正文

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装

目录

一、OpenLdap介绍

二、PhpLdapAdmin介绍

三、使用docker-compose进行安装

1. docker-compose.yml

2. grafana配置文件

3. provisioning

四、安装openldap、phpldapadmin、grafana

五、配置OpenLDAP

1. 登陆PhpLdapAdmin web管理

2. 需要注意的细节

内容介绍参考:


一、OpenLdap介绍

  OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。它本身是一个小型文件数据库。Ldap是树形结构的,能够通过server + client(服务端+客户端)的方式。进行统一的用户(账号)管理。

举个栗子:如果有100台机器,一个用户需要登录这100台机器。传统的做法就是每台机器中,都需要创建登录账号,操作100次。想想都会疯掉。如果使用ldap来管理,就只需要在ldap服务中创建一次就可以了。账号清理也是类似的道理。我们通过控制一台机器登录账号,即可控制所有机器登录账号。是不是方便很多呢?

ldap架构图

二、PhpLdapAdmin介绍

   phpLDAPadmin(又称PLA)是一个基于Web的LDAP客户端。它提供了方便,随时随地可访问的,多语言管理为LDAP服务器。其层次树状浏览器和先进的搜索功能,使其直观地浏览和管理LDAP目录。既然是一个Web应用程序,此浏览器的LDAP工作在许多平台上,让您的LDAP服务器轻松地从任何位置管理。

   简单来说就是openldap的一个web管理页面,通过点点的方式代替复杂的命令

三、使用docker-compose进行安装

说明:Grafana只是作为对接LDAP的一个应用,可以替换成其它应用例如jenkins、gitlab等等...

说了不少废话了,该上干货了。下面是应用于生产环境中的配置,由于一些隐私不得进行脱敏~

# 安装目录结构如下root@10-50-183-112:/home/sunwenbo# tree /home/sunwenbo/
/home/sunwenbo/
├── docker-compose.yml
└── grafana├── grafana.ini├── ldap.toml└── provisioning├── access-control├── alerting├── dashboards├── datasources├── notifiers└── plugins8 directories, 3 files

1. docker-compose.yml

完整的内容如下,替换到yml中的xxx即可

version: '3'services:openldap:image: osixia/openldap:latestcontainer_name: openldap-serverhostname: ldap.xxx.cnrestart: alwaysenvironment:LDAP_LOG_LEVEL: "256"LDAP_ORGANISATION: "xxx Company"LDAP_DOMAIN: "xxx.cn"LDAP_ADMIN_PASSWORD: 'xxxxxxx'LDAP_BASE_DN: "dc=xxx,dc=cn"LDAP_TLS: "true"LDAP_READONLY_USER: "false"LDAP_BACKEND: "mdb"LDAP_TLS_CRT_FILENAME: "ldap.crt"LDAP_TLS_KEY_FILENAME: "ldap.key"LDAP_TLS_DH_PARAM_FILENAME: "dhparam.pem"LDAP_TLS_CA_CRT_FILENAME: "ca.crt"LDAP_TLS_ENFORCE: "false"LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"LDAP_TLS_VERIFY_CLIENT: "demand"LDAP_REPLICATION: "false"KEEP_EXISTING_CONFIG: "false"LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"LDAP_SSL_HELPER_PREFIX: "ldap"tty: truestdin_open: trueports:- 389:389- 636:636volumes:- /data/slapd/database/:/var/lib/ldap/- /data/slapd/config/:/etc/ldap/slapd.d/networks:- openldap-netphpldapadmin:image: osixia/phpldapadmin:latesthostname: phpldapadmin-servicerestart: alwayscontainer_name: phpldapadminprivileged: trueenvironment:PHPLDAPADMIN_HTTPS: "false"PHPLDAPADMIN_LDAP_HOSTS: "ldap.xxx.cn"ports:- 80:80- 443:443depends_on:- openldapnetworks:- openldap-netgrafana:image: grafana/grafana:latesthostname: grafanarestart: alwayscontainer_name: grafanaprivileged: trueports:- 3000:3000volumes:- /home/sunwenbo/grafana/:/etc/grafanadepends_on:- openldapnetworks:- openldap-net
networks:openldap-net:driver: bridge

2. grafana配置文件

grafana.ini 只修改以下内容即可

#################################### Auth LDAP ##########################
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml                                                                  
allow_sign_up = true             
# prevent synchronizing ldap users organization roles
# skip_org_role_sync = false                                                     # LDAP background sync (Enterprise only)
# At 1 am every day
sync_cron = "0 1 * * *"
active_sync_enabled = true   

ldap.toml 配置如下,xxx替换为实际的dc

[[servers]]
host = "10.50.183.112"
port = 389
ssl_skip_verify = falsebind_dn = "cn=admin,dc=xxx,dc=cn"
bind_password = 'xxxxxxx'search_filter = "(cn=%s)"search_base_dns = ["ou=users,dc=xxx,dc=cn"]group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
group_search_base_dns = ["ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"]
group_search_filter_user_attribute = "uid"[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email =  "email"[[servers.group_mappings]]
group_dn = "cn=Grafana-admins,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Admin"[[servers.group_mappings]]
group_dn = "cn=Grafana-editors,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Editor"[[servers.group_mappings]]
# group_dn = "*"  #修改为*,可以认为所有LDAP用户都是viewer角色,根据实际需求进行配置
group_dn = "cn=Grafana-viewers,ou=GrafanaGroups,ou=Application,dc=xxx,dc=cn"
org_role = "Viewer"

3. provisioning

这个目录不做任何修改只是单纯的挂载出来了。

四、安装openldap、phpldapadmin、grafana

一条命令搞定

root@10-50-183-112:/home/sunwenbo# docker-compose  up -d 
[+] Running 4/4✔ Network sunwenbo_openldap-net  Created                                                                                                                                                                                             0.0s ✔ Container openldap-server      Started                                                                                                                                                                                             0.2s ✔ Container phpldapadmin         Started                                                                                                                                                                                             0.6s ✔ Container grafana              Started                                                                                                                                                                                             0.6s 
root@10-50-183-112:/home/sunwenbo# docker-compose ps 
NAME                IMAGE                        COMMAND                 SERVICE             CREATED             STATUS              PORTS
grafana             grafana/grafana:latest       "/run.sh"               grafana             16 seconds ago      Up 14 seconds       0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
openldap-server     osixia/openldap:latest       "/container/tool/run"   openldap            16 seconds ago      Up 15 seconds       0.0.0.0:389->389/tcp, :::389->389/tcp, 0.0.0.0:636->636/tcp, :::636->636/tcp
phpldapadmin        osixia/phpldapadmin:latest   "/container/tool/run"   phpldapadmin        16 seconds ago      Up 14 seconds       0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp

检查端口是否监听

root@10-50-183-112:/home/sunwenbo# netstat  -nlpt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      323033/sshd: /usr/s 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      377291/docker-proxy 
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      377156/docker-proxy 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      377266/docker-proxy 
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      377137/docker-proxy 
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      377248/docker-proxy 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      591/systemd-resolve 
tcp6       0      0 :::22                   :::*                    LISTEN      323033/sshd: /usr/s 
tcp6       0      0 :::80                   :::*                    LISTEN      377299/docker-proxy 
tcp6       0      0 :::389                  :::*                    LISTEN      377162/docker-proxy 
tcp6       0      0 :::443                  :::*                    LISTEN      377273/docker-proxy 
tcp6       0      0 :::636                  :::*                    LISTEN      377144/docker-proxy 
tcp6       0      0 :::3000                 :::*                    LISTEN      377253/docker-proxy 

五、配置OpenLDAP

1. 登陆PhpLdapAdmin web管理

目录结构如下

2. 需要注意的细节

OU:创建选择为Generic: Organisational Unit

CN:创建选择为Generic: Posix Group

将名字为test的人员添加到CN

登陆grafana验证

有不明白的地方欢迎随时找我~

查询用户信息
ldapsearch -x -H ldap://10.50.183.112:389 -D "cn=admin,dc=bigmodel,dc=cn" -w "StrongAdminPassw0rd" -b "dc=bigmodel,dc=cn" "(cn=sunwenbo)"查询组信息
ldapsearch -x -H ldap://10.50.183.112:389 -D "cn=admin,dc=bigmodel,dc=cn" -w "StrongAdminPassw0rd" -b "dc=bigmodel,dc=cn" "(&(objectClass=organizationalUnit)(ou=groups)"

内容介绍参考:

小白篇(十九):openLdap介绍(又名:Ldap介绍)_belialxing的博客-CSDN博客

相关文章:

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装

目录 一、OpenLdap介绍 二、PhpLdapAdmin介绍 三、使用docker-compose进行安装 1. docker-compose.yml 2. grafana配置文件 3. provisioning 四、安装openldap、phpldapadmin、grafana 五、配置OpenLDAP 1. 登陆PhpLdapAdmin web管理 2. 需要注意的细节 内容介绍参考…...

Java | 排序内容大总结

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴算法整理🌴两个结论🌴总结 🌴前言 本文内容是关于选择排序、冒泡排序、插入排序…...

Go 语言入门指南:基础语法和常用特性解析

什么是Go语言? Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它用批判吸收的眼光,融合C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。 Go语言语法与C相近,但功能上有&a…...

20.添加HTTP模块

添加一个简单的静态HTTP。 这里默认读者是熟悉http协议的。 来看看http请求Request的例子 客户端发送一个HTTP请求到服务器的请求消息,其包括:请求行、请求头部、空行、请求数据。 HTTP之响应消息Response 服务器接收并处理客户端发过来的请求后会返…...

Qemu 架构 硬件模拟器

Qemu 架构 硬件模拟器 Qemu 是纯软件实现的虚拟化模拟器, 几乎可以模拟任何硬件设备, 我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机, 虚拟机认为自己和硬件打交道, 但其实是和 Qemu 模拟出来的硬件打交道&#xff…...

通过starrocks jdbc外表查询sqlserver

1.sqlserver环境准备,使用docker环境,可以参考使用flink sqlserver cdc 同步数据到StarRocks_gongxiucheng的博客-CSDN博客 部署获得sqlserver环境; 2.获取starrocks环境,也可以通过docker部署,参考:使用…...

ArcGIS 10.5安装教程!

软件介绍: ArcGIS Desktop 10.5中文特别版是一款功能强大的GSI专业电子地图信息编辑和开发软件,ArcGIS Desktop 包括两种可实现制图和可视化的主要应用程序,即 ArcMap 和 ArcGIS Pro。ArcMap 是用于在 ArcGIS Desktop 中进行制图、编辑、分析…...

ConstraintLayout约束布局

1.进行复杂页面布局时&#xff0c;最外层的根布局不要用ConstraintLayout. 示例布局&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.co…...

通过pyinstaller将python项目打包成exe执行文件

目录 第一步&#xff1a;安装pyinstaller 第二步&#xff1a;获取一个ico图标&#xff08;也即是自己这个exe文件最后的图标&#xff09; 第三步&#xff1a;打包 第一步&#xff1a;安装pyinstaller pip install pyinstaller 第二步&#xff1a;获取一个ico图标&#xff…...

P1068 [NOIP2009 普及组] 分数线划定

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才&#xff0c;A 市对所有报名的选手进行了笔试&#xff0c;笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150 % 150\% 150% 划定&#xff0c;即如果计划录取 m m …...

应用在汽车新风系统中消毒杀菌的UVC灯珠

在病毒、细菌的传播可以说是一个让人敏感而恐惧的事情。而对于车内较小的空间&#xff0c;乘坐人员流动性大&#xff0c;更容易残留细菌病毒。车内缺少通风&#xff0c;残留的污垢垃圾也会滋生细菌&#xff0c;加快细菌的繁殖。所以对于车内消毒就自然不容忽视。 那么问题又来…...

TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS

本文是LLM系列的文章之一&#xff0c;针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL-WORLD APIS》的翻译。 TOOLLLMs&#xff1a;让大模型掌握16000的真实世界APIs 摘要1 引言2 数据集构建3 实验4 相关工作5 结论 摘要 尽管开源大型语言模型&…...

【JavaSpring】spring接口-beanfactory和applicationcontext与事件解耦

beanfactory 1.applicationcontext的父接口 2.是Spring的核心容器 功能 表面只有getBean&#xff0c;但实现类默默发挥了巨大作用 1.管理所有bean 2.控制反转 3.基本的依赖注入 applicationcontext 功能 1.继承了MessageSource&#xff0c;有了处理国际化资源的能力 …...

《深入理解Java虚拟机》——Java内存区域与内存溢出异常

Java内存区域与内存溢出异常 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 实例堆溢出栈溢出 运行时数据区域 根据《Java虚拟机规范的规定》&#xff0c;Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。 程序计数器 在Java虚…...

公众号hanniman往期精选

目录 一、AI产品分析&#xff08;10篇&#xff09; 二、AI产品经理&#xff08;10篇&#xff09; 三、AI技术&#xff08;10篇&#xff09; 四、AI行业及个人成长&#xff08;10篇&#xff09; 一、AI产品分析 1、【重点】深度 | 关于AIGC商业化的13个非共识认知&#xff08;80…...

谷粒商城----缓存与分布式锁

1、缓存使用 为了系统性能的提升&#xff0c;我们一般都会将部分数据放入缓存中&#xff0c;加速访问。而 db 承担数据落盘工作。 哪些数据适合放入缓存&#xff1f;  即时性、数据一致性要求不高的  访问量大且更新频率不高的数据&#xff08;读多&#xff0c;写少&…...

【JavaEE进阶】Spring事务和事务传播机制

文章目录 一. 什么是Spring事务二. Spring中事务的实现1. Spring编程式事务2. 声明式事务2.1 trycatch下事务不会自动回滚的解决方案2.2 Transactional 作用范围2.3 Transactional 参数说明2.4 Transactional 工作原理 三. 事务的隔离级别1. 事务的四大特性2. Spring中设置事务…...

【Hive】drop table需注意外部表

什么是内部表&#xff0c;外部表&#xff1f; 比较专业的定义&#xff1a; 外部表需要转为内部表&#xff0c;执行删除操作才能真的删表结构删表数据。否则drop table仅是删除了表数据&#xff0c;表结构还是存在的。 alter table tb_name set TBLPROPERTIES(EXTERNALfalse);…...

【2023数学建模国赛】A题定日镜场的优化设计模型建立

2023年全国大学生数学建模竞赛A题定日镜场的优化设计&#xff0c;目前已写出第四版国赛A题思路和模型详细公式&#xff0c;目录如下&#xff1a; 一、 问题重述... 1 二、 问题分析... 1 三、 模型假设... 6 四、 问题一模型的建立和求解... 6 4.1 定日镜场坐标系的建立...…...

QT 事件与信号区别

事件&#xff08;Event&#xff09;和信号&#xff08;Signal&#xff09;是两个在编程中具有不同概念和用途的术语。 事件&#xff08;Event&#xff09;&#xff1a; 事件是程序运行过程中发生的特定动作或状态改变。可以是用户输入、硬件触发、系统通知等。 事件通常由操作…...

threestudio-3dgs实战:5分钟生成可编辑的3D汉堡模型(避坑指南)

threestudio-3dgs实战&#xff1a;5分钟生成可编辑的3D汉堡模型&#xff08;避坑指南&#xff09; 当我在深夜调试完最后一个参数&#xff0c;看到屏幕上那个纹理清晰、结构完整的3D汉堡模型时&#xff0c;突然意识到——3D高斯泼溅技术正在彻底改变数字内容创作的方式。不同于…...

BilibiliDown高效获取B站视频完整指南

BilibiliDown高效获取B站视频完整指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliDown 你是否…...

OpCore-Simplify终极指南:如何快速构建完美的OpenCore EFI配置

OpCore-Simplify终极指南&#xff1a;如何快速构建完美的OpenCore EFI配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的Hackintosh配置…...

Homepage终极灾难恢复指南:保障业务连续性的完整策略

Homepage终极灾难恢复指南&#xff1a;保障业务连续性的完整策略 【免费下载链接】homepage 一个高度可定制的主页&#xff08;或起始页/应用程序仪表板&#xff09;&#xff0c;集成了Docker和服务API。 项目地址: https://gitcode.com/GitHub_Trending/ho/homepage Ho…...

2条普通程序员的靠谱出路:AI开发与出海SEO,让AI成为你的助力而非威胁

文章分析了适合普通程序员的两种新出路&#xff1a;转型AI开发和出海做SEO。这两种路径均满足三大条件&#xff1a;市场空间大、AI能赋能工作、有标准执行路径。AI开发是配合业务团队开发AI工作流&#xff0c;可通过前端专精→涉猎AI应用开发→魔改开源项目逐步转型。出海SEO则…...

HDLC(高级数据链路控制):从帧结构解析到C语言模拟实现

1. HDLC协议基础&#xff1a;从比特流到可靠传输 第一次接触HDLC协议时&#xff0c;我盯着那串01111110的标志位发了半天呆——这不就是个简单的比特序列吗&#xff1f;怎么就能成为整个协议的基础&#xff1f;后来在调试卫星通信模块时才发现&#xff0c;正是这个看似简单的设…...

VSCode 高效开发:配置 Pixel Dream Workshop 模型调用的代码片段与插件

VSCode 高效开发&#xff1a;配置 Pixel Dream Workshop 模型调用的代码片段与插件 1. 为什么需要优化开发工作流 如果你经常使用Pixel Dream Workshop这类AI模型进行开发&#xff0c;可能会遇到一个共同痛点&#xff1a;每次调用API时都要重复编写相似的请求代码&#xff0c…...

如何快速上手Archivy:5分钟搭建个人知识管理系统

如何快速上手Archivy&#xff1a;5分钟搭建个人知识管理系统 【免费下载链接】archivy Archivy is a self-hostable knowledge repository that allows you to learn and retain information in your own personal and extensible wiki. 项目地址: https://gitcode.com/gh_mi…...

SAR成像CS算法实战:从原理到点目标仿真的MATLAB实现

1. CS算法在SAR成像中的核心价值 第一次接触SAR成像处理时&#xff0c;我被CS&#xff08;Chirp Scaling&#xff09;算法的精妙设计震撼到了。这个算法就像一位经验丰富的魔术师&#xff0c;能够将雷达回波中的距离徙动&#xff08;RCMC&#xff09;和二次距离压缩&#xff08…...

新手福音:用快马ai生成交互式linux命令学习器,边学边练轻松入门

作为一名Linux新手&#xff0c;我刚开始接触命令行时总是记不住各种命令的用法&#xff0c;更别提写脚本了。直到发现了InsCode(快马)平台&#xff0c;它让我用自然语言描述需求就能生成可运行的交互式学习工具&#xff0c;简直是零基础入门的神器&#xff01; 为什么需要交互式…...