felixrupp / user_cas
这是为Owncloud第三方应用user_cas提供的包
Requires
- php: ^7.3
- ext-json: *
- ec-europa/ecas-phpcas-parser: ^0.3
- jasig/phpcas: ^1.5.0
- dev-master
- 1.10.0
- 1.9.0
- 1.8.7
- 1.8.6
- 1.8.5
- 1.8.4
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.10
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- dev-develop
- dev-release/1.10
- dev-issue-57-Filter_WebDAV_requests_possible_conflict_with_webdav_using_windows_explorer
- dev-issue-93-Add_optional_CAS_authentication_for_public_shares_too
- dev-issue-75-Automatic_Group_Creation_based_on_Username
- dev-issue-70-Add_mapping_for_unique_user_attribute
- dev-issue-51-CAS_Server_Attributes_to_manage_groups
- dev-release/1.8
- dev-release/1.7
- dev-release/1.6
- dev-release/1.4
This package is auto-updated.
Last update: 2024-09-29 03:57:58 UTC
README
本应用提供CAS认证支持,使用jasig/apereo的phpCAS库。
安装
1. 依赖
- ownCloud >= 10.0.0 和 Nextcloud >= 14.0.0
- PHP >= 7.3
- PHP扩展
- ext-json
- 可选:如果您想通过GIT安装,可以使用Composer依赖管理器。
- 可选:如果您有至少phpCAS 1.3.5的phpCAS安装,可以使用您自己的phpCAS安装。
此应用不再需要独立的jasig的/apereo的phpCAS版本。库包含在composer依赖中,在您下载的存档文件中,或者如果使用Market/App-Store版本,则在其中。尽管您可以在以后配置使用您自己的jasig的/apereo的phpCAS库版本。
2. 推荐 - ownCloud市场
- 使用具有管理员权限的本地创建的ownCloud用户访问ownCloud Web界面。
- 导航到您的ownCloud实例中的市场。
- 导航到安全类别,找到CAS用户和组后端。
- 安装应用。
- 访问管理面板 => 应用,并启用CAS用户和组后端应用。
- 访问管理面板 => 用户认证并配置应用。
3. 基本安装 - 发布存档/Nextcloud应用商店
- 根据您的平台(ownCloud或Nextcloud)从github发布页面下载当前稳定版本,或者使用apps.nextcloud.com上提供的链接(Nextcloud)。
- 解压缩/解包存档。
- 如果未重命名,请将解压缩的文件夹重命名为
user_cas
。 - 将
user_cas
文件夹移动到平台安装的应用文件夹。 - 根据您的Web服务器设置调整
user_cas
文件夹的设置。 - 使用具有管理员权限的本地创建的平台用户访问平台Web界面。
- 访问管理面板 => 应用,并启用CAS用户和组后端应用。
- 访问管理面板 => 安全并配置应用。
4. 仅用于开发的高级 - 使用composer克隆
- 将下载的
user_cas
文件夹克隆/复制到平台的应用文件夹,并确保为您的Web服务器设置正确的权限。 - 在克隆后更改
user_cas
文件夹内的目录,并在通过GIT安装的情况下执行composer update
命令。将安装依赖项。注意:您需要安装composer二进制文件。 - 根据您的Web服务器设置调整
user_cas
文件夹的设置。 - 使用具有管理员权限的本地创建的平台用户访问平台Web界面。
- 访问管理面板 => 应用,并启用CAS用户和组后端应用。
- 访问管理面板 => 用户认证/安全并配置应用。
请注意,您可能需要在config/config.php中添加以下条目,以防止关于后端中缺少应用签名的警告消息
'integrity.ignore.missing.app.signature' =>
array (
0 => 'user_cas',
),
配置
应用通过管理面板进行配置。请确保使用管理员用户配置,该用户通过您的ownCloud实例(而不是CAS)进行本地认证。请确保填写所有提供的字段。
CAS服务器
CAS服务器版本:默认为CAS版本3.0,如果您没有特殊配置,请保持不变。
CAS服务器主机名:托管您的CAS的Web服务器的主机名。在/etc/hosts或您的DNS配置中查找或询问您的IT部门。
CAS服务器端口:CAS监听的端口。HTTPS的默认值为443
。
CAS服务器路径:您的CAS目录。在常见设置中,此路径为/cas
。如果您的CAS位于您的文档根目录,请使用/
。使用/
。
服务URL:指向您的平台的服务URL,用于CAS认证和重定向。当位于反向代理后面时很有用。此URL必须以/apps/user_cas/login
结尾。
证书文件路径 (.crt):如果您不想验证证书(例如,自签名证书),则留空。否则,请输入证书(.crt)在服务器上的绝对路径,从根级别开始。
使用CAS代理初始化:如果处于活动状态,CAS-Client将作为代理初始化。默认关闭。只有当您知道自己在做什么时才激活。
基本
强制使用CAS登录用户?:如果选中,用户在访问ownCloud URL后将被立即重定向到CAS登录页面。如果选中,将自动禁用禁用CAS注销。默认:关闭
不使用以下客户端IP的强制登录:以逗号分隔的客户端IP地址列表(或地址范围),如果启用“强制用户登录”,则不会强制登录(例如,192.168.1.1-254,192.168.2.5)。默认:空
禁用CAS注销:如果选中,您将仅从ownCloud/Nextcloud注销,而不会从您的CAS实例注销。默认:关闭
在第一次CAS登录后自动创建用户?:如果选中,将自动创建经过CAS认证的用户。这意味着,在数据库中尚不存在且通过CAS认证的用户将在他们的第一次登录时创建并存储在ownCloud数据库中。默认:开启
每次CAS登录后更新用户数据?:如果选中,每次用户登录时都将使用CAS提供的数据更新ownCloud用户属性。默认:关闭
禁用CAS单点注销:如果选中,将忽略来自您的CAS服务器的单点注销请求。ownCloud/Nextcloud会话不会因为单点登录而终止。默认:关闭
单点注销服务器:提供可以发送单点注销请求的CAS票证的服务器列表(如果您不需要将注销限制为定义的服务器,请留空)。
在URL中保留CAS票证ID?:如果选中,CAS票证ID不会从URL中删除。注意:潜在的安全风险!只有当您知道自己在做什么时才激活。默认:关闭
覆盖登录按钮标签:覆盖CAS登录按钮标签(仅在Nextcloud中使用)。默认:空
使用CAS保护“公开共享”链接:如果选中,公开共享链接将受到CAS登录的保护。如果用户已经使用有效的ownCloud/Nexctloud会话登录,则不需要额外的CAS登录。默认:关闭
映射
如果CAS提供额外的属性,user_cas
可以检索它们的值。由于它们在不同的设置中名称不同,因此有必要将ownCloud属性名称映射到CAS属性名称。
用户ID:CAS中用户ID属性的名称。只有在需要使用特定的CAS属性作为用户ID时才填写此字段。如果留空,则使用默认的CAS用户ID。默认:空
电子邮件:CAS中电子邮件属性的名称。默认:空
显示名称:CAS中显示名称属性(这可能是一个用户的“真实姓名”或两个字段的组合,如:firstnames+surnames)。默认:空
组:CAS中组属性的名称。默认:空
配额:CAS中配额属性的名称。配额可以是数值字节数或可读的字符串,如512MB。默认:空
组
锁定组:不会解除链接的组。在登录后更新用户时,这些组被保留。请提供不带空白的逗号分隔列表(例如:group1,group2)。默认:空
默认组(在自动创建用户时使用):在身份验证后自动创建用户时,如果用户没有CAS组,则将这些组设置为默认值。请提供不带空白的逗号分隔列表(例如:group1,group2)。默认:空
授权CAS组:这些组的成员被授权使用ownCloud实例。此设置特别有用,如果你的CAS实例本身不处理授权。请提供不带空格的逗号分隔列表(例如:group1,group2)。默认:空
组配额:为通过CAS认证的用户组定义配额。请提供不带空格的逗号分隔列表,并在组名和配额之间用冒号隔开(例如:group1:10GB,group2:500MB)。默认:空
组名过滤器:定义一个仅包含组名允许字符的过滤器(PHP正则表达式语法!)。ownCloud/Nextcloud核心会在每个定义后截断63个字符的组名,并附加水平省略号。默认为空时:a-zA-Z0-9\.\-_ @
组名:替换元音符号:激活以从组名中过滤掉德语的元音符号。仅在“映射”中的“组”填写后生效。默认:关闭
组名:JSON解码:激活以在组字段中对提供的数据进行JSON解码。仅在“映射”中的“组”填写,并且您的CAS服务器使用JSON语法时生效。默认:关闭
用户默认组:为每个具有UID的用户创建默认组,并可选地添加前缀。默认:关闭,无前缀
ECAS设置
自版本1.5起,user_cas为使用欧洲委员会ECAS服务器实现提供支持。
使用ECAS属性解析器?:激活ECAS属性解析器以启用解析由欧洲委员会ECAS实现提供的组(在了解清楚后再激活)。
请求完整用户详细信息?:激活以在ECAS回调中请求完整用户配置文件(在了解清楚后再激活)。
ECAS强度:设置ECAS实例在验证用户票据时使用的身份验证强度(在了解清楚后再选择)。
ECAS保证级别:设置ECAS实例在验证用户票据时使用的保证级别(在了解清楚后再选择)。
查询ECAS组:定义在验证用户票据时应查询哪些ECAS组。请提供不带空格的逗号分隔列表(例如:GROUP1,GROUP2或使用*表示所有组)。(在了解清楚后再选择)。
在这些客户端IP上不使用多因素身份验证:客户端IP地址(或地址范围)的逗号分隔列表,如果“ECAS保证级别”至少为中等,则不会强制使用多因素身份验证(例如:192.168.1.1-254,192.168.2.5)。(在了解清楚后再填写)。
导入CLI
自版本1.7.2起,user_cas为从ActiveDirectory LDAP导入用户提供支持。
ActiveDirectory (LDAP):提供连接到您的AD LDAP服务器所需的信息
LDAP-Host:提供LDAP主机信息。设置要使用的协议、主机和端口。默认:空
LDAP-用户和域:提供用于对LDAP连接进行身份验证的LDAP用户和域。默认:空
LDAP-用户密码:设置用户密码(见上文)。默认:空
LDAP Base DN:设置用于查询的LDAP基础唯一名称(DN)。默认:空
LDAP同步过滤器:定义在从LDAP查询相应用户时要使用的过滤器。默认:空
LDAP同步分页大小(1-1500):根据您的LDAP服务器设置定义LDAP查询响应的分页大小。默认:1500
CLI属性映射:提供将您的AD LDAP用户映射到ownCloud所需的信息
UID/用户名:您的LDAP响应中uid/用户名属性的名称。默认:空
显示名称:您的LDAP响应中显示名称属性(这可能是用户的“真实姓名”或两个字段的组合,例如:givenname+sn)的名称。默认:空
邮箱:LDAP响应中的邮箱属性名称。默认:空
组:LDAP响应中的组属性名称。默认:空
组名称字段:在您的组节点中设置的组名称的LDAP属性名称。如果没有设置或找到名称字段,则将使用组的DN作为组名称。默认:空
配额:LDAP响应中的配额属性名称。配额可以是数值字节数值或可读字符串,如1GB或512MB。默认:空
启用:LDAP响应中的启用属性名称。在导入时设置账户为启用/禁用,其中启用=1和禁用=0。默认:空
与以下启用属性进行位与运算:提供位与运算以定义账户的启用状态。仅当您的LDAP的启用属性值不是0|1时使用。默认:空
合并账户:激活以启用账户合并。默认:关闭
合并时优先启用账户而非禁用账户:激活以在合并时优先启用第二个账户而非禁用的主要账户。仅当合并账户启用时才生效。默认:关闭
通过以下属性合并两个活动账户:您想要通过该属性合并两个激活账户的LDAP响应中的属性名称。仅当合并账户启用时才生效。默认:空
通过以下属性合并两个活动账户:过滤器字符串:定义用于通过以下属性合并的过滤器字符串,以定义在合并时应优先选择哪个激活账户。仅当通过以下属性合并设置且合并账户启用时才生效。默认:空
PHP-CAS库
设置PHP-CAS库选项
覆盖phpCAS路径(CAS.php文件):设置自定义的CAS.php文件路径,该文件位于您要使用的jasig/phpcas库版本的根目录下。默认:空,表示使用在user_cas
文件夹中通过composer安装的依赖项。
PHP CAS调试文件:设置自定义的phpcas调试文件路径。位于服务器根目录下。默认:空
其他信息
-
如果您启用“CAS登录后自动创建用户”选项,如果用户不存在,则会创建用户。如果此选项禁用且用户不存在,则不允许用户登录ownCloud。
-
如果您启用“更新用户数据”选项,则在每次登录时,应用程序都会更新用户的显示名称、邮箱、组成员资格和配额。
默认情况下,CAS应用程序将取消链接用户的所有组,并会提供在映射属性中定义的组。如果此映射未定义,则将使用默认组字段的值。如果两者都未定义,则用户将不会被设置任何组。如果设置了锁定组字段,则这些组将不会被从用户中取消链接。
OCC命令
user_cas实现了以下OCC命令
- cas
- cas:create-user(向数据库添加一个user_cas用户。)
- cas:update-user(更新现有用户,如果尚未是CAS用户,则将记录转换为CAS后端。)
- cas:import-users-ad(从ActiveDirectory LDAP导入用户。)
创建用户
cas:create-user [--display-name [DISPLAY-NAME]] [--email [EMAIL]] [-g|--group [GROUP]] [-o|--quota [QUOTA]] [-e|--enabled [ENABLED]] [--] <uid>
-
参数(必需)
- uid:用户的uid
-
选项(可选)
- --display-name:用户的新显示名称。
- --email:用户的新邮箱。
- -g | --group:用户的新组,可以多次使用(例如,
-g Family -g Work
)以添加多个组。 - -o | --quota:用户的新配额,可以是数值字节数值或可读值(例如,1GB)。
- -e | --enabled:启用或禁用用户。设置
-e 1
启用用户,设置-e 0
禁用用户。
注意:受保护的组永远不会从用户中取消链接!另请参阅组。
更新用户
cas:update-user [--display-name [DISPLAY-NAME]] [--email [EMAIL]] [-g|--group [GROUP]] [-o|--quota [QUOTA]] [-e|--enabled [ENABLED]] [-c|--convert-backend [CONVERT-BACKEND]] [--] <uid>
-
参数(必需)
- uid:用户的uid
-
选项(可选)
- --display-name:用户的新显示名称。
- --email:用户的新邮箱。
- -g | --group:用户的新组,可以多次使用(例如,
-g Family -g Work
)以添加多个组。 - -o | --quota:用户的新配额,可以是数值字节数值或可读值(例如,1GB)。
- -e | --enabled:启用或禁用用户。设置
-e 1
启用用户,设置-e 0
禁用用户。 - -c | --convert-backend: 设置是否将用户的后端转换为CAS后端。设置
-c 1
将后端转换为CAS。 警告:这不可撤销!
注意:受保护的组永远不会从用户中取消链接!另请参阅组。
从ActiveDirectory (LDAP)导入用户
cas:import-users-ad [-d|--delta-update [1]] [-c|--convert-backend [1]]
- 选项(可选)
- -d | --delta-update: 启用或禁用账户的增量更新。设置
-d 1
启用账户更新。 - -c | --convert-backend: 设置是否将用户的后端转换为CAS后端。设置
-c 1
将后端转换为CAS。 警告:这不可撤销!
- -d | --delta-update: 启用或禁用账户的增量更新。设置
附加信息:如果您想自动化ActiveDirectory的导入,请在您的web服务器用户(例如,基于debian的Linux系统上的www-data
)的cronjob中调用此命令。
附加信息:如果您需要额外的调试信息,请在您的命令中使用-vv
或-vvv
选项来提高调试级别。要静音输出,请使用-q
选项。
作为每日cronjob使用示例,具有增量更新和后端转换(如有必要),输出将被置零:
0 0 * * * /usr/bin/php /path/to/owncloud/occ cas:import-users-ad -d 1 -c 1 -q >/dev/null 2>&1
错误和支持
请将错误报告和反馈贡献给GitHub Issues。
通过felixrupp.com提供商业支持和功能实现。
关于
许可
AGPL 3.0或更高版本 - https://gnu.ac.cn/licenses/agpl-3.0.html
作者
当前版本,自1.4.0起
- Felix Rupp - github.com/felixrupp
旧版本
- Sixto Martin Garcia - github.com/pitbulk
- David Willinger (Leonis Holding) - github.com/leoniswebDAVe
- Florian Hintermeier (Leonis Holding) - github.com/leonisCacheFlo
- brenard - github.com/brenard
链接
- ownCloud - owncloud.org
- ownCloud @ GitHub - github.com/owncloud