平一高级身份云 - 样本配置管理工具
免责声明
本文所述的样本代码是在“照样”基础上提供的,没有任何类型的保证,在法律允许的最大限度内。 ForgeRock并不保证或保证单个成功开发者可能在其开发平台上或生产配置中实施样本代码. ForgeRock没有证明、保证或说明与样本编码有关的任何数据或资料的使用、使用结果、准确性、及时性或完整性。 ForgeRock不声明所有已表示或暗示的保证,特别是不声明所有可交易性的保证,以及与代码有关的保证,或与之相关的任何服务或软件.
ForgeRock不应对由你或与样品编码有关的其他方面采取的任何行动所引起的任何类型的直接、间接或间接损害或费用负责.
导言
该寄存器包括基于javascript样本的工具,用于在外部寄存器中管理身份云配置. 脚本是客户的起点,他们希望将身份云配置存储和管理在自己的存储库中,并通过CI/CD管道或其他管理框架,将这种配置的导出和/或导入自动化.
为了满足将ForgeRock配置管理为代码的要求,这些工具提供了配置视图,即:
- 完成 - 完全代表租户的所有组合
- 可以理解 - 所有配置应尽可能清晰易懂.
- 模块 - 将单体配置分入其组成部分,以进行更微粒化的管理
- 可预见 - 如果没有改变,配置的顺序和格式不会改变.
注意这些工具不为ForgeRock所支持:它们是作为客户拥有的配置管理工具的一部分而需要被修改或使用的样本代码.
如果您遇到任何问题或有任何改进建议,请 通过还款提出问题 并将进行审查,以便增加积压.
如果您想为这个项目做出贡献,您可以将仓库叉出,复制到您的机器上并启动.
软件包
此寄存器提供了以下软件包
fr-config-pull- 从身份云调取配置到本地寄存器的工具fr-config-push- 将配置从本地仓库推入身份云的工具fr-config-promote- 促进身份云从下层租户到上层租户配置的工具fr-config-delete- 从身份云租户(β)删除配置的工具
完整使用详情请参见相邻包目录中的README.
先决条件
这些工具要求:
- 节点.js
- 进入Ping One高级身份云租户.
- 租户服务账户 身份证和私人钥匙.
有关如何创建服务账户和获取身份证和私人钥匙的详细信息,请查阅身份云文档.
安装
这个 fr-config-manager 软件包可以从源头安装或作为 npm 软件包.
从源安装
要从源头安装所有软件包, 克隆配置管理器仓库, 检查最新版本并构建工具
mkdir ~/identity-cloud
cd ~/identity-cloud
git clone https://github.com/ForgeRock/fr-config-manager
cd fr-config-manager
git checkout `git describe --abbrev=0`
npm clean-install
npm link
通过 npm 安装
使用 npm 安装所有软件包
npm i -g @forgerock/fr-config-manager
这将安装
- f-config-pull (法语)
- f-配置-推
- f- 配置促进
- f- 配置- 删除
配置
工具是通过环境配置的,或者使用 .env 在工作目录中,或通过相应的环境变量。 这个 .env.sample 此寄存器根中的文件提供了一个示例, 应该复制为 .env 用于运行工具(或用作设定环境变量的参考).
参见 配置读取器 更多细节.
这个 .env 文件包括用于管理各类动态配置的附加(可选)配置文件的参考文献——即每个独立环境不同的配置(而不是在所有环境中以一成不变的方式推广的静态配置)。 一般来说,这些配置文件会告知 fr-config-pull 工具,以及如何诱导它们与占位符的配置,以便 fr-config-push 工具可以在每个环境中创建这些实体。 作为推力的一部分,占位符被子化为相应的环境变量在 fr-config-push 工作环境.
Oauth2 代理配置文件
OAuth2代理配置文件包含一个从身份云租户中抽取的代理列表,以便后推到每个目标环境.
此文件的路径配置于 .env 文件(或直接环境)作为 OAUTH2_AGENTS_CONFIG 数值.
参见 代理配置 README 更多细节.
授权策略配置文件
OAuth2代理配置文件包含一个从身份云租户取出的政策集列表,用于后推到每个目标环境.
此文件的路径配置于 .env 文件(或直接环境)作为 AUTHZ_POLICY_SETS_CONFIG 数值.
参见 政策配置 更多细节.
服务对象配置文件
服务对象配置文件包含一个从身份云租户中抽取的被管理对象列表,用于后推到每个目标环境.
此文件的路径配置于 .env 文件(或直接环境)作为 SERVICE_OBJECTS_CONFIG 数值.
参见 配置读取器 更多细节.
CSP 覆盖文件
Content Security Policy配置文件包含一个JSON编码的CSP部分配置,由拉动时的全租户配置合并而成. 这使当地环境变量的使用能够创建一个不同的CSP,被推向每个环境——例如,只在dev中报告,但在更高环境中执行.
此文件的路径配置于 .env 文件(或直接环境)作为 CSP_OVERRIDES 数值.
参见 配置读取器 更多细节.
Raw 配置文件
原始配置文件包含一个要拉动的单个配置路径列表,用于拉动现有命令未覆盖的任意配置. 此文件的路径配置于 .env 文件(或直接环境)作为 RAW_CONFIG 数值.
参见 原始配置读取器 更多细节.
SAML 实体配置文件
SAML实体配置文件包含从身份云租户中抽取的 SAML 实体列表,以便后推到每个目标环境.
此文件的路径配置于 .env 文件(或直接环境)作为 SAML_CONFIG 数值.
参见 SAML 配置读取器 更多细节.
导出配置
这个 fr-config-pull 工具将 ForgeRock 配置导出到本地文件系统,作为目录结构中的一组json 文件,既代表全局配置,也代表域特有配置.
这个 fr-config-push 工具从本地文件系统导入 ForgeRock 配置到 Ping One 高级身份云租户: 该工具预计配置按照 fr-config-pull 输出.
参见 导出内容 关于配置结构的更多细节.
管理ESVs
环境特定变量和秘密可能会通过 fr-config-push variables 财务报告和审定财务报表 fr-config-push secrets 选项。 典型的方法是为每个ESV构建一个本地配置文件,其中值有一个占位符. 配置文件可以使用 fr-config-pull 命令。 在推取时,该值被本地环境变量取而代之,例如 github 密钥。 参见 ESV 读取 更多细节.
快速启动
要启动, 创建基线重投, 以您的初始身份云配置作为基线, 以下步骤
- 安装
fr-config-manager软件包 - 创建基准目录
- 通过一个
.env文件 - 创建空配置仓库
- 使用
fr-config-pull以当前租户配置填充寄存器
安装
npm i -g @forgerock/fr-config-manager
创建基础目录和配置文件
mkdir ~/identity-cloud
cd ~/identity-cloud
curl https://raw.githubusercontent.com/ForgeRock/fr-config-manager/main/.env.sample -o .env
配置
编辑基本配置部分 .env 文件,根据 配置读取器。用于 CONFIG_DIR 选项,使用 .env 文件 :
CONFIG_DIR=identity-cloud-config
配置其余的基本设置 :
TENANT_BASE_URLSCRIPT_PREFIXESSERVICE_ACCOUNT_IDSERVICE_ACCOUNT_KEY
创建空白的 github repo
创建相应的目录 CONFIG_DIR 输入 .env 备忘列表
cd ~/identity-cloud
mkdir identity-cloud-config
cd identity-cloud-config
git init
拉动配置并进行
cd ~/identity-cloud/identity-cloud-config
git checkout -b initial-config
cd ~/identity-cloud
fr-config-pull all-static
cd ~/identity-cloud/identity-cloud-config
git add .
git commit -m "Initial config"
许可证
这个项目根据麻省理工学院许可证颁发——见 自由主义 详细文件