ORD 的 CDS 插件
关于这个项目
此插件添加支持 打开资源发现 基于 CAP 应用程序的(ORD)协议. 当您添加了 ORD 插件时, 您的应用程序会获得一个单一的切入点, 从而可以发现并收集该应用程序的机器可读信息或元数据 . 您可以使用这些信息构建一个静态元数据目录, 或者对您的系统实例/ 系统地貌进行详细的运行时间检查 .
欲了解更多情况,请查看 打开资源发现 页 次.
QQ 通过安装此插件, 描述您 CAP 应用程序的元数据将会被公开访问 。 如果您想要保护您的 CAP 应用程序的元数据, 请配置
basic通过设置环境变量或更新.cdsrc.json文档。 插件优先排序环境变量,然后检查.cdsrc.json如果两者都没有配置,则元数据仍可公开查阅.
AI 编码代理技能
这个项目两艘 克劳德密码技能 下级 .skills/ aI编码代理可以用来协助完成共同的任务:
| 技能 | 说明 |
|---|---|
integrate-ord-plugin | 整合分步指导 @cap-js/ord 进入CAP节点js项目——安装, .cdsrc.json 配置、认证和核查. |
custom-ord-annotations | 人人参考 @ORD.Extensions.* CDS说明——标题,描述,版本,能见度,消费捆等. |
要求和设置
安装
npm install @cap-js/ord
说明:
@cap-js/openapi财务报告和审定财务报表@cap-js/asyncapi软件包已经从端点依赖移入package.json因此,使用全球安装的软件包可能导致冲突。 如果有冲突npm uninstall -g @cap-js/openapi @cap-js/asyncapi接下来npm install在您的工程目录中.
认证
ORD 插件支持多种认证策略,这些策略可以通过环境变量配置,或者 .cdsrc.json。认证类型根据其配置的存在而自动检测到 - 没有明确 types 需要数组.
支持认证方法 :
- 打开: 没有认证( 当没有配置其他认证时默认)
- 基础: HTTP 有 bcrypt- hashed 密码的基本认证
- CF mTLS 数字: Cloud Foundry 互用 TLS 认证
- DwC mTLS 维基百科: 数据仓库云互通 TLS 认证
多重认证策略: 您可以同时配置多种认证方法( 例如, 两者兼有) basic 财务报告和审定财务报表 cf-mtls) (中文(简体) ). 插件执行类似Express的中间软件模式,按顺序尝试每个已配置策略,直到一个策略成功.
注意:在配置任何安全认证方法时,会自动禁用开放式认证以确保安全. ORD文件将反映所有积极的认证策略.
打开
这个 open 认证类型是默认并绕过认证检查. 没有配置其他认证时会自动使用.
基本认证
使用环境变量配置基本验证或 .cdsrc.json数字 :
备选案文1:环境变量
BASIC_AUTH='{"admin":"$2y$05$..."}'
选项2:配置文件
添加到您的 .cdsrc.json数字 :
{
"cds": {
"ord": {
"authentication": {
"basic": {
"credentials": {
"admin": "$2y$05$..."
}
}
}
}
}
}
要生成 bcrypt 散列,请使用 密码 工具栏 :
htpasswd -Bnb <user> <password>
这将输出类似的东西 admin:$2y$05$... - 只使用散列部分(从 $2y$在你身边 BASIC_AUTH 贾森.
[大 确保使用强口令,安全地处理BASIC AUTH环境变量. 永远不要将真实的证书或.env文件输入版本控制.
在你的环境下使用htpasswd
-
独立平台数字 :
先决条件是 节点JS 安装在机器上.
npm install -g htpasswd在全球安装软件包后, 命令
htpasswd应在终端中提供. -
马科斯数字 :
不需要安装任何额外的软件包。 工具
htpasswd默认情况下可在终端中获取. -
链接数字 :
安装 apache2- utils 软件包 :
# Debian/Ubuntu sudo apt-get install apache2-utils # RHEL/CentOS sudo yum install httpd-tools
CF mTLS 认证
为 SAP BTP Cloud 创建环境配置 Cloud Foundry 相互 TLS 认证. 可能的值包括"sap:cmp-mtls:v1"和"sap.businesshub:mtls:v1".
使用 UCL 生产配置( 建议)
对于SAP UCL(统一客户景观)集成,启用mTLS in .cdsrc.json 通过环境变量配置 UCL 端点 :
{
"ord": {
"authentication": {
"cfMtls": true
}
}
}
# Example configuration of the CF_MTLS_TRUSTED_CERTS environment variable
export CF_MTLS_TRUSTED_CERTS='{
"configEndpoints": ["https://your-ucl-endpoint/v1/info"],
"rootCaDn": ["CN=SAP Cloud Root CA,O=SAP SE,L=Walldorf,C=DE"],
"accessStrategies": ["sap:cmp-mtls:v1", "sap.businesshub:mtls:v1"]
}'
带有自定义证书的生产配置
对于没有 UCL 的自定义证书 :
# Example configuration of the CF_MTLS_TRUSTED_CERTS environment variable
export CF_MTLS_TRUSTED_CERTS='{
"certs": [{"issuer": "CN=My CA,O=MyOrg", "subject": "CN=my-service,O=MyOrg"}],
"rootCaDn": ["CN=My Root CA,O=MyOrg"],
"accessStrategies": ["sap:cmp-mtls:v1", "sap.businesshub:mtls:v1"]
}'
开发配置
对于本地开发,请直接在其中配置完整的mTLS设置 .cdsrc.json数字 :
{
"ord": {
"authentication": {
"cfMtls": {
"rootCaDn": ["CN=Test Root CA,O=MyOrg,C=DE"],
"accessStrategies": ["sap:cmp-mtls:v1","sap.businesshub:mtls:v1"],
"certs": [
{
"issuer": "CN=Test CA,O=MyOrg,C=DE",
"subject": "CN=test-client,O=MyOrg,C=DE"
}
]
}
}
}
}
说明: 关于详细的CF mTLS配置选项,请参见: 文档。 。 。 .
DwC mTLS 认证
当网关转发已验证客户端证书时配置 DwC mTLS
DwC-Forwarded-Client-Cert 头曰. 它的配置是一样的 certs, (中文(简体) ),
rootCaDn, (中文(简体) ), configEndpoints选择 accessStrategies 字段为 CF mTLS;
使用情况 dwcMtls 财务报告和审定财务报表 DWC_MTLS_TRUSTED_CERTS 换句话说 见
DwC mTLS 文档 举个例子.
多重认证策略
可以同时配置多种认证方法,支持不同的客户类型. 根据配置存在自动检测到认证类型 :
配置在 .cdsrc.json数字 :
{
"cds": {
"ord": {
"authentication": {
"basic": {
"credentials": {
"admin": "$2y$05$..."
}
},
"cfMtls": {
"certs": [...],
"rootCaDn": [...]
}
}
}
}
}
如何运作:
- 认证类型是根据您配置的( 无)
types所需阵列) - 插件按顺序尝试每个配置的认证策略
- 使用第一个成功认证请求的策略
- 如果请求包含 Basic 认证信头, 将尝试 Basic 认证
- 如果请求包括 mTLS 证书头, 则尝试 CF mTLS 认证
- ORD 文档在其中自动包含所有已配置的认证方法
accessStrategies
实例情景:
- 基本 + CF mTLS: 既支持使用 Basic 认证的 API 客户端,也支持使用 mTLS 证书的服务
- 仅基本: 只有拥有有效 Basic 认证证书的客户端才能访问
- 仅限 CF mTLS: 只有拥有可信证书的客户端才能访问
使用量
程序化 API
const cds = require("@sap/cds");
require("@cap-js/ord");
const csn = cds.context?.model || cds.model;
const ord = cds.compile.to.ord(csn);
命令行
构建包括 ordDocument 和服务资源文件在内的所有 ord 相关文档 :
支持的选项
- 劳动者数字 :
- 说明: 执行期间使用的工人最多
- 支持的数值数字 :
- 工人=无 - N(int)工人人数最多(例如2名工人) 工人=2岁(中文(简体) )
- 工人=全国 - 每个CPU核心的最大N(int/float)工人(例如,2个核心机上的最大5个工人,4个核心机上的最大10个工人) 工人=2.5C(中文(简体) )
- 默认值: 最大每2个CPU芯1名工人 工人=0.5C
- 用法实例数字 :
cds build --for ord --opts 'workers=2'cds build --for ord --opts 'workers=2.5C'cds build --for ord --opts 'workers=0.5C'(相当于cds build --for ord(中文(简体) )
cds build --for ord
# By default, it will be generated in /gen/ord dir, e.g.:
# done > wrote output to:
# gen/ord/ord-document.json
# gen/ord/sap.sample:apiResource:AdminService:v1/AdminService.edmx
# gen/ord/sap.sample:apiResource:AdminService:v1/AdminService.oas3.json
只编译 ord 文档 :
cds compile <path to srv folder> --to ord [-o] [destinationFilePath]
ORD 终点
- 运行
cds watch在应用程序的根. - 请检查 ORD 信息的下列相对路径 -
/.well-known/open-resource-discovery, (中文(简体) ),/ord/v1/documents/ord-document。 。 。 .
自定义 ORD 文档
您可以在此找到更多信息, 如如何自定义 ORD 文件 文档。 。 。 .
如何在本地设置 dev 环境和运行 xmpl
-
安装依赖性
npm i -
运行 xmpl 应用程序
cd xmpl/ # watch xmpl application cds watch # build resources files cds build --for ord
支持、反馈、贡献
此项目可通过下列方式对特性请求/建议、错误报告等开放: GitHub 问题鼓励并始终欢迎各方作出贡献和反馈。 关于如何作出贡献的更多信息,项目结构以及额外贡献信息见我们 贡献准则。 。 。 .
安全/披露
如果您发现任何可能存在安全问题的漏洞,请遵照我们的指示 我们的安全政策 如何报告。 请不要为与安全有关的疑问或问题创建 GitHub 问题 .
在目前状态下,插件将曝光有开放访问的静态元数据. 这意味着联合呼吁程序的资源被公开描述和记录,但这并不意味着资源本身可以获取.
如果您需要保护您的元数据, 请在支持元数据保护之前不要安装此插件 .
行为守则
作为成员、贡献者和领导人,我们保证使参加我们的社区成为每个人不受骚扰的经历。 通过参与这个项目,你同意遵守 行为守则 在任何时间.
许可证发放
版权2024 SAP SE或SAP下属公司和CDs-plugin for-ord 撰稿人. 请看我们的 自由主义 版权和许可证信息。 详细信息,包括第三方组成部分及其许可证/版权信息 通过REUSE工具。 。 。 .