nzta / sdlt
NZTA 安全开发生命周期工具配方
Requires
- php: >=7.2
- nzta/sdlt-framework: 4.0.0
- nzta/sdlt-theme: 4.0.0
- silverstripe/graphql: 3.5.1 as 3.5.0
- silverstripe/recipe-plugin: ^1.2
- dev-master
- 4.0.1
- 4.0.0
- 3.2.1
- 3.2.0
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.1.1
- 2.1.0
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 1.0.55
- 1.0.1
- 1.0.0
- dev-dependabot/composer/guzzlehttp/psr7-2.2.1
- dev-upgrade-3.1.0
- dev-Zaita-patch-2
- dev-Zaita-patch-1
- dev-feature/rearchitecture
- dev-dependabot/npm_and_yarn/themes/sdlt/elliptic-6.5.3
- dev-dependabot/npm_and_yarn/themes/sdlt/acorn-5.7.4
- dev-docs/setting-up-project-manually
- dev-dependabot/npm_and_yarn/themes/sdlt/lodash-4.17.19
- dev-fixes/security-patches
- dev-feature/data-dump-importer
- dev-elliot-sawyer-patch-1
This package is auto-updated.
Last update: 2022-06-29 22:48:43 UTC
README
SDLT是一个支持并加速IT安全专业人士在其组织内变更审批过程中的Web应用程序。
需求
SDLT是用ReactJS和PHP编写的,并基于SilverStripe框架构建的。因此,为了安装该软件,您将需要一个专门的LAMP、LEMP或类似环境。请参考官方的服务器要求文档,以帮助您为SDLT指定合适的配置。
此存储库由三部分组成
- 基本项目,包括Docker镜像以及有关项目的元数据。
- SDLT框架,它包括Silverstripe框架和CMS作为依赖项,并支持GraphQL端点。
- SDLT主题,它是一个前端React框架,旨在通过GraphQL与Silverstripe通信。
基础设施
- 请参阅服务器要求文档,但典型的设置是在Linux发行版(如Ubuntu)上的Apache httpd或Nginx。
- 请参阅服务器要求文档,但MySQL或MariaDB将正常工作。PostgreSQL可能也可以工作,但尚未测试。(您需要修改项目的
.env
文件以适应) - 一个最小的
.env
文件。(您可以修改此代码库根目录下提供的文件) - 通过运行以下命令测试设置:
./vendor/bin/sake dev/build
(CLI)或通过GUI浏览器指向:https://my-sdlt.dept.govt.nz/dev/build。
安装
此说明假设您有一个LAMP环境:Linux(Ubuntu),Apache(v2),MySQL(5.7)和PHP(7.2)。另一个假设是您正在使用Apache的虚拟主机。我们假设您的项目安装在/var/www/example.com/sdlt中,DocumentRoot设置为类似/var/www/example.com/sdlt/public的东西。
cd /var/www/example.com/ #clone most stable version directly from Github. This also runs composer automatically composer create-project nzta/sdlt sdlt ^3 #change directory cd sdlt #make a .env if you haven't yet cp .env.example .env #build database tables vendor/bin/sake dev/build flush= #(optional) setup default data, see "Data Import" below vendor/bin/sake dev/tasks/SetupSDLTDataTask #(optional) change permissions on homepage to login-only vendor/bin/sake dev/tasks/HydrateCustomConfig
需要web服务器用户可写public/assets
文件夹。您可能还需要使public/assets/.htaccess
和public/assets/.protected
可写。sudo chown -R www-data:www-data public/assets public/assets/.htaccess public/assets/.protected
数据导入
代码库附带了一个数据导入器,该导入器将配置您运行此工具所需的大部分内容。
- 在CLI或浏览器中运行:dev/tasks/SetupSDLTDataTask。这可能需要几分钟,并且可能超过服务器脚本的执行时间。如果脚本失败,则只会生成新的数据,直到它停止。
- 通过使用以下变量登录到SilverStripe管理区域以验证此数据:在
https://my-sdlt.dept.govt.nz/admin/?showloginform=1
处使用下面的SS_DEFAULT_ADMIN_XXX
变量。 - 此数据来自默认集合,包含一套默认问卷、任务和风险评估,您可以根据自己的需求进行修改。
定制
- 前端是一个React应用程序,其应用逻辑、模板和CSS位于:"themes/sdlt" 目录中。理论上可以用您自己的GraphQL主题替换该主题。为此,您需要用您自己的实现替换sdlt-theme项目。此功能目前未经过测试且未记录文档。
- 要添加更多计算算法以在“风险评估问卷”任务中显示,开发者需要继承
app/src/Formulae/RiskFormula.php
(以 app/src/Formulae/NztaApproxRepresentation.php 和其测试为例)。
配置
将项目附带的 .env.example
文件重命名为 .env
,并确保它位于项目根目录中,并且具有您的web服务器用户的r+x权限。您需要更改文件中的环境变量占位符,以适应您自己的环境。或者,您可以在服务器上创建环境变量以替代.env文件。
为了在认证屏幕后面保护整个项目,运行以下任务
./vendor/bin/sake dev/tasks/HydrateCustomConfig
测试
运行套件(仅限“dev”环境 - 请参阅下面的 .env 文件示例)
./vendor/bin/phpunit
设置Azure Active Directory
此应用程序通常使用SilverStripe的默认认证系统(用户名和密码)。它可以选择配置以支持Azure的Active Directory服务或任何支持OAuth2的服务提供者。
配置SDLT以与Azure和其他OAuth提供者一起工作的说明可以在此找到:https://github.com/NZTA/SDLT/wiki/Installing-Active-Directory
使用Docker设置项目
确保您的机器上已安装docker和docker compose,然后运行以下命令。
克隆仓库
git clone git@github.com:NZTA/SDLT.git
创建.env文件
cp .env.example .env
在后台启动容器并保持运行
docker-compose up -d
显示服务日志输出。
docker logs -f sdlt_php