版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

简介

随着环境中搭建的应用越来越多(seafile 云盘、seatable 在线表格、immich 图片管理、confluence 知识库、outline 在线文档等),每个应用都配置对应的用户名和密码,应用多了使用和记录以及日常的管理都非常麻烦,有没有一种应用能够将这些账号整合起来统一管理呢?这就是需要实现的单点登录。

目标

  1. 配置并启用 keycloak
  2. 在 keycloak 中配置应用和对应的账号
  3. 配置 seafile 云盘应用使用 keycloak 的账号实现 sso 单点登录

Seafile 的功能和安装无需过多介绍,详细的内容可以参考以下文档:

Keycloak 提供针对现代应用程序和服务的开源身份和访问管理解决方案,支持单点登录 SSO,服务可通过 OpenID Connect、OAuth 2.0 等协议对接 Keycloak。有关 Keycloak 内容可以参考以下文档:

身份认证与授权简述

名词英文说明
身份识别 Identification    让系统知道你是谁
身份验证   Authentication    让系统相信你是谁
授权Authorization    允许他人存取某项资源
访问控制 Access Control    检验是否有资格存取某项资源
  • 身份识别 (Identification) 要让系统知道你是谁,就必须告诉他。在我们一开使「输入账号」的时候,其实就是在做这件事情。
  • 身份验证。这个部分也就是主要确定「你」是谁的活动。为了达成这个目的,需要知道除了系统外,只有你才知道的信息(或只有你才拥有的)。 最常见的辨识方式就是「密码」,此外,近来的生物识别,包含指纹辨识、Face Id、虹膜辨识等,都是在验证身份。
  • 授权控制,Authorization,和身份验证的英文很像。指的是将某个权限(permission)授予给某人(或某只程序)的活动。 特别注意的是,授予对象不只限于「自然人」,还包含机器人或应用程序。是建立的 Client。
  • 访问控制。Web App 在做存取资源的部分。

简单来说,这整个过程: 在决定了 某人(谁) 对于 某项资源 是否有 某种操做的权限。

在一个环形通道的一次有一扇上锁的门。我必须证明我有那门的钥匙,我只需要从一边进入,并且从另一边出来就可以。

只要能够从A进入,B出来就说明我有门钥匙

 环境说明

项目内容
seafilehttp://192.168.182.53:8003
keycloakhttp://192.168.182.52:8080
seafilekeycloak 的 realms 和 client
测试用户113600006772@139.com
测试用户213600006773@139.com

参照简介的内容完成 seafile 和 keycloak 的配置,也可以直接下载配置文件运行【keycloak 配置文件 env.keycloakkeycloak.yml】【Seafile 配置文件 seafile_12.0.ymlenv.seafile

keycloak 配置

1、使用管理员 admin 登录 keycloak ,在 keycloak 中创建单独的领域 seafile ,后续的操作都基于 seafile 领域不会影响和干扰其它的应用。

2、在 seafile 领域下创建 seafile 的客户端,参照环境和下图完成 seafile 客户端配置

3、最终完成后可以参照下图查看设置状态


目录