PCI-DSS 查询密码过期用户¶
蓝图 pci-dss-query-password-expired-users
问题描述¶
目前,在使用:keystone.conf [security_compliance] password_expires_days 值时,当用户的密码过期并需要管理员重置时,没有办法查询处于密码过期状态的用户列表。我们希望能够检索密码已过期的用户列表,用于技术支持和审计目的。
提议的变更¶
将向现有的:GET /v3/users API 调用添加一个新的查询,允许管理员查询因密码过期而当前被锁定的用户列表。这将允许操作员设置作业以生成必要的审计列表和通知。
根据密码的过期时间查询用户列表
根据密码的过期时间获取用户列表。
GET /v3/users?password_expires_at={operator}:{timestamp}
其中 {timestamp} 是格式为 YYYY-MM-DDTHH:mm:ssZ 的日期时间,{operator} 可以是 lt 或 gt。请注意,用户也可以通过 /v3/users?password_expires_at={timestamp} 进行相等匹配;但是,由于此查询的性质,它可能不太有用。
https://specs.openstack.org/openstack/api-wg/guidelines/pagination_filter_sort.html#filtering
示例¶
查询密码在给定时间戳之前过期的用户列表。
GET /v3/users?password_expires_at=lt:2016-10-10T15:30:22Z
响应
{
"links": {
"next": null,
"previous": null,
"self": "http://example.com/identity/v3/users"
},
"users": [
{
"domain_id": "default",
"enabled": false,
"id": "514a66612f53412796952414898a6b99",
"name": "someuser1",
"links": {
"self": "http://example.com/identity/v3/users/514a66612f53412796952414898a6b99"
},
"password_expires_at": "2016-07-07T15:32:17.000000"
},
{
"domain_id": "default",
"enabled": true,
"id": "ce8a21d43bc64ce6840346f0a14a7fa9",
"name": "someuser4",
"links": {
"self": "http://example.com/identity/v3/users/ce8a21d43bc64ce6840346f0a14a7fa9"
},
"password_expires_at": "2016-10-09T00:21:04.000000"
}
]
}
查询密码在给定时间戳之后过期的用户列表
GET /v3/users?password_expires_at=gt:2016-10-14T15:30:22Z
响应
{
"links": {
"next": null,
"previous": null,
"self": "http://example.com/identity/v3/users"
},
"users": [
{
"domain_id": "default",
"enabled": false,
"id": "514a66612f53412796952414898a6b99",
"name": "someuser1",
"links": {
"self": "http://example.com/identity/v3/users/514a66612f53412796952414898a6b99"
},
"password_expires_at": "2016-10-17T15:32:17.000000"
}
]
}
备选方案¶
操作员可以直接查询 SQL 后端,通过检查 password_expires_at 字段来查询密码已过期的用户。
安全影响¶
无。添加的 API 变更没有额外的安全影响。
通知影响¶
不会为此查询添加额外的通知。
其他最终用户影响¶
无。添加的 API 变更没有额外的最终用户影响。
性能影响¶
如果用户数量非常大,此调用可能会失败,因为当前不支持分页。
其他部署者影响¶
无。添加的 API 变更没有额外的部署者影响。
开发人员影响¶
无。添加的 API 变更没有额外的开发者影响。
实现¶
负责人¶
- 主要负责人
gagehugo <gagehugo@gmail.com>
- 其他贡献者
lamt <tinlam@gmail.com>
工作项¶
实现新的用户查询。
在
python-keystoneclient中实现绑定。实现单元测试。
记录新的用户查询用法。
依赖项¶
此蓝图依赖于以下内容
文档影响¶
api-ref 中的文档将被更新,以包含添加的查询参数及其用法。