群晖搭建LDAP服务器实现一个账号登录DSM、Gitea、jellyfin

文章目录

  • 前言
    • 安装LDAP Server
        • 新建群组
        • 新增用户
      • DSM加入LDAP
        • DSM使用LDAP登录
      • Gitea配置
        • 登录
        • 取消其登录权限
      • Jellyfin配置
        • 登录
  • 总结

前言

LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录服务的协议,它具有以下好处:

集中管理用户身份认证和授权:LDAP提供了一种方法,使组织能够集中管理用户的身份认证和授权。通过将用户信息存储在一个中心化的目录服务中,管理员可以更轻松地管理用户账户、密码策略和权限。

也就是说通过ldap 可以实现一个账号、密码可以登陆多个系统或者应用程序,只要他们支持LDAP。

研究几天后发现,使用群晖的LDAP还能够控制用户的登录权限,例如,只让用户登录DSM和Gitea,不能登录jellyfin,而且实现非常简单,这也是为什么选择群晖的套件,而不使用OPENLDAP的原因,其他的也能实现,主要是群晖的安装、使用来简单

安装LDAP Server

首先在群晖的套件中心找到LDAP Server,安装并打开,然后只需设置FQDN和密码即可。

在这里插入图片描述

FQDN可随意设置,例如 abc.com

请记住 Base DN 和 BindDN、还有设置的密码,后面需要这些参数。

新建群组

然后找到管理群组,新增两个群组,gitea和jellyfin群组,后续需要使用。

在这里插入图片描述

新增用户

点击管理用户,新增一个用户,请自己根据实际情况填写

在这里插入图片描述

加入群组,选择gitea和jellyfin,这是控制这两个登录的权限,取消掉以后就不能使用该账号登录对应的应用。

在这里插入图片描述

其他参数根据实际情况填写。

DSM加入LDAP

在控制面版找到域/LDAP

在这里插入图片描述

点击加入按钮,注意,IP为你群晖服务器的IP,DNS可以填路由器的地址,或者119或者114都可以。

在这里插入图片描述

BindDN、Base DN 、密码,填上述LDAP Server 的设置参数。

在这里插入图片描述

加入成功后的状态。

在这里插入图片描述

DSM使用LDAP登录

在控制面版,找到域/LDAP,然后选择LDAP用户,点击更新LDAP数据,可以看到多了一个test用户。

在这里插入图片描述

点击家目录,启动LDAP用户家目录服务

在这里插入图片描述

选中用户,邮件编辑,剩下的权限设置就和DMS账号一样,根据实际情况自行设置。

在这里插入图片描述

然后使用该账号登录即可。

在这里插入图片描述

登录成功!

在这里插入图片描述

Gitea配置

使用管理员账号登录Gitea,找到后台管理,身份及认证---->认证源---->添加认证源

在这里插入图片描述

配置可参考gitea的设置

参数说明
主机群晖IP地址
端口389
绑定DN群晖LDAP Server 的 BindDN
绑定密码LDAP Server设置的密码
用户搜索基准群晖LDAP Server 的 BaseDN

用户过滤规则

(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s))(memberOf=cn=gitea,cn=groups,dc=abc,dc=com))

请注意,其中cn=gitea的giea为ldap 服务器设置的群组名称。后面的,dc=xxx,dc=xxx为BaseDN,这两个一定要根据实际情况进行修改,这也是设置登录权限的关键。

在这里插入图片描述

后面的参数照填即可。

在这里插入图片描述

登录

第一次登录会提示用户名或密码不正确,不要慌,再点击一次登录即可。估计是第一次没同步。

在这里插入图片描述

第二次登录成功

在这里插入图片描述

可以看到用户认证源为ldap

!在这里插入图片描述

取消其登录权限

找到LDAP Server ,选择用户,右键编辑,用户群组,将gitea取消掉,然后再次测试,发现会一直提示用户名或密码不正确。

!在这里插入图片描述

Jellyfin配置

