这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 dacs,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
dacs - 分布式访问控制系统
概要
达克 [-v | --详细[--dumpenv[- 执照[- 版]
达克 dacs 命令 [选项[1]] [...]
dacs 命令 [-u uri-前缀 | -uj 辖区名称 | 一 | -向上 辖区名称 | -我们]
[-c 配置文件]
[-sc 站点配置文件[-二 日志级别[-格式 fmt[-q[-t[-D姓名=折扣值]
[-v | --详细[--dumpenv[--启用转储[- 执照[--标准[- 版]
商品描述
该程序是 DACS 套房。
DACS 是一个通用的、基于 Web 的身份验证和访问控制系统。 它提供
单点登录功能和对所提供内容和服务的灵活访问控制
通过网络服务器。 DACS 由一个 阿帕奇 模块(mod_auth_dacs[2]) 通过 阿帕奇
与 DACS 做出访问控制决策,一套 CGI 程序,
提供 DACS Web 服务,以及提供各种实用程序命令的集合
支持和行政职能 DACS. 其中一些实用程序,例如
数据传输协议(1)[3]和 客户端(1)[4],是完全通用的。
这款 DACS 访问控制引擎和身份验证组件也可以从
命令行,在 CGI 环境中或完全独立于 Web。
有关有关的重要信息 DACS,包括安装说明,请参阅
dacs.readme文件(7)[5]和 dacs.安装(7)[6]。
关于我们 DACS
没有 保修服务
本软件由 Dss “按原样”提供,并提供任何明示或暗示的保证,
包括但不限于对适销性、适用性的默示保证
否认特定目的或非侵权。 在任何情况下,Dss 都不得
对任何直接的、间接的、偶然的、特殊的、模范的或后果性的
损害赔偿(包括但不限于采购替代商品或服务;
使用、数据或利润的损失; 或业务中断)无论是由于何种原因造成的,并且在任何情况下
责任理论,无论是在合同、严格责任还是侵权(包括
因使用本软件而以任何方式引起的疏忽或其他),即使
已告知此类损坏的可能性。
按照惯例,所有的名字 DACS Web 服务以前缀“dacs_”开头(例如,
dacs_conf)。 从 1.4.17 版开始,所有实现的命令 DACS 功能
以前缀“dacs”开头(例如, dacsconf)。 许多 DACS 网络服务有命令
类似物。 内部使用的 Web 服务的名称 DACS (即,他们是
从未被用户直接调用)以“local_”开头(例如, 本地密码验证).
通用 Web 服务和命令不遵循命名约定,除了
不使用任何前面提到的前缀。
使用 dtd-xsd 目录中维护的文档类型定义 (DTD)
记录文件格式或描述参数 DACS 网络服务或其回复。 在
在当前的实现中,在 XML 验证期间不使用这些 DTD 文件。 属性
CDATA 类型可能对它们的值有额外的限制; 咨询相关
文档。 这些文件在技术上不是有效的 DTD,因为它们缺少文档类型
声明 (DOCTYPE); 一个合适的 DOCTYPE 以编程方式生成
发出 DTD。
重要
DACS 不能阻止对网站的某些类型的攻击,例如 拒绝 of
服务 攻击[7] 跨站 脚本 (XSS)[8]或 跨站 请求 伪造罪
(CSRF)[9]。 然而,当结合适当的网站保护措施时, DACS
确实提供了使这些类型的攻击更加困难的机制。
关于我们 此 用户手册 前往
技术文档为 DACS 由一组手册页组成。 在 HTML
收藏,一个 指数 页[10] 包括目录、特殊注释的链接
在技术文档、变量列表、配置指令和
XML 文档类型定义。
Tips:
每个 HTML 手册页的底部都包含一个字体大小选择工具。 如果
启用 JavaScript,可以更改当前选择的字体大小和全局
偏好设置。 要为当前页面选择字体大小,请单击以下四个字体之一
盒子。 要在手册页、站点访问、
和浏览器会话,点击“设置”按钮,这将设置一个 HTTP cookie。 如果一个
首选项尚未以这种方式设置(即,没有 cookie)和手册页
使用查询参数访问 DACSM字体 设置为 0、1、2 或 3(表示
最小到最大的点大小),相应的字体将被选中,并且
首选项自动设置(如果已设置首选项,则忽略该参数)。
标记为“安全”的文档区域讨论了重要的安全注意事项;
请特别注意它们。 标有“提示”的区域提供了节省时间的提示
(有时是减轻加重)技术和推荐的做法。
在示例中出现的路径名和 URL 中,文本“...”表示具有
被省略,因为它与手头的讨论无关,或者可能有所不同
取决于配置详细信息,例如安装了某些东西的位置(例如,
.../dacs/bin/dacshttp)。
除非另有说明,示例中使用的 URL 是虚构的,很可能不会
工作。 保留域名example.com经常被使用(RFC 2606[11])。
在说明和示例中,“%”通常用于表示命令行提示:
% 日期
1 年 15 月 33 日星期日 11:2007:XNUMX PDT
然而,有时另一个字符用于表示提示,例如当
展示互动模式 dacexpr(1)[12]:
> 1 + 1
2
的扩展形式 BNF 符号[13] 用于简明地描述语法。 我们希望它是
既容易理解又熟悉,但可能会出现一些不一致和歧义
贯穿整个文档; 这正在慢慢改善。 生产中的一个术语可能
包括正则表达式类型规范,“+”表示出现一次或多次
的术语,以及 '*' 零次或多次出现。 指定了一组字符中的任何一个
方括号内,一系列连续字符(以 ASCII 码序列)是
用连字符分隔(例如,[A-Za-z0-9\-_]+ 表示“一个或多个字母字符,
数字、连字符或下划线”)。在其他上下文中,方括号表示可选
学期。 单引号和双引号指定文字字符。 请注意,XML DTD 使用它们的
自己的语法,有些不同,在某些情况下,语法遵循相关
为了清楚起见或在示例中遵守 RFC。
主要 概念
整个过程中使用的一些关键概念 DACS 文档在此定义
部分。
帐户
将身份(或用户名)与状态信息相关联的持久记录
关于帐户(例如帐户是否启用或禁用),信息
验证身份所需的信息(例如密码字符串的摘要),
以及可能的其他登录相关信息。 注意 DACS 身份不
一定要有对应的账号。 DACS 不提供机制
管理“外国”账户类型; 例如,虽然它可以验证
它们,它不能创建或列出 Unix 或 Windows 帐户。
认证
个人或程序获取代表一个人的凭证的程序 DACS
身份,通常通过断言 DACS 代表身份的用户名和
提供只有该身份才可能知道或拥有的信息。 后
成功的认证,一个人或程序被称为已经认证。 DACS
可以与多种身份验证方法交互并提供其中的一些
自己的; 可以轻松添加新方法。
授权
在特定上下文中确定对给定请求是否请求的过程
应该允许资源或对象。 如果一个身份被授权执行一个
对对象进行某些操作,访问被授予,否则被拒绝。 使用权
控制规则是描述哪个或哪些身份应该是的一种方法
授予或拒绝访问特定资源。 粗粒度访问控制
涉及做出是否应该访问对象的高级决定
的确; 这通常是一个全有或全无的决定。 细粒度的访问控制是
在程序中用于决定是否访问较低级别的资源(某些数据、
一个管理功能,一个菜单)应该被授予。
请注意,与某些系统不同, DACS 不预先确定特定的资源
用户(身份)可以访问,也不能访问; 即管理员不做列表
每个用户拥有哪些权限。 授权总是由规则评估决定,
实时,当用户请求资源时。 唯一的豁免是一些
可选功能: 授权 高速缓存[14]和 链接[15]。
证书
If 认证 成功了, DACS 返回可用于的信息
表示经过验证的身份的后续操作。 凭据包含
有关身份的信息,例如其名称和元信息,例如
凭证过期并失效的时间。 凭据受到保护
加密,因此它们难以伪造或更改。 他们必须保留
保密,以便身份不能被其所有者以外的任何人使用,并且必须
伴随向服务器发出的请求,以便 DACS 知道谁在提出请求。 这
用于此的特定机制并不重要,前提是凭据不能
复制和重用; 使用 HTTP cookie 的有效负载传输凭据
SSL 连接是典型的,尽管将凭据作为 HTTP 的值发送
扩展头是另一种可能性。
尽管对凭据的大小没有具体限制 DACS is
关注,因为它们可以封装在 HTTP cookie 中并返回到
浏览器,应仔细考虑浏览器对 cookie 的限制。
任何司法管辖区都可以理解由任何其他司法管辖区产生的凭证
同一个联盟。 因此,用户只需通过一次身份验证即可访问
使用该身份的任何司法管辖区的网络服务。
请注意 DACS, 凭证不赋予其所有者任何权利或传达任何
授权; DACS 是不是一个 基于能力的 系统[16]。 凭证仅代表
a DACS 身份。
请参阅 dacs_authenticate(8)[17] 详情。
当前 请求
触发授权检查的事件正在处理
dacs_acs(8)[18] 被称为当前请求。 对于一个请求
DACS-wrapped web 资源,这将是 web 收到的 HTTP 请求
资源的服务器。 在以下情况下 dacs_acs 不涉及,例如当
数据检查(1)[19]或 dacexpr(1)[12] 被使用,当前请求及其上下文是
由命令行参数指定或从 执行
环境[20]。
dacs_acs 使用 ${DACS::URI} 作为当前请求的路径组件。 这是
从 Apache 获得 URI 当前 request_rec 的元素。 这是字符串
用于匹配访问控制规则。
其他 DACS 组件通过检查几个来确定当前的 HTTP 请求
环境变量: HTTP_HOST (或 SERVER_NAME 和 SERVER_PORT), REQUEST_URI,
QUERY_STRING及 HTTPS.
价值 ${DACS::URI} 和路径组件 ${Env::REQUEST_URI} 是不
必然相同。 例如,在内部重定向之后,后者的值为
来自原始 URL,而前者来自重定向的目标。
当前请求字符串很重要,因为它可用于确定
当前 联邦[21]和 当前 管辖权[22],并且因为它用于
搜索要应用于请求的访问控制规则。
DACS
由基于 CGI 的 Web 服务组成,一个 阿帕奇 2.0/2.2 模块,以及一个集合
公用事业 DACS 提供身份验证和授权功能。 透明的,
粗粒度的基于角色的访问控制可用于 Web 资源。
编程的、通用的基于角色的访问控制几乎可用于任何
程序(使用 数据检查(1)[19])。 这与Apache完全解耦。
DACS 管理员
负责管理运营的个人(或个人) DACS is
叫做 DACS 管理员(有时只是“管理员”)。 这个人是
不一定是系统管理员(例如,超级用户或 root),尽管很小
可选组件的数量 DACS 必须以用户或组 root 身份执行。 这 DACS
管理员不必是 阿帕奇 行政人员; 一次 阿帕奇 已配置为
DACS 此后通常只需要很少的修改。 这 DACS 管理员
负责配置和测试 DACS (可能安装和升级它,
太),管理用户帐户和访问控制规则,保障安全,支持
up 配置和数据文件,等等。 的设计 DACS 允许一些委托
责任,主要基于文件权限。 当作为 Web 服务调用时,
每个身份配置为 管理员身份[23] 实际上是一个 DACS
行政人员; 在这种情况下,系统超级用户没有意义。
DACS 身分
每个经过身份验证的用户都被分配了一个名称,该名称包含
验证管辖权、其联合名称和用户名。 这些命名中的每一个
组件必须在语法上正确。 在某些情况下,联合名称是
隐含的; 有时,管辖区名称也是隐含的。 实体如
个人(人,但也包括程序、设备等)、联邦、司法管辖区、
和组有名字。 司法管辖区有责任进行身份验证
用户。 名称的语法、含义和唯一性也是一个管辖问题,
也许也是一个联邦范围的问题。
每个现实世界的实体通常都有一个独特的 DACS 身份,但这取决于
验证管辖权。 如果两个或多个身份不涉及,则它们是不同的
到同一个现实世界的个人。 联合身份或单点登录 (SSO) 是
跨司法管辖区甚至跨联盟识别用户身份的能力。
重要
请记住,无论身份验证方法和帐户信息如何
使用,两个相同的用户名(相对于同一司法管辖区并考虑到
帐户 名称_比较[24]) 是 隐含地 假定 至 参考 至 此 同 身分 by
DACS. 例如,通过提供正确的身份验证为奥吉的人
Unix 密码与通过身份验证的人几乎没有区别
auggie 使用信息卡。 用户凭据包括有关
其创建过程中涉及的身份验证方法以及 用户()[25] 函数可以
用于获取此信息,但将身份基于
这个。 强烈建议新的 DACS 司法管辖区仔细制定
用户命名的可扩展计划。
DACS-包裹
网络资源被称为 DACS-wrapped 如果 Web 服务器负责
资源调用 DACS (进一步来说, dacs_acs(8)[18]) 进行访问控制
每当它收到对资源的请求时就做出决定。
联邦
A DACS 联邦由一个或多个司法管辖区组成。 司法管辖区包括
一个联盟通过轻量级的商业实践来协调信息共享
作为成员资格的要求实施 DACS 联邦; 换句话说,
一个联合会的成员通常同意遵守某些行为规则
保持整体安全,使用户获得最大利益。 一个联盟
仅由一个管辖区组成并不罕见。
项目 类型
项目类型是映射到 VFS[26](虚拟文件存储)规范
配置数据的存储方式和位置。 它们提供的间接级别
意味着访问控制规则,例如,可以配置为定期
文件、Berkeley DB 数据库、通过 HTTP 访问的远程数据库等 - 所有
需要的是正确配置项目类型 acl。 一些项目类型
(如 acls)被保留并具有特殊意义 DACS,而其他人可以使用
a DACS 管理员用于其他目的。 项目类型名称区分大小写,并且
由字母数字、连字符和下划线组成,但必须以字母开头
字符。
管辖权
A DACS 管辖权是一个自治的行政实体,它验证其
用户、提供 Web 服务,或两者兼而有之。 它可能对应一个组织,
部门、Web 服务器或虚拟主机。 有时,管辖权的创建只是作为
行政便利。 每个司法管辖区都被分配了一个唯一的名称
联邦。
用户的归属管辖区是可以验证该用户的管辖区。 在
用户拥有从不同渠道获得的多个凭证的情况
管辖区,请求的有效归属管辖区取决于哪个
在授权处理期间选择凭据。 配置指令是
可用于限制可能伴随请求的凭据集的数量。
用户 代理人
用户代理是客户端软件,它与其他软件(服务器
申请,通常)代表 用户. 用户通常是一个人,但也可以是
软件。 用于与 Web 服务器交互的 Web 浏览器是
一个用户代理。
命名
DACS 需要命名各种事物,以便在表达式中引用它们,
访问控制规则、配置指令等。 虽然 URI 语法用于
在其中命名某些类型的对象 DACS, DACS 也有自己的简洁命名方案。
备注
术语 current federation(当前管辖区)和 this federation(this
管辖权)在文档中用于指代联邦(管辖权)
与有效的配置上下文相关联,而 DACS 处理请求。
在一般情况下, 联盟名称 名称的组成部分是可选的; 如果不存在,则
假定当前联邦。 同样, 辖区名称 可能会被省略,并且
目前的管辖权是隐含的。
联合会
语法:
联盟名称::
示例:
演示::
这款 联盟名称 (通常从 FEDERATION_NAME【27】配置
指令)必须以字母字符开头,后跟零个或多个
字母数字、连字符和下划线。 一种 联盟名称 是通常处理的情况
敏感地(但请参阅 名称_比较[24] 配置指令和 用户()[25]
替代行为的功能)。 没有 a 先验 限制其长度。
这款 FEDERATION_DOMAIN[28] 指令指定所有域名后缀通用
联邦中的司法管辖区。
司法管辖区
语法:
[[联盟名称: : : | [::]] 辖区名称:
例子:
演示::DSS:
::DSS:
数据安全系统:
这款 辖区名称 (通常从 JURISDICTION_NAME【29】配置
指令)必须以字母字符开头,后跟零个或多个
字母数字、连字符和下划线。 一种 辖区名称 通常被治疗
区分大小写(但请参阅 名称_比较[24] 配置指令和
用户()[25] 替代行为的函数)。 没有 a 先验 对其的限制
长度。
用户
语法:
[[[联盟名称: : : | [::]] 辖区名称]:用户名
例子:
演示::DSS:奥吉
::DSS:奥吉
DSS:奥吉
:奥吉
满满的 DACS 身份包括联合名称组件和管辖区名称
组件,除了 用户名. 它提供给 DACS- 包装的程序作为
的价值 DACS_身份[30] 环境变量。
用户名组件,可作为 CGI 程序的值
DACS_用户名[31] 环境变量,由一个或多个 ASCII 字符组成
一组大小写字母、数字和以下标点符号
特点:
! # $% & ' - . ; ? @ [ ^ _ ` { }
所有值小于 041(八进制)或大于 0176(八进制)的字符都是
无效,以及以下字符:
* , : + ( ) ~ < > = | \ / "
笔记
· 除了字母数字字符, RFC 2396[32] 只允许
以下字符(“PChar类型") 出现在 URI 的路径组件中:
- _ 。 ! ~ * ' ( ) % : @ & = + $ ,
· 一些有效的电子邮件地址无效 DACS 用户名。 例如,
*bob*@example.com、"(bob)"@example.com 和 \(bob\)@example.com 是有效的
定义的邮箱名称 RFC 822[33](附录 D)并在 RFC
3696[34](第 3 节),但两者都无效,因为 DACS 用户名。 除非引用,
电子邮件地址的本地部分组件,位于“@”字符之前
在 addr-spec 中,可能不包含以下任何内容:
( ) < > @ , ; : \" . [ ]
此外,空格和所有 US-ASCII 控制字符(八位字节 0 - 31)
和 DEL (127) 是不允许的。 没有引号,本地部分可能包括
字母、数字或以下任何字符的任意组合:
! # $ % & ' * + - / = ? ^_`。 { | }~
可以使用句点(“.”),但不能开始或结束本地部分,也不能
出现两个或两个以上的连续周期。 在双引号内,任何 ASCII
如果正确引用,字符可能会出现(例如,Auggie。”
“.O.”\'”。[电子邮件保护])。 local-part 的最大长度为 64
字符,以及出现在后面的域组件的最大长度
“@”字符是 255 个字符。
目前没有办法“引用”一个 DACS 用户名,所以一些安全编码
必须对这些名称应用方法或转换。
· DACS 可以为内部使用创建具有用户名组件的身份
包括通常无效的字符。
· 一种 用户名 区分大小写(但请参阅 名称_比较【24】配置
指令和 用户()[25] 替代行为的函数)。 没有 a
先验 限制其长度。
· 推荐的做法是让司法管辖区映射他们的 DACS 用户名
在身份验证过程中尽可能小写
映射是唯一的。 这 出口*[35] 指令可用于此目的。
组别
语法:
[[联盟名称: : : | [::]] %[辖区名称]:团队名字
A 团队名字 必须以字母字符开头,后面可以跟任何数字
字母数字、连字符(“-”)和下划线(“_”)字符。
例子:
%演示::DSS:朋友
%::DSS:朋友
%DSS:朋友
%:朋友们
角色和角色描述符
语法:
角色描述符 -> 空字符串 | 角色列表
角色列表 -> 角色 | 角色 “,” 角色列表
角色 -> 基本角色 | 复合角色
基本角色 -> [A-Za-z0-9\-_]+
复合角色 -> 基本角色 “/” 基本角色 | 基本角色 “/” 复合角色
空字符串 -> ""
角色描述符字符串(也称为角色字符串或角色描述符)包括
逗号分隔的角色列表。 角色名称(a 基本角色) 是从
大写和小写字母、数字、连字符和下划线。 一种 复合角色 is
由两个或更多 基本角色 术语,以斜线字符分隔。 这里
是角色描述符的三个示例:
管理员,轮子,根
管理员/硬件
网络/编程,计算机科学/系统/Project_X
备注
角色描述符字符串不包含空格字符,并且可能不会开始或
以逗号或斜线字符结尾。 两个或多个连续逗号是非法的,
两个或多个连续斜线也是如此。
这款 设置变量()[36] 函数可用于将复合角色分离为其基本角色
的角色。
请参阅 dacs.groups(5)[37] 了解更多信息。
简洁的用户语法
语法:
IDENT -> '{' kwv 列表 '}' | 用户
kwv 列表 -> w [',' w]*
w -> kwv-用户 | kwv-组 | kwv属性 | kwv-ip | kwv-过期
kwv-用户 -> 'u=' [Q] 用户 [问]
kwv-组 -> 'g=' [Q] 团体 [问]
kwv属性 -> 'a=' [Q] 属性 [问]
kwv-过期 -> 'e=' [Q] 到期 [问]
kwv-ip -> 'ip=' [Q] ip地址 [问]
用户 -> 简单名称 | DACS-身份
团体 -> 组 [',' 组]*
组 -> 团队名字 | 角色描述符
属性 -> 任意字母
ip地址 -> 任意 IP 地址
到期 -> +相对秒 | 日期
其中:
· Q 是可选的(匹配的)引号字符;
· 空格可以选择性地放在大多数标记之前;
· 一种 DACS-身份 是完整的还是缩写的 DACS 身分[38]
· 一种 简单名称 是 用户名 的组成部分 DACS 身份(即,没有任何
冒号); 因此,在这种情况下,“特殊”名称,例如 auth,被视为
作为:身份验证
· 角色描述符 必须是有效的 DACS 角色字符串和 团队名字 必须是有效的
DACS 组名(见 dacs_authenticate(8)[39]和 dacs.groups(5)[40]);
· IP 地址以 Internet 标准数字点符号表示(例如,
10.0.0.1); 和
· 从身份派生的凭证的生命周期可以表示为
给定的秒数(例如,“e=+3600”)或以下之一中的给定日期
格式(见 时间(3)[41]):
%a, %d-%b-%Y %H:%M:%S 格林威治标准时间
%d-%b-%Y
%b %d,%Y
%b %d
%Y-%m-%dT%H:%M:%SZ
必要时,将相对于当前时间或日期解释日期。 这
生命周期转换为其规范形式,即绝对时间和日期
以 Epoch 以来的秒数为单位,基于管辖区的时钟。 过去的约会
可以指定; 例如,这可能对测试有用。 如果身份
不用于创建凭据,到期日期将被忽略,尽管它必须是
语法正确。
· 唯一支持的属性值是“a”,表示身份应该是
被视为 管理员身份[23](参考 -行政 的旗帜 数据检查(1)[19])。
以简洁语法表达的名称,给出用户名,以及可选的角色和
身份的属性。 它被使用 数据检查(1)[19],例如。
这款 达克 公用事业
DACS 实用程序命令通常作为单独的二进制文件安装,但 DACS 可以(也或
取而代之)将它们中的大部分组合成一个单独的二进制文件,该二进制文件安装为
达克. 然后可以运行各种实用程序:
% dac dacs 命令 [选项[命令选项]
例如:
% dacs dacskey -u foo.myfed.com 输出文件
跑步 达克 不带参数的实用程序将显示可用子命令的列表。
启动 机加工
桥梁 DACS 程序在启动时执行以下操作:
1. 确定它们应该运行的“模式”; 例如,如果 REMOTE_ADDR
存在环境变量,程序通常会假设它们应该作为
Web 应用程序而不是作为实用程序命令
2. 处理一组标准的命令行参数 (选项[42])
3. 将进程 umask 设置为 007 以禁止任何创建的文件的世界访问
4. 禁用核心转储,这样敏感信息就不会被检查泄露
(但看 --启用转储[43])
5. 找不到任何配置文件或有错误拒绝操作
6. 对于 Web 服务,使 DACS home directory 当前工作目录
7. 如果启用了“安全模式”,Web 服务将只处理 HTTPS 请求
8. 验证请求所需要的版本是否与 DACS
接收请求
9. 处理任何特定于程序的命令行参数。
DACS 程序会尽快销毁敏感信息(例如密码)
因为不再需要它并且不会将潜在的敏感信息写入日志文件
除非专门配置为这样做。
内幕
有 DACS 组件可以使用 HTTP 调用其他组件(可能通过 SSL,取决于
配置)。 例如,身份验证模块可以通过以下方式作为 Web 服务调用
dacs_authenticate(8)[39]。 在所有情况下,这些“内部”HTTP 调用可能不会导致
重定向,例如通过 302 Found 状态代码。 虽然这有时可能是一个
不便,这在一定程度上是一种安全措施。
Tips:
在调试可能涉及内部 HTTP 请求的问题时(尤其是相关的
到身份验证),验证 DACS 没有收到重定向。 内部 HTTP
由于配置不正确或不完整,请求也可能神秘地失败
SSL 参数。 通过 SSL 使用的内部 HTTP 请求 客户端(1)[4],正如
数据传输协议(1)[3] 命令。 如果您怀疑 https 方案的 URL 可能不起作用,
使用调试问题 客户端 然后 数据传输协议.
为了保持数据的一致性, DACS 创建排他锁使用 控制面板(2)[44]系统
调用写入通过配置的目录中的文件 临时目录[45]
指令。
记录
桥梁 DACS 服务和实用程序将各种消息写入一个或多个日志文件。
当试图弄清楚什么是这些信息时,这些信息可能是无价的 DACS 正在做,为了
安全审计,或查看哪些 DACS- 包装的资源正在被访问以及在什么地方
方法。
请参阅 配置文件(5)[46] 有关与相关的配置指令的信息
日志记录。 下面描述的各种命令行标志也与
日志记录。
备注
· DACS 可以在配置处理完成之前发出日志消息,并且
与日志记录相关的配置指令在此期间无效
启动间隔。
· 因为 mod_auth_dacs[2] 是一个 阿帕奇 模块, 阿帕奇 日志指令适用
到它(而不是 DACS 指令)及其日志消息被写入 阿帕奇 日志
文件。
· 日志文件会很快变大,尤其是当日志级别设置为
调试或跟踪级别。 考虑每日轮换或截断。
· 日志消息的文本有时可能跨越多行。
的默认值 日志格式[47] 指令,控制日志的外观
消息,在 include/local.h 中定义为 LOG_FORMAT_DEFAULT_WEB DACS Web服务
和 LOG_FORMAT_DEFAULT_CMD 其他一切。 这是一个典型的日志消息:
[12 年 12 月 37 日星期三 09:2006:83648,1060] [trace] [XNUMX,-] [dacs_acs:"acslib"] 允许
条款授予访问权限
审计级 历史记录 收件箱
在审计类消息的情况下,括号内的字符串有时可能跟在后面
身份,如下例所示。 这个字符串,称为跟踪器,关联日志
具有特定来源的消息,可用于跟踪用户的顺序
在整个联盟中使用日志消息的服务请求。 这在以下情况下很有用
调试、寻找安全问题或取证分析。
对于未经身份验证的用户,跟踪器只能启发式地从
执行上下文的元素。 用户的 IP 地址、用户代理字符串和 SSL
使用客户端证书(如果可用)。 如果其中两个跟踪器字符串不同,
请求通常来自不同的主机、浏览器或用户,但这
不一定总是如此。 同样,如果相同的跟踪器字符串是
与两条日志消息相关联,服务请求不一定是
由同一用户发布。
对于经过身份验证的用户,跟踪器字符串由启发式导出
字符串,后跟逗号,后跟与用户的唯一关联的字符串
证书。 这个追踪器很有可能是独一无二的,并且具有
与特定用户的一对一映射。
考虑这些(精简的)日志文件条目:
[12 年 15 月 56 日星期三 24:2006:83963,1067] [通知] [XNUMX,A] [dacs_acs:"authlib"]
*** 从 7 授予未经身份验证的用户 (5vJLWzv10.0.0.124) 的访问权限
对于 /cgi-bin/dacs/dacs_current_credentials
[12 年 15 月 56 日星期三 27:2006:83965,1073] [通知] [XNUMX,A] [dacs_acs:"authlib"]
*** 从 7 授予未经身份验证的用户 (5vJLWzv10.0.0.124) 的访问权限
对于 /cgi-bin/dacs/dacs_authenticate
[12 年 15 月 56 日星期三 27:2006:83966,172] [调试] [XNUMX,A] [dacs_authenticate:"authlib"]
HOME 认证成功:bobo (7vJLWzv5,wA/Pudyp3f0)
[12 年 15 月 56 日星期三 30:2006:83973,1078] [通知] [XNUMX,A] [dacs_acs:"authlib"]
*** 授予 DSS::HOME:bobo 访问权限 (7vJLWzv5,wA/Pudyp3f0)
从 10.0.0.124 开始,用于 /cgi-bin/dacs/dacs_current_credentials
在上面的前两个日志消息中,出现了跟踪器 7vJLWzv5,这意味着
这两个请求可能来自同一个(未经身份验证的)用户。 与第三
日志消息,用户已通过身份验证,跟踪器 7vJLWzv5,wA/Pudyp3f0 是
用过的。 因为这些跟踪器都共享相同的前缀,所以前两个请求
可能也来自认证为 DSS::HOME:bobo 的人。 最后的请求,
对于 /cgi-bin/dacs/dacs_current_credentials,肯定来自该用户。 如果这
用户要退出,然后在联邦的任何地方发出更多的服务请求
DSS,每个日志消息将包含跟踪器 7vJLWzv5。
安全性
可靠地跟踪匿名用户的请求很难做好。 一种
在某些情况下,基于 cookie 的方法可能会更好,但也有其自身的缺点
(例如当用户禁用 cookie 时完全无效)。
物流跟踪 用户 活动
DACS 包括一项功能,作为构建时选项启用(请参阅 dacs.安装(7)[48]),由此
一个司法管辖区可以跟踪其所有用户的活动(即那些用户
在司法管辖区进行身份验证)。 每个成功的身份验证事件,显式注销
事件,可以在用户家中记录用户提交的web服务请求事件
由定义的格式的管辖权 dacs_user_info.dtd[49]。 这些信息可以
对于更好地了解联邦中正在发生的事情很有价值,
包括帮助诊断性能和安全问题。 它是特征的基础
像最近帐户活动的显示,它也可能用于创建新的
功能,例如并发登录限制或自适应身份验证组件
实施分层认证或基于风险的认证。
要指定归属管辖区应在何处以及如何维护这些记录,user_info
项目类型必须在该司法管辖区定义; 如果未定义,则不会有任何记录
写在那个管辖区,虽然管辖区仍然会尝试发送事件
记录到其他司法管辖区。 为了获得最大利益,应该完全启用该功能
联邦中的管辖区,因为整个联邦的所有用户活动都可以
被记录。
如果一个司法管辖区想要监控其用户在其他司法管辖区的活动,它
必须允许这些司法管辖区援引其 dacs_vfs(8)[50] 服务通过添加一个
适当的访问控制规则。
安全性
任何此类规则都必须要求 dacs_admin()[51]谓词。
备注
· dacs_管理员(8)[52] 工具提供了这些记录的接口。 这应该
最终扩展到收集和组织所有司法管辖区的记录
在联邦中以方便分析。 因为它们是带有
格式比较简单,管理员申请应该不难
通用文本处理工具或为此目的编写简短的自定义程序。
命令类似于 最后(1)[53] 谁(1)[54],和 sa(8)[55] 正在考虑中。
· 每个司法管辖区都应将记录写入自己的位置(即,司法管辖区
不应为 user_info 共享相同的 VFS 对象)。
· 这个数据库会无限增长; 管理员负责轮换
或截断它。 如果先前的主动登录信息很重要(请参阅
dacs_当前_凭据(8)[56]),只修剪请求记录(即 acs
元素)。 另一种可接受的方法是丢弃(或存档)一定比例的
较旧的记录(比如一半)并保留一些较新的记录。
· 数据格式可能会发生变化。
· 可以添加在运行时启用或禁用此功能的指令。
· 不记录内部管理事件。
· 因为注销(通过 dacs_signout(8)[57]) 是可选的,一个会话的结束
有时只能从凭证的到期日推断或近似,或
最后记录事件的时间。
配置
DACS 程序和 Web 服务通过以下方式获取大部分运行时配置信息
读取配置文件并检查环境变量。 一些配置
可以在编译时提供信息。 几个命令行标志可用于
覆盖默认行为。
备注
· 全部 选项 标志从左到右处理,必须出现在任何
命令特定的标志或参数。 第一个不是的标志或参数
被认为是其中之一 选项 终止列表。
·最重要的 选项 是那些指定位置的
配置文件并确定要在一个
配置文件。 根据程序及其使用方式,配置
信息可能不需要,可能是可选的,或者可能是必需的。
· 最多可以有一个用于选择管辖区的命令行标志
指定的。 参考 配置文件(5)[46] 了解更多信息
配置文件和配置处理。
更多来自Google的 DACS 实用程序识别以下标准选项,称为
选项:
-c 配置文件
这说明 DACS 在哪里可以找到其管辖区的配置文件
代表它在表演。 如果这个参数不存在,取决于它是如何构建的,
DACS 可能会尝试使用编译时指定的文件,或者它会尝试使用
环境变量的值 DACS_CONF[58]。 有关详细信息,请参阅 定位
配置文件 和 站点配置文件[59]。
-D姓名=折扣值
这个标志的作用是定义变量 姓名 (必须在语法上有效)
,在 DACS 具有值的命名空间 折扣值. 周围的任何报价 折扣值 被保留,
前提是外壳尚未将它们剥离。 该标志可以重复。 这些
随后可以在配置处理和规则期间测试变量
加工; 例如,配置指令的值可能取决于
a的值 选项 旗帜。 定义一个 姓名 这恰好对应于
选项 除了创建变量外,flag 没有任何作用。
All / 全部 选项 标志(排除 Free Introduction 一种) 会自动添加到 DACS
命名空间,因为它们被处理。 作为“单例”的标志(例如, -q) 最初是
赋值为 XNUMX,并在每次后续出现时递增。 一个旗帜
表格 -旗 折扣值 相当于 -D-旗=折扣值. 未使用的标志未定义; 如果 -q
没有给出, ${DACS::-q} 不会被定义。 对于那些有同义词的标志,
为每个同义词创建变量。 如果 姓名 显式或隐式地使用,
较晚的值替换较早的值。
例如,如果 选项 是:
-c www.example.com -v --verbose -Dfoo="baz" -ll debug -D-ll=trace
那么变量将被定义如下:
${DACS::-c} 是“www.example.com”
${DACS::-v} 是“2”
${DACS::--verbose} 是“2”
${DACS::foo} 是 "\"baz\""
${DACS::-ll} 是“跟踪”
调试级别将是调试而不是跟踪。
--dumpenv
将所有环境变量打印到标准输出,然后立即退出。
--启用转储
默认情况下, DACS Web 服务和大多数命令禁用核心转储生成作为
安全预防措施。 因为核心转储在调试时很有用,所以这个标志
允许它被创建。 由于允许产生核心转储的程序必须
更改为 DACS_HOME 目录,核心转储将被写入那里。 使用这个标志
小心。
-格式 fmt
输出格式设置为 fmt,这是以下关键字之一(案例
不敏感):文件、html、json、php、plain、text、xml、xmldtd、xmlsimple 或
xml 架构。 并非所有程序都支持所有输出格式。 此标志覆盖
任何 FORMAT[60] 网络服务的参数,它反过来覆盖程序的默认值
格式。 默认格式取决于特定程序及其调用方式。
有关其他信息,请参阅 描述 of 此 FORMAT 论证[60]。
-二 日志级别
日志记录级别设置为 日志级别,这是被识别的关键字之一
日志过滤器[61] 指令。
- 执照
打印许可证 DACS 到标准输出,然后立即退出。
-q
安静。 这相当于将日志记录级别设置为警告。
-sc 站点配置文件
这说明 DACS 它可以找到其管辖区的配置文件
代表它在表演。 如果这个参数不存在,取决于它是如何构建的,
DACS 可能会尝试使用编译时指定的文件,或者它会尝试使用
环境变量的值 DACS_CONF[58]。 有关详细信息,请参阅 定位
配置文件 和 站点配置文件[59]。
--标准
这标志着公共参数的结束。 下一个命令行参数(如果有)是
特定于程序。
-t
发出追踪信息。 这相当于将日志记录级别设置为跟踪。
(另请参阅 调试_dacs[62]。)
-u 配置uri
这指示 DACS 使用 配置uri 选择要在
配置文件。 有关详细信息,请参阅 这款 管辖权 部分[63]。
-uj 辖区名称
这指示 DACS 使用辖区名称 辖区名称 选择
要在配置文件中使用的权限部分。 有关详细信息,请参阅 这款
管辖权 部分[63]。
一
这指示 DACS 不处理 site.conf 或 dacs.conf。 这只能与
少量命令,例如 达克赛克(1)[64]和 客户端(1)[4]。
-向上 辖区名称
未实现。 这指示 DACS 使用辖区名称 辖区名称 至
选择要在配置文件中使用的管辖权部分并告诉它
Web 服务器充当转发代理; 那是, 辖区名称 才不是
必须“拥有”所请求的 URL。 有关详细信息,请参阅 这款 管辖权
部分[63]。
-我们
这指示 DACS 使用出现在
配置文件。 也就是说,配置文件必须只包含一个
管辖权部分,这是应该使用的部分。 有关详细信息,请参阅
这款 管辖权 部分[63]。
-v
--详细
相对于当前的日志记录级别更详细。 该标志可以重复。
- 版
立即将版本信息打印到 stderr,然后退出。 如果 -v 出现较早
在命令行上,还打印每个的版本信息 DACS 源代码文件在
这个程序。
备注
完整的版本信息仅适用于静态链接的程序。
另见 解码器版本(1)[65]和 dacs_版本(8)[66]。
Tips:
如果没有给出命令行标志来指定管辖区,则
环境变量 默认司法管辖区 将被用作好像与 -uj 旗。
这在主机只配置了一个管辖区时特别有用
因为没有必要总是指定管辖权 DACS 命令。
环境
SERVER_NAME, SERVER_PORT, REQUEST_URI
可用于确定适用的司法管辖区。
使用 onworks.net 服务在线使用 dac