Outline整合KeyCloak的OIDC登录

前面几篇文章讲到了《Docker Compose安装Keycloak》、《Keycloak使用群晖Synology Directory Server作为AD/LDAP用户数据源》,我们已经实现了KeyCloak的安装和与群晖NAS的整合,那么接下来我们需要用这个AD的用户数据源为一系列服务提供账号登陆支持。Gitlab已经讲过了,那么接下来可以试一下Outline。 Outline是一个比较新的,类似Notion的在线记事本,我前面也讲了如何快速部署Outline。但之前是用了Azure Active Directory,在手机的EDGE浏览器登录的时候,非要拉起微软自己的APP,华为手机还不支持。所以我们现在要干掉Azure Active Directory,改为自己的群晖AD用户。 1、KeyCloak中创建新的Realm 首先,我建议是单独创建一个realm,不要使用KeyCloak默认的master,好处是可以做到用户数据和应用的隔离,保证KeyCloak的安全性。 登录KeyCloak的后台,左上角有个下拉,默认是master,点击下拉菜单,然后点击『Create…

Keycloak使用群晖Synology Directory Server作为AD/LDAP用户数据源

这又是keycloak的另外一个大坑。keycloak并不会自动创建一系列SSL证书相关的配置,都要自己手撸。 如果还没安装keycloak,可以参考前一篇文章『Docker Compose安装Keycloak』 然后,你的群晖要先把AD配置好,这里就不重复了。 1、获得群晖AD对应的SSL证书 首先,要把群晖为AD所生产的自签名SSL证书下载回来,后面需要用。 位置:群晖DSM管理后台-控制面板-安全性-证书。如果不太确定是哪张证书,可以点击『设置』,找到『Synology Directory Server』对应的证书下拉。 在对应的证书上点击右键,选择『导出证书』 导出的证书解压后有两个文件,一个是证书本身cert.pem,另外一个是证书的私钥privkey.pem,我们需要用到的是cert.pem OK,基础数据准备好,我们开始干活。 2、为keycloak生成Java所需要用的keystore文件 这里有个大坑。虽然新版本的Java建议出于更高的安全性考虑,keystore应该使用PKCS12格式,keytool也是默认创建PKCS12格式的keysto…

Docker Compose安装Keycloak

Keycloak的安装其实挺烦人的,相关文章并不多,参考也不多,很多例子都是旧版本的,随手记录下安装和配置信息吧。 使用的数据库是postgresql,假设已经有安装好的postgresql,并且默认管理员账号是postgres,那么我们先创建keycloak的用户 su - postgres # 我们创建一个名为keycloak的pgsql用户,和名为keycloak的数据库 createuser -s -P keycloak createdb keycloak -O keycloak 然后我们创建一个文件,docker-compose.yml version: "3" services: keycloak: image: quay.io/keycloak/keycloak:20.0 container_name: keycloak environment: KC_HOSTNAME: <域名,如sso.naizhao.com> KC_HTTP_PORT: <监听的http端口,…

本地快速部署Outline

Outline是一款类似于Notion的笔记本/团队协作Wiki软件。因为Outline在一开始就面向的团队协作,所以这款应用部署异常的难,中文的就更少了。我自己捣鼓了几天,基本把这玩意搞清楚了,快速记录下折腾过程。 阅读这篇文章之前,先假设你懂域名,会折腾服务器,会一些基础的服务器运维。这批文章将不会重点讲Web服务器部署之类的事情。 另外,Web前端的反向代理是用的Caddy,NGINX用户自行转换配置文件。 环境准备 你要先准备以下东西: * 一个域名,配置一个主域和一个二级域。比如note.naizhao.com(用户访问Outline)和storage.naizhao.com(用于Outline存储附件),然后IP地址指向你的服务器 * Docker运行环境 * 一个微软账号,可以登陆到https://portal.azure.com/。本文将以Azure AD登陆为基础 * 一个MailJet或者MailGun或者其他的SMTP账号,用于Outline发送邮件 * 网站根目录在/var/www/com/naizhao/note 以上准备完毕,开整…