本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

是一个代理,旨在保护独立的FiWare组件,通过拦截发送到组件的每个请求,并与访问控制组件进行验证。此验证基于以下几个数据:
x-auth-token头中获取。fiware-service头中读取,标识受保护的组件。fiware-servicepath头中读取,标识服务的进一步划分。与访问控制的通信基于XACML协议。
在本文档中,术语IDM(身份管理器)将作为通用术语使用,指提供用户和角色创建及认证的服务器。当前支持的IDM是Keystone;还提供了Keyrock IDM选项,但可能在不久的将来被弃用。
其他三个文档提供了有关PEP代理的更多信息:
PEP代理是标准的Node.js应用程序,除了Node.js解释器和NPM包实用程序外,不需要更多依赖项。
只需检出此目录并使用以下命令安装Node.js依赖项:
npm install --production
然后代理应该可以配置和使用了。
Docker Hub上发布了Steelskin PEP代理开发版本的自动构建。要使用docker版本安装,只需执行以下命令:
docker run -p ***:*** -p 1026:1026 -e LOG_LEVEL=DEBUG -e AUTHENTICATION_HOST=<Keystone-host> -e ACCESS_HOST=<Access-control-host> -e TARGET_HOST=<Orion-host> telefonicaiot/fiware-pep-steelskin
此命令将创建一个运行PEP Steelskin的docker容器,使用
请注意,此命令公开两个端口:1026端口用于组件请求,***端口用于管理端口。
也可以构建PEP组件的本地Docker镜像。
在机器上安装Docker后,按照以下步骤操作:
sudo docker build -f Dockerfile .
sudo docker build --build-arg NODEJS_VERSION=0.10.46 -f Dockerfile .
通过添加PM2_ENABLED环境变量,可以在pm2进程管理器中运行Docker镜像中的PEP。
docker run --name pep -e PM2_ENABLED=true -d fiware/fiware-pep-steelskin
默认情况下,pm2的使用是禁用的。如果您的docker化环境已配置为在Node.js进程退出时重新启动它们(例如,使用Kubernetes时),添加额外的进程管理器是不必要的,并且会适得其反。
通过添加INSPECT_ENABLED环境变量,可以使用node inspection运行Docker镜像中的PEP。
docker run --name pep -e INSPECT_ENABLED=true -d fiware/fiware-pep-steelskin
默认情况下,node检查的使用是禁用的。
如果直接从GIT存储库安装代理,要取消部署代理,只需终止进程并删除目录。
假设PEP代理直接从源代码部署,它不会将自己添加为服务,运行端口应手动配置。此配置将涉及两个步骤:
nohup bin/pep-proxy.js &> pep-proxy.log&
安装后,代理服务处于禁用状态。要启用它,请使用以下命令:
service pepProxy start
无论服务如何安装,日志文件都需要外部轮换(例如:logrotate命令)以避免磁盘空间不足问题。
如果PEP代理未作为服务启动,可以从项目根目录执行以下命令启动:
bin/pep-proxy.js
PEP代理工作后,可用于对受保护组件(例如Orion Context Broker)实施身份验证和授权。为了实施这两个操作,PEP代理必须连接到身份管理器服务器和访问管理器服务器。下一节将展示这两个过程的一些示例。
请注意,为了通过访问控制授权请求,请求必须包含以下所有头:
IDM和访问控制系统使用这些头来做出关于请求的决策,因此如果缺少任何一个,请求将不会进一步处理,并将被拒绝,返回400 HTTP错误代码。有关返回错误的详细说明,请参阅API错误代码。
代理也可以在仅身份验证模式下工作(使用config.access.disable标志),在这种情况下,fiware-service和fiware-servicepath头可以标记为可选,或无论如何检查其有效性(由config.authentication.checkHeaders标志控制)。对于执行授权过程的PEP代理,无法禁用头检查。
身份验证过程基于OAuth v2令牌。PEP代理期望所有请求都有一个x-auth-token头,其中包含来自IDM的有效访问令牌。所有没有此要求的请求都将被拒绝,返回401错误。
PEP代理目前支持两种可能的身份验证机构:Keyrock IdM和Openstack Keystone。以下部分显示如何使用每种身份验证技术检索令牌。可以使用config.authentication.module选项配置模块。
为了获取要随请求发送的访问令牌,用户可以向IDM发送请求,包含其用户和密码(此处显示为curl请求):
curl -i --user <serverUser>:<serverPassword> -X POST -H "Content-Type: application/x-www-form-urlencoded" https://<idmHostName>/oauth2/token -d 'grant_type=password&username=<theUserName>&password=<theUserPassword>'
如果用户和密码正确,响应将如下所示:
{ "access_token":"O-OqiBR1AbZk7qfyidF3AwMeBY253xYEpUdkv", "refresh_token":"Ny0OwE***QfftxXYGwwgOLafa5v2xnI5t6HWdQ", "token_type":"bearer", "expires_in":2591999 }
access_token字段包含所需的令牌。
还必须使用它为每个用户分配角色。有关角色创建和分配的详细信息,请查看IDM API。
为了获取其访问令牌,用户可以向Keystone发送以下请求:
curl http://localhost:5000/v3/auth/tokens \ -s \ -i \ -H "Content-Type: application/json" \ -d ' { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "SmartCity" }, "name": "alice", "password": "password" } } } } }'
令牌可以在响应的X-Subject-Token头中找到:
X-Subject-Token: MIIC3AYJKoZIhvcNAQcCoIICzTCCAskCAQExCTAHBgUrDgMCGjCCATIGCSqGSIb3DQEHAaCCASMEggEfeyJ0b2tlbiI6IHsiaXNzdWVkX2F0IjogIjIwMTQtMTAtMTBUMTA6NTA6NDkuNTMyNTQyWiIsICJleHRyYXMiOiB7fSwgIm1ldGhvZHMiOiBbInBhc3N3b3JkIl0sICJleHBpcmVzX2F0IjogIjIwMTQtMTAtMTBUMTE6NTA6NDkuNTMyNDkxWiIsICJ1c2VyIjogeyJkb21haW4iOiB7ImlkIjogImY3YTViOGUzMDNlYzQzZThhOTEyZmUyNmZhNzlkYzAyIiwgIm5hbWUiOiAiU21hcnRWYWxlbmNpYSJ9LCAiaWQiOiAiNWU4MTdjNWUwZDYyNGVlNjhkZmI3YTcyZDBkMzFjZTQiLCAibmFtZSI6ICJhbGljZSJ9fX0xggGBMIIBfQIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVVbnNldDEOMAwGA1UEBwwFVW5zZXQxDjAMBgNVBAoMBVVuc2V0MRgwFgYDVQQDDA93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQYJKoZIhvcNAQEBBQAEggEAKRGV3uu8fiS7UNm47KhltSjlY1e7KnedUcD-mdwz6Asbo7X9hbtljy1ml9gGcuMf6vX4tycx4goRyMARPS7YKROd0evZtnYArIyx0IrmwDaqodwp8BxBCxFgHRZtCwzHvZFEaUcClydQq7HJvBfTgTwH4v1aJkMyK8wLMP-CYyiZSfCIWPVnoB9I3P56jeKHkmcryYLgT2I-AwDBj1zd9HPzUjyQuNj5rCMkJjvz-A9-hef6AMMZuYPMIYdkei+deq86O1qFuo7PpO2SA7QWkqjcsKs9v+myvHhLrBre9GLP2hP1rc4D67lSL2XB1UY20mc6FNIVIErxT0DOSXltXQ== Vary: X-Auth-Token Content-Type: application/json Content-Length: 287 Date: Fri, 10 Oct 2014 10:50:49 GMT { "token": { "issued_at": "2014-10-10T10:50:49.532542Z", "extras": {}, "methods": [ "password" ], "expires_at": "2014-10-10T11:50:49.532491Z", "user": { "domain": { "id": "f7a5b8e303ec43e8a912fe26fa79dc02", "name": "SmartValencia" }, "id": "5e817c5e0d624ee68dfb7a72d0d31ce4", "name": "alice" } } }
有关用户和角色创建的详细信息,请查看Keystone API。
用户通过身份验证后,PEP代理将向访问控制询问其权限。为了使请求被接受,至少有一个规则必须匹配请求信息和用户角色。
规则在XACML中定义。特定规则将取决于每个案例,并由授权设计者决定。以下文档显示了针对Context Broker用例解释的典型规则:
<Policy xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 [***]" PolicyId="policy03" RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-unless-permit" Version="1.0" xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" xmlns:xsi="[***]"> <Target> <AnyOf> <AllOf> <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match"> <AttributeValue DataType="[***]" >frn:contextbroker:551:833:.*</AttributeValue> <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="[***]" MustBePresent="true" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" /> </Match> </AllOf> </AnyOf> </Target> <Rule RuleId="policy03rule01" Effect="Permit
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429