首先在插件中心安装LDAP-Auth这个插件

在这里插入图片描述

参数说明
LDAP Server群晖IP地址
LDAP Port:389
LDAP Bind User群晖LDAP Server 的 BindDN
LDAP Bind User PasswordLDAP Server设置的密码
LDAP Base DN for searches群晖LDAP Server 的 BaseDN

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

LDAP Search Filter,这个和gitea不一样,但是也很类似,

其中cn=jellyfin的jellyfin为ldap 服务器设置的群组名称。后面的,dc=xxx,dc=xxx为BaseDN,这两个一定要根据实际情况进行修改,这也是设置登录权限的关键。

(&(memberOf=cn=jellyfin,cn=groups,dc=abc,dc=com)(objectClass=inetOrgPerson))

在这里插入图片描述
在这里插入图片描述

登录

输入账号密码,一次性登陆成功。

在这里插入图片描述

可以看见账号认证为LDAP

在这里插入图片描述

取消其登录权限见gitea取消其登录权限。

总结

目前使用一段时间基本没有啥问题。但是有已下几个缺陷:
1.无法在gitea和jellyfin更改密码,但是可以登录dsm自助修改密码。
2.其中的封禁登录功能对gitea和jellyfin无效,封禁之后仍可继续登录,但是对dsm有效。

在这里插入图片描述

3.只有在LDAP添加的用户才能实现以上功能。
4.LDAP认证服务器一旦挂掉,所有的应用也就无法登录。
5.LDAP服务器里的用户删掉后,其它平台的用户依旧存在,需要手动删除用户以及配置。
6.LDAP认证服务器一旦挂掉,所有的应用也就无法登录。
7.LDAP服务器里的用户删掉后,其它平台的用户依旧存在,需要手动删除用户以及配置。

本来也就是家用,所以以上问题看起来也不是什么问题,剩下的只能继续慢慢研究。

大家有没有其他支持LDAP认证的平台软件推荐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/329080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【USTC】verilog 习题练习1-5

1 编写 Verilog 代码,使电路输出信号1 输入格式 无输入 输出格式 输出1,位宽为1 module top_module(output out );// Write your code hereassign out 1; endmodule 2编写 Verilog 代码,使电路输出信号0 输入格式 无输入 输出格式 …

虚拟ip可以解决所有的安全问题吗

虚拟IP(Virtual IP)是一种网络技术,可以把多台物理服务器或设备组合成一个逻辑集群,并且使用同一个IP地址对外提供服务。虚拟IP具有负载均衡、故障切换和高可用性等优势,同时还可以作为一种安全措施来增加系统的抗攻击…

S32K3系列 --- 硬件I2C Mcal配置

前言 网上看到很多I2C的教程,基本都是模拟I2C,现在S32K3的芯片支持硬件I2C,我想着就配一个硬件的出来吧,这边记录一下,供大家学习。 一、I2C原理 这里主要教大家如何去配置,去使用。 原理的话可以参考这篇文章: 一文搞懂I2C通信总线_i2c通信的详细讲解-CSDN博客 I2…

详解React与Vue的性能对比

React 和 Vue 是当前最流行的前端开发框架之一。它们都具有高度的灵活性和可扩展性,但在某些方面有所不同。在本篇文章中,我将详细介绍 React 和 Vue 这两个技术,并比较它们的优点和缺点。 目录 1. React: 1.1 优点: …

理解二叉树的深度与高度

二叉树深度:任意一个节点到根节点的距离。 二叉树高度:任意一个节点到叶子节点的距离。

如何避免知识付费小程序平台的陷阱?搭建平台的最佳实践

随着知识经济的兴起,知识付费已经成为一种趋势。越来越多的人开始将自己的知识和技能进行变现,而知识付费小程序平台则成为了一个重要的渠道。然而,市面上的知识付费小程序平台琳琅满目,其中不乏一些不良平台,让老实人…

数据结构奇妙旅程之二叉树初阶

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

【OpenCV学习笔记16】- 图像阈值

这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子,也会给出自己根据官方的例子完成的更改代码,同样彩蛋的实现也会结合多个知识点一起实现一些小功能,来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔…

智慧公厕:打造智慧城市公共厕所信息化管理的新升级

在现代社会中,随着科学技术的不断进步与应用,智慧公厕作为公共服务设施,正迎来一次新的升级与革新。利用先进技术,智慧公厕实现了信息化升级,能够实时监测人员、环境和设备状况,提高使用效率、安全性、舒适…

el-table嵌套两层el-dropdown-menu导致样式错乱

问题&#xff1a; 解决方式&#xff1a; <el-table-column label"操作" fixed"right" width"132" align"center"><template slot-scope"scope"><div v-if"scope.row._index ! 合计"><el-d…

超高难度的开关电源PCB设计

开关电源PCB设计 TD芯片的简单吐槽 先介绍下要设计所用的芯片是TD1837和TD1660。   首先先说下一个小的注意事项&#xff0c;一般在设计芯片引脚的布置的时候SW引脚要离FB引脚越远越好。 这里举个TD的反面例子&#xff1a; 图1 引脚示意图 这里吐槽下芯片行业一个不好的点&…

Mac下载Navicat premium提示文件损坏的解决方案

引用&#xff1a;https://blog.csdn.net/weixin_44898291/article/details/120879508 sudo xattr -r -d com.apple.quarantine

使用Cloudreve快速搭建一个私有网盘,配置存储策略和管理权限以及Webdav设置访问

Cloudreve 是什么&#xff1f; Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台&#xff0c;用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统&#xff0c;亦或是针对大小团体的公有云系统。…

YOLOv8原理与源码解析

课程链接&#xff1a;https://edu.csdn.net/course/detail/39251 【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言&#xff1a;Talk is cheap. Show me the code. 冗谈不够&#xff0c;放码过来&#xff01;代码阅读是从基础到提高的必由之路。 YOLOv8 基于先前…

kafka简单介绍和代码示例

“这是一篇理论文章&#xff0c;给大家讲一讲kafka” 简介 在大数据领域开发者常常会听到MQ这个术语&#xff0c;该术语便是消息队列的意思&#xff0c; Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布&#xff0c;使用Scala语言编写&#xff0c;与2010年…

设计模式-简单工厂

设计模式-简单工厂 简单工厂模式是一个集中管理对象创建&#xff0c;并根据条件生成所需类型对象的设计模式&#xff0c;有助于提高代码的复用性和维护性&#xff0c;但可能会导致工厂类过于复杂且违反开闭原则。 抽象提取理论&#xff1a; 封装对象创建过程解耦客户端与产品…

Kubernetes网络模型概述

Kubernetes网络模型设计的一个基础原则是&#xff1a;每个Pod都拥有一个独立的IP地址&#xff0c;并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管这些Pod是否运行在同一个Node中&#xff0c;都要求它们可以直接通过对方的IP进行访问。由于Kubernetes的网络模…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务&#xff0c;默认…

Adobe Acrobat Reader - 老牌PDF编辑器

【应用名称】&#xff1a;Adobe Acrobat Reader - 老牌PDF编辑器 【适用平台】&#xff1a;#Android 【软件标签】&#xff1a;#Adobe 【应用版本】&#xff1a;24.1.0 【应用大小】&#xff1a;482MB 【软件说明】&#xff1a;软件升级更新。用户将有权在手机、平板电脑…

cesium内部相同坐标在不同高度的2个点的属性机制坐标会gltf模型角度值异常问题mars3d的处理办法

模型一直向上运动的正常效果&#xff1a; 问题场景&#xff1a; 1.new mars3d.graphic.ModelPrimitive({使用addDynamicPosition(设置并添加动画轨迹位置&#xff0c;按“指定时间”运动到达“指定位置”时发现&#xff0c;如果是同一个点位不同高度值的y轴竖直向上方向的运动…