
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本CLI工具可从OpenAPI合约中为每个API端点生成安全且一致的Ory Oathkeeper规则,用于强制执行认证和授权策略。
该项目通过利用OpenAPI合约中已有的文档,自动化生成Ory Oathkeeper规则,尤其适用于具有大量端点或服务的大型项目,能显著节省时间。它可提升API整体安全性,确保仅授权方获得访问权限,并简化开发流程,减少手动编写和维护规则的工作量。
Ory Oathkeeper是一个身份与访问代理(IAP)及访问控制决策API,基于访问规则集授权HTTP请求。更多信息可参考https://github.com/ory/oathkeeper。
身份与访问代理通常部署在面向Web的应用程序前(如API网关或服务网格),能够认证并可选授权访问请求。访问控制决策API可与现有API网关或反向代理一同部署。
使用该工具需遵循以下步骤:
shdocker run -v ./openapi.json:/tmp/openapi.json docker.xuanyuan.run/cerberauth/openapi-oathkeeper generate -f ./openapi.json
指定选项后,工具将分析合约并生成Oathkeeper规则,你可将这些规则保存到文件供Oathkeeper读取。
由于认证规则可能需要额外信息以确保授权和认证正常工作,可通过OpenAPI扩展或配置文件传递额外信息。
推荐使用专用配置文件管理Oathkeeper规则,这种方式更灵活易用。以下是支持的配置属性:
| 字段 | 类型 | 键 |
|---|---|---|
| Prefix | string | "prefix" |
| ServerUrls | []string | "server_urls" |
| Upstream | Upstream | "upstream" |
| Authenticators | Map of Authenticators | "authenticators" |
| Authorizer | Authorization Handler | "authorizer" |
| Mutators | Array of Mutator Handlers | "mutators" |
| Errors | Array of Error Handlers | "errors" |
以下是YAML格式的配置文件示例:
yamlprefix: cerberauth server_urls: - https://www.cerberauth.com/api - https://api.cerberauth.com/api authenticators: openidconnect: handler: "jwt" config: target_audience: - https://api.cerberauth.com
使用配置文件生成规则的命令:
shelldocker run -v ./test:/tmp/test docker.xuanyuan.run/cerberauth/openapi-oathkeeper generate -c /tmp/test/config/sample.yaml -f /tmp/test/stub/sample.openapi.json
json[ { "id": "cerberauth:getUserById", "version": "", "description": "", "match": { "methods": [ "GET" ], "url": "<^(https://www\\.cerberauth\\.com/api|https://api\\.cerberauth\\.com/api)(/users/(?:[[:alnum:]]?\\x2D?=?\\??&?_?)+/?)$>" }, "authenticators": [ { "handler": "jwt", "config": { "jwks_urls": [ "https://console.ory.sh/.well-known/jwks.json" ], "required_scope": [ "user:read" ], "target_audience": [ "https://api.cerberauth.com" ], "trusted_issuers": [ "https://console.ory.sh" ] } } ], "authorizer": { "handler": "allow", "config": null }, "mutators": [ { "handler": "noop", "config": null } ], "errors": [ { "handler": "json", "config": null } ], "upstream": { "preserve_host": false, "strip_path": "", "url": "" } }, { "id": "cerberauth:updateUser", "version": "", "description": "This can only be done by the logged in user.", "match": { "methods": [ "PUT" ], "url": "<^(https://www\\.cerberauth\\.com/api|https://api\\.cerberauth\\.com/api)(/users/(?:[[:alnum:]]?\\x2D?=?\\??&?_?)+/?)$>" }, "authenticators": [ { "handler": "jwt", "config": { "jwks_urls": [ "https://console.ory.sh/.well-known/jwks.json" ], "required_scope": [ "user:write" ], "target_audience": [ "https://api.cerberauth.com" ], "trusted_issuers": [ "https://console.ory.sh" ] } } ], "authorizer": { "handler": "allow", "config": null }, "mutators": [ { "handler": "noop", "config": null } ], "errors": [ { "handler": "json", "config": null } ], "upstream": { "preserve_host": false, "strip_path": "", "url": "" } } ]
OpenAPI扩展是OpenAPI规范的扩展机制,可将Oathkeeper特定规则直接嵌入API文档中,实现API规范与安全规则的统一管理。以下是支持的配置:
| 名称 | 安全方案 | OpenAPI扩展名称 |
|---|---|---|
| JWKS URI | oauth2, http | x-authenticator-jwks-uri |
| Issuer | oauth2, http | x-authenticator-issuer |
| Audience | openIdConnect, oauth2, http | x-authenticator-audience |
文档可在https://github.com/cerberauth/openapi-oathkeeper/docs/openapi-oathkeeper.md目录中找到,或运行`docker run cerberauth/openapi-oathkeeper help`查看。
该工具目前处于测试阶段,可能存在限制和bug。未来将持续改进并添加新功能,欢迎反馈和建议!项目的里程碑和未来增强计划可在https://github.com/cerberauth/openapi-oathkeeper/milestones查看。
MIT © CerberAuth
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务