Synology SSO oidc 对接 keycloak

环境

DS3018xs
DSM 7.1.1

域使用的是Synology的LDAP

NAS和keycloak加入同一个Synology LDAP

容器下载地址:

https://registry.hub.docker.com/r/jboss/keycloak/

部署容器

需要自定义容器变量,指定keycloak的登录用户名和密码:

KEYCLOAK_USER
KEYCLOAK_PASSWORD

指定keycloak的服务端口:

keycloak配置

启动容器后登录keycloak:

http://192.168.0.62:18080

配置LDAP的外部用户获取:

Synology LDAP 服务器ip是192.168.0.68,请参考以下截图配置:

查看Synology LDAP 服务器的Bind DN:

填写到对应位置后进行测试:

获取用户,查看是否可以正常获取,如果无法正常获取请检查 Users DN的配置是否正常:

可以在keycloak的User中查看LDAP用户是否导入到keycloak

在Clients中创建新的应用程序

这边创建为dsm7

选择验证类型为 confidential :

base URL 为 /

在mappers 映射中新增映射配置:

请参考以下截图建立username的映射:

访问以下网页查看keycloak配置文件是否工作正常,以下地址后续会用于wellknown url使用:

http://192.168.0.62:18080/auth/realms/master/.well-known/openid-configuration

获取应用程序的密钥,需要填写在配置文件中:

NAS的配置文件如下:

NAS登录

使用重定向URL访问NAS可以看到SSO验证的选项:

按流程登录Synology LDAP的用户密码就可以正常登录: