版本比较
比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
简介
随着环境中搭建的应用越来越多(seafile 云盘、seatable 在线表格、immich 图片管理、confluence 知识库、outline 在线文档等),每个应用都配置对应的用户名和密码,应用多了使用和记录以及日常的管理都非常麻烦,有没有一种应用能够将这些账号整合起来统一管理呢?这就是需要实现的单点登录。
目标:
- 配置并启用 keycloak
- 在 keycloak 中配置应用和对应的账号
- 配置 seafile 云盘应用使用 keycloak 的账号实现 sso 单点登录
Seafile 的功能和安装无需过多介绍,详细的内容可以参考以下文档:
- docker-seafile-11.06 ARM
- docker-seafile-12.0.11
- docker-seafile pro -11.0.14
- docker-seafile-12.0.6
- docker-自定义 seafile
Keycloak 提供针对现代应用程序和服务的开源身份和访问管理解决方案,支持单点登录 SSO,服务可通过 OpenID Connect、OAuth 2.0 等协议对接 Keycloak。有关 Keycloak 内容可以参考以下文档:
- docker-部署安装 keycloak
- Keycloak 使用群晖 Synology Directory Server 作为 AD/LDAP 用户数据源
- Outline 整合 KeyCloa k的 OIDC 登录
身份认证与授权简述
名词 | 英文 | 说明 |
---|---|---|
身份识别 | Identification | 让系统知道你是谁 |
身份验证 | Authentication | 让系统相信你是谁 |
授权 | Authorization | 允许他人存取某项资源 |
访问控制 | Access Control | 检验是否有资格存取某项资源 |
- 身份识别 (Identification) 要让系统知道你是谁,就必须告诉他。在我们一开使「输入账号」的时候,其实就是在做这件事情。
- 身份验证。这个部分也就是主要确定「你」是谁的活动。为了达成这个目的,需要知道除了系统外,只有你才知道的信息(或只有你才拥有的)。 最常见的辨识方式就是「密码」,此外,近来的生物识别,包含指纹辨识、Face Id、虹膜辨识等,都是在验证身份。
- 授权控制,Authorization,和身份验证的英文很像。指的是将某个权限(permission)授予给某人(或某只程序)的活动。 特别注意的是,授予对象不只限于「自然人」,还包含机器人或应用程序。是建立的 Client。
- 访问控制。Web App 在做存取资源的部分。
简单来说,这整个过程: 在决定了 某人(谁) 对于 某项资源 是否有 某种操做的权限。
在一个环形通道的一次有一扇上锁的门。我必须证明我有那门的钥匙,我只需要从一边进入,并且从另一边出来就可以。
只要能够从A进入,B出来就说明我有门钥匙
环境说明
项目 | 内容 |
---|---|
seafile | http://192.168.182.53:8003 |
keycloak | http://192.168.182.52:8080 |
seafile | keycloak 的 realms 和 client |
测试用户1 | 13600006772@139.com |
测试用户2 | 13600006773@139.com |
参照简介的内容完成 seafile 和 keycloak 的配置,也可以直接下载配置文件运行【keycloak 配置文件 env.keycloak和keycloak.yml】【Seafile 配置文件 seafile_12.0.yml和env.seafile】
keycloak 配置
1、使用管理员 admin 登录 keycloak ,在 keycloak 中创建单独的领域 seafile ,后续的操作都基于 seafile 领域不会影响和干扰其它的应用。
2、在 seafile 领域下创建 seafile 的客户端,参照环境和下图完成 seafile 客户端配置
3、最终完成后可以参照下图查看设置状态
目录 |
---|