专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

telefonicaiot/fiware-keystone-spassword Docker 镜像 - 轩辕镜像

fiware-keystone-spassword
telefonicaiot/fiware-keystone-spassword
自动构建
带有spassword和scim插件的Keystone身份管理,提供增强密码安全检查,如强密码强制、密码过期、登录失败锁定、密码恢复及双因素认证等功能。
2 收藏0 次下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源
中文简介版本下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源

Keystone SPASSWORD 扩展

![FIWARE 安全]([] ![许可证:Apache 2.0]([]
![Quay 徽章]([] ![Docker 徽章]([]
!状态

Keystone SPASSWORD 是 OpenStack Keystone 的扩展,提供额外的用户密码安全检查功能,包括强制使用强密码、设置密码过期时间、登录尝试失败次数限制(达到阈值后账户临时锁定)、密码恢复流程、双因素认证(2FA)等。

基于 Keystone 的版本

  • 1.4.X 使用 Keystone Liberty
  • 1.5.X 使用 Keystone Mitaka
  • 1.6.0 使用 Keystone Newton
  • 1.7.0 使用 Keystone Pike
  • 1.8.0 使用 Keystone Queens
  • 1.9.0 使用 Keystone Rocky
  • 1.10.0 至 1.17.0 使用 Keystone Stein
  • 1.18.x 使用 Keystone Xena
  • 1.19.x 至 1.24.0 使用 Keystone Antelope

安装与配置

在 RDO OpenStack 上通过 RPM 安装

通过 RPM 安装非常简单:

sh
rpm -Uvh keystone-spassword-*.noarch.rpm

安装后可微调配置选项(默认配置位于 /etc/keystone/keystone.conf):

[spassword]
enabled = true
pwd_exp_days = 365
pwd_max_tries = 5
pwd_block_minutes = 30
pwd_user_blacklist = user_id_list
smtp_server = '0.0.0.0'
smtp_port = 587
smtp_tls = true
smtp_user = '***'
smtp_password = 'yourpassword'
smtp_from = 'smtpuser'
  • enabled:布尔值,启用(true)或禁用(false)Keystone SPASSWORD 插件功能。
  • pwd_exp_days:密码过期时间(天),若用户未在此期限前更改密码则密码过期。
  • pwd_max_tries:登录尝试失败的最大次数,超过后账户将被锁定。
  • pwd_block_minutes:账户锁定时间(分钟)。
  • pwd_user_blacklist:以逗号分隔的用户 ID 列表,这些用户不受 SPASSWORD 限制。

keystone-spassword 启用了两个新的认证和身份插件,扩展了默认插件以确保强密码使用、检查过期时间及控制登录失败尝试次数。此外,它扩展了 Keystone 通过 "POST /v3/auth/tokens" 返回给用户的令牌数据,在令牌的 'extra' 字典中包含新字段:

json
"extras": {
    "password_creation_time": "2016-12-01T08:55:34Z",
    "pwd_user_in_blacklist": false,
    "password_expiration_time": "2017-12-01T08:55:34Z",
    "last_login_attempt_time": "2017-05-01T06:45:00Z"
}

需在配置中设置认证和身份插件:

[auth]
password=keystone_spassword.contrib.spassword.SPassword

及

[identity]
driver=keystone_spassword.contrib.spassword.backends.sql.Identity

添加过滤器配置:

[filter:spassword_checker]
paste.filter_factory = keystone_spassword.contrib.spassword.routers:PasswordExtension.factory

[filter:spassword_time]
paste.filter_factory = keystone_spassword.contrib.spassword:PasswordMiddleware.factory

重启 Keystone 服务:

sh
sudo service openstack-keystone restart
TGZ 安装

将插件的 TGZ 文件解压到 Python site-packages 目录,从 Keystone 的 contrib 目录创建软链接指向该目录。详细步骤参见 [RPM 规范步骤]./keystone-spassword.spec)。

安装 Keystone

完整的 Keystone 开发环境安装指南:

[***]

Docker 安装

提供包含 Keystone + keystone scim 插件 + keystone spassword 插件的 Docker 容器镜像: [***]

配置相关的[环境变量

从旧版本升级:

如何升级到最新(1.18.0)Docker 版本: 升级到 1.18.0 版本前,需先升级到 1.17.0 版本。根据起始版本,可能需要执行特定步骤。

常规升级流程:停止容器,更新 docker-compose 中的版本,重新启动容器;容器将被重建。但如果起始版本在 1.4.X 至 1.6.X 之间,则需执行额外步骤。无论如何,确保备份 MySQL Keystone 数据库:

sh
mysqldump -u root -p keystone > keystone_backup.sql

并在迁移的每个步骤中检查 Keystone 是否正常工作(如能否认证)。

另一种备份 Keystone 数据库的方法:

sh
echo "create database new_keystone" | mysql -u root -p
mysqldump -u root --password=<密码> keystone | mysql -u root -p new_keystone

从 1.4.X 升级

需先升级到 1.5.4 版本,再执行该版本的升级步骤。此步骤中,重要的是使用 Keystone 创建的 SQL 架构,而非仅从 SQL 转储备份恢复,因为 SQL 转储备份可能缺少 1.4.x 到 1.5.x 迁移所需的所有数据。更多信息见 [***]

从 1.5.X 或 1.6.0 升级

需执行以下操作:

在更新 docker-compose 中的镜像前,备份 keystone.spassword 表:

sh
mysqldump -u root -p keystone spassword > table_spassword.sql

执行以下命令:

sh
mysql -h iot-mysql -u root -p
use keystone;
drop table spassword;
delete from migrate_version where repository_id='keystone_spassword';

然后停止容器,更新 docker-compose 中的镜像版本并重启容器。检查 Keystone 正常工作后,可选择恢复 spassword 表:

sh
mysql -u root -p keystone < table_spassword.sql

再次重启 Keystone 容器。

从 1.7.0 或更高版本升级到 1.17.0

无需额外操作。

从 1.17.0 升级到 1.18.1

无需额外操作。

从 1.18.1 升级到 1.19.1

无需额外操作。升级到 1.19.1 版本前需先升级到 1.18.1 版本。

从 MySQL 迁移到 PostgreSQL

自 1.21.0 版本起,Keystone SPASSWORD 支持从 MySQL 迁移到 PostgreSQL。

前提条件

MySQL 8 的默认认证插件为 caching_sha2_password,不被迁移工具 pgloader 支持。需在 [mysqld] 部分添加:

default-authentication-plugin=mysql_native_password

重启 MySQL 服务器后执行:

ALTER USER 'youruser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

迁移步骤

  1. 在 PostgreSQL 中创建新的 Keystone 数据库和用户:
sh
PGPASSWORD=postgresUser psql -h 172.17.0.1 -p 5432 -U postgresPass <<EOF
CREATE DATABASE keystoneDb;
CREATE USER keystoneUser WITH PASSWORD 'keystonePass';
GRANT ALL PRIVILEGES ON DATABASE keystoneDb TO keystoneUser;
ALTER DATABASE keystoneDb OWNER TO keystoneUser;
EOF
  1. 使用 pgloader(常见于 Debian 等 Linux 发行版)迁移数据:
sh
pgloader mysql://keystoneUser:keystonePass@172.17.0.1:3306/keystoneDb postgresql://keystoneUser:keystonePass@172.17.0.1:5432/keystoneDb
  1. 重启 Keystone Docker 容器:
sh
docker restart keystone

使用方法

SPASSWORD 扩展复用 Keystone 提供的认证和授权机制。本文档假设读者已具备 Keystone 使用经验,更多关于 Keystone 认证授权机制的信息参见官方文档。

此外,keystone-spassword 新增了处理双因素认证的 API,以及以下新 API:

  • 获取用户的所有项目角色(即授权):

GET '/v3/users/{user_id}/project_roles'

需使用与 <user_id> 用户关联的 x-auth-token。返回示例:

json
[
    {
        "domain": "8960989b51164eaeaa42200ecc79a47a",
        "project_name": "/smartcity/gardens",
        "project": "031149af6c5147a782e9cf4c56e1fe11",
        "role_name": "8960989b51164eaeaa42200ecc79a47a#SubServiceAdmin",
        "role": "e0da2d91e8154a32980ed4c5a717fd91",
        "user": "bace4fd6bd9b49fda5727eb83a714a3c",
        "user_name": "user1"
    },
    ....
]
  • 获取用户密码过期黑名单成员资格:

    GET '/v3/users/<user_id>/black'

    需使用与 <user_id> 用户关联的 x-auth-token。返回 JSON 指示用户是否在黑名单中({"black": true} 或 {"black": false}),并包含当前用户的密码过期时间(如 {"pwd_expiration_time": "2035-02-11T09:29:28.000000"})。

  • 修改用户密码过期黑名单成员资格(启用/禁用):

    POST '/v3/users/<user_id>/black'

    需使用与 <user_id> 用户关联的 x-auth-token。请求体为 {"enable":true}(启用)或 {"enable":false}(禁用)。

  • 初始化密码重置流程:

    GET '/v3/users/<user_id>/recover_password'

    无需与 <user_id> 用户关联的 x-auth-token。若用户有有效的已验证***,重置密码的链接将发送至该***。用户点击链接后,密码将重置并通过邮件发送给用户。

  • 完成密码重置流程:

    GET '/v3/users/<user_id>/reset_password/'

    [object Object]

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
查看更多 fiware-keystone-spassword 相关镜像 →
opensourcemano/keystone logo
opensourcemano/keystone
OpenStack Keystone身份认证服务的接口组件,用于实现服务间身份验证、授权管理及用户凭证交互。
2500K+ pulls
上次更新:未知
starlingx/stx-keystone logo
starlingx/stx-keystone
StarlingX是一个开源分布式云平台。更多信息请访问:https://www.starlingx.io/
50K+ pulls
上次更新:未知
starlingx/stx-keystone-api-proxy logo
starlingx/stx-keystone-api-proxy
StarlingX是一个开源分布式云平台,主要用于构建分布式云环境。
50K+ pulls
上次更新:未知
fiware/orion logo
fiware/orion
支持NGSI-v2标准的上下文代理,用于物联网环境中上下文信息的存储、查询与管理,为应用提供实时上下文数据服务。
195M+ pulls
上次更新:未知
fiware/orion-ld logo
fiware/orion-ld
基于NGSI-LD标准的上下文代理,用于物联网环境中上下文信息的收集、存储、查询与分发,支持标准化数据交互的核心组件。
11M+ pulls
上次更新:未知
fiware/iotagent-ul logo
fiware/iotagent-ul
Ultralight 2.0协议的IoT Agent,支持AMQP、HTTP和MQTT传输,作为Ultralight与上下文broker的NGSI接口之间的桥梁。
3100K+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
telefonicaiot/fiware-keystone-spassword
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.