segrax / opa-policy-generator
将 OpenAPI 3 规范转换为 OPA 策略
0.5.0
2023-07-18 04:38 UTC
Requires
- symfony/console: ^4.3|^5.0|^6.0
Requires (Dev)
- phpunit/phpunit: ^8.5
README
将 OpenAPI 3 规范转换为 OPA 策略。
警告
虽然这个工具将生成表示策略的文件,但在使用策略之前建议手动审查每一行。
如 API 密钥等项必须手动设置,以及任何其他在规范中无法定义的安全相关项。
早期开发
这个工具处于开发阶段,可能不支持所有 OpenAPI3 功能,如果发现缺少您所需的功能,请提交功能请求。
如何使用
使用 opapg 最简单的方法是通过 docker,将包含规范文件夹挂载为卷
docker run --volume d:/projects/myapi:/srv/app segrax/opapg from-openapi openapi.yaml --output=mypolicy
这将生成一个策略以及一组策略测试(在挂载的卷中),并将 'opa test' 命令的结果输出到控制台
data.name.api.test_locat_id_oauth2_allowed: PASS (537.7µs) data.name.api.test_locat_id_oauth2_denied: PASS (401.6µs) data.name.api.test_locat_id_apiKey1_allowed: PASS (352.5µs) data.name.api.test_locat_id_apiKey1_denied: PASS (293.5µs) data.name.api.test_locations_near_allowed: PASS (280.2µs) data.name.api.test_locations_get_allowed: PASS (849.6µs) data.name.api.test_locations_create_bearerAuth_allowed: PASS (707.1µs) data.name.api.test_locations_create_bearerAuth_denied: PASS (346.1µs) data.name.api.test_media_get_allowed: PASS (398µs) data.name.api.test_media_list_allowed: PASS (343.1µs) data.name.api.test_media_upload_bearerAuth_allowed: PASS (314.3µs) data.name.api.test_media_upload_bearerAuth_denied: PASS (447.2µs) -------------------------------------------------------------------------------- PASS: 12/12
待办事项
还有许多功能需要添加,请将想法/功能请求提交到问题跟踪器。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。