如意云-莘家小站
  • 首页
  • 友链
  • 关于
如意云-莘家小站
这是一个记录生活和技术学习的个人博客.
  1. 首页
  2. 网络与系统
  3. Synology
  4. 正文

群晖SSO(单点登录)接入的实现

2020年9月16日 23957点热度 6人点赞 23条评论

2024年更新:这篇文章已经过时,请参考最新群晖官方sso开发文档:https://global.download.synology.com/download/Document/Software/DeveloperGuide/Package/SSOServer/All/enu/Synology_SSO_API_Guide.pdf

群晖的开发文档有点坑。要想在DSM(群晖操作系统)设置单点登录服务器,必须开启机器的LDAP。这点在开发文档中完全没提到...不过想想,谁会用这垃圾玩意呢?

开始之前,你需要一台群晖,黑的也行。

第一步,在套件中心安装SSO服务器,如图。

安装sso服务器
安装sso服务器

第二步,在套件中心安装LDAP,如图。

安装LDAP服务器
安装LDAP服务器

第三步,设置LDAP服务器,如图。

设置LDAP服务器
作为LDAP主服务器

第四步,在LDAP Server配置sso用户账户,密码,以及权限。当然,如果在SSO服务器中开启“允许本地账户登录”就可以忽略这一步,否则SSO用户账户是需要单独设置的。

添加账户
添加账户
设置账户详情
设置账户详情
设置账户分组
设置账户分组

第五步,在控制面板-域/LDAP,开启LDAP。开启前需要到LDAP SERVER的用户账号先修改admin的密码,要用到。这个admin和控制面板的admin是不一样的。如图

开启DSM的LADP
开启DSM的LADP
设置LADP用户账号
设置LADP用户账号(在旧版本群晖中,此账号与DSM分离)

第六步,回到SSO服务器,设置登录页面

sso常规设置
sso常规设置

第七步,站点编写源码

群晖sso登录只能支持JavaScript,微微可惜。

群晖ssoDemo目录结构
群晖ssoDemo
登录页面Demo
登录页面Demo
jsDemo
jsDemo

在js中需要修改认证服务器地址(oauthserver_url),app_id,回调地址(redirect_uri)。app_id需要和SSO服务器中的设置保持一致。如图

ssoServer,设置重定向url和appid
ssoServer,设置重定向url和appid

效果如下

登录示例
登录示例

访问我的github页面来获取源码 https://github.com/xinjiawei/SynologySsoDemo

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 单点登录sso 站群统一账号登录 群晖Synology 项目实战
最后更新:2025年1月28日

jiawei

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • jasonlee46

    我使用的是vue+nodejs,用passport-oauth2做验证策略,但是一直无法通过,不知道是哪里不对?能交流一下嘛?群晖这边是SSO开启,但是不是LDAP,用的是synology directory server来进行域的管理。本地账户除了admin,不用SSO服务。

    2023年9月13日
    回复
    • XINJIAWEI

      @jasonlee46 老哥我这边也只了解oauth2的一些流程,具体业务得查查群晖的文档了, 现在群晖sso和ldap这块的文档也补全了

      2023年10月1日
      回复
    • XINJIAWEI

      @jasonlee46 sso这块群晖更新很多了,我的文章版本较旧了,腺癌现在也不做群晖sso了

      2023年10月1日
      回复
  • MapLeaf

    大佬,有做过群晖作为SSO客户端然后以OIDC协议对接么。我现在在做SSO服务端适配,不知道哪出了问题,一直不行

    2023年8月4日
    回复
    • XINJIAWEI

      @MapLeaf 没有做过啊,群晖做sso客户端支持oidc对接吗,这篇文章有点久了,好多东西变了

      2023年8月7日
      回复
  • 神雕小猪猪

    请问nas有那种跟别的系统集成,登录了其他系统就可以免密登录nas这样的接口么?

    2023年2月3日
    回复
    • XINJIAWEI

      @神雕小猪猪 有的,自建一个ldap服务器就行。然后nas用它里边的账号

      2023年2月3日
      回复
  • kookse

    谢谢分享 现在刚好在做基于dsm的开发,能加个Q或者微信交流下么?465-034-110

    2021年8月11日
    回复
    • 神雕小猪猪

      @kookse 老哥,请问一下,这个单点登录的意思是,登录这一次,就可以访问nas里面其他所有页面了么?

      2023年2月3日
      回复
      • XINJIAWEI

        @神雕小猪猪 老哥你对单点登录的理解有点问题,它可以给群晖用,但是更多的是给其他自己写的程序用。如果想登录一次,就访问nas里面其他所有页面,可以看我写的另一篇文章,关于ldap的,那个更适合这样。https://nav.mb6.top/ 这个页面有个系统服务群,那个里边的服务就是用的一个账号授权系统。

        2023年2月3日
        回复
  • Gacenwinl

    真的太棒了!群晖的文档都没头没尾QAQ,根本搞不懂。看这个教程一下就成功了。不过有没有给Docker应用访问页面添加单点登录的方法?(就是加各自端口号访问的那个...)

    2021年5月4日
    回复
    • XINJIAWEI

      @Gacenwinl docker还没做过项目哈,不过应该是同样的道理,可以尝试移植一下 :haha:

      2021年7月9日
      回复
    • z koala

      @Gacenwinl 我也想把nas里的服务全都做成单点登录 似乎很难

      2021年11月3日
      回复
      • XINJIAWEI

        @z koala 的确,一个一个做不是太好做,很蛋疼

        2021年11月5日
        回复
    • xiaofei

      @Gacenwinl 我也是群晖到了站点编写源码哪里就不会了,应用id是什么是不是还要其他平台支持才可以

      2022年5月10日
      回复
      • XINJIAWEI

        @xiaofei 不是哈,只是应用id,编写的时候和sso那里一致就可以了。
        说实话这玩意不太好用,前端鉴权应用场景少,我这边现在已经全线转LDAP了。

        2022年5月10日
        回复
        • xiaofie

          @XINJIAWEI 好的,谢谢楼主,现在搞明白,这个就是群晖内置的,可以直接建账号登录。后面我尝试用azure sso功能用微软账户登录群晖,最后一步加入不了自定义域 :lei:

          2022年5月10日
          回复
          • XINJIAWEI

            @xiaofie 应该可以吧?倒是没研究过

            2022年5月15日
  • 下一页
    razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    回复 XINJIAWEI 取消回复
    • Emby
    • Synology
    • Unraid
    • 文段分享
    • 生产力小工具
    • 生活记录
    • 程序开发实例
    • 网络与系统
    • 逆向工程
    • 遇到问题

    2019-2025

    Theme Kratos Made By Seaton Jiang

    冀ICP备18022758号-2

    冀公网安备13072802000034号