
# 流程引擎流程SDK自定义配置
#### 单点登录配置
如果您希望通过单点登录的方式访问流程引擎，可参考如下说明进行配置。流程引擎的SDK部署模式当前支持如下两种单点登录方式，请根据实际的[流程引擎流程SDK资源规划](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0008.html#ZH-CN_TOPIC_0000002101358320__section14635191220121)进行配置。
- **IAM服务的单点登录**
  此方式的单点登录依赖于华为云IAM服务，请确认已规划对应资源。
  
  | 配置参数                  | 是否必选 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 示例   |
  |:---|:---|:---|:---|
  | basic.auth.iam.enable | 是    | 设置是否开启IAM服务的单点登录。 - true：开启IAM服务的单点登录。  - false：关闭IAM服务的单点登录。   | true |
     
  
- **OrgID的单点登录**
  此方式的单点登录依赖于华为云OrgID服务，请确认已规划对应资源。
  
  | 配置参数                           | 是否必选 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 示例     |
  |:---|:---|:---|:---|
  | basic.auth.orgId.enable        | 是    | 设置是否开启OrgID的单点登录。 - true：开启OrgID的单点登录。  - false：关闭OrgID的单点登录。   | true   |
  | ssf.login.oauth2.client-id     | 是    | OrgID的Client ID。 获取方法请参见[获取组织凭证](https://support.huaweicloud.com/usermanual-orgid/orgid_03_1046.html)。                                                                                                                                                                                                                                                                                                                                                         | abc123 |
  | ssf.login.oauth2.client-secret | 是    | OrgID的Client Secret。 获取方法请参见[获取组织凭证](https://support.huaweicloud.com/usermanual-orgid/orgid_03_1046.html)。                                                                                                                                                                                                                                                                                                                                                     | abc123 |
  | basic.runtime.org.code         | 是    | OrgID给用户颁发的code。 获取方法请参见[快速开始](https://support.huaweicloud.com/devg-orgid/orgid_07_0003.html)。                                                                                                                                                                                                                                                                                                                                                                     | abc123 |
     
  
完成单点登录配置后，您可以根据如下登录地址，分别登录流程编排服务和流程运行服务。
- 流程编排服务登录地址：
  ```
  http://{承载流程编排服务的服务器域名或IP地址}:{流程编排服务的端口号}/{流程编排服务文根}/index.html?#/processApplicationForm?tenantId={租户ID}&applicationId={应用ID}
  ```
  
- 流程运行服务登录地址：
  ```
  http://{承载流程编排服务的服务器域名或IP地址}:{流程运行服务的端口号}/{流程运行服务文根}/wfAdminIndex.html#/process-tasks?tenantId={租户ID}&applicationId={应用ID}
  ```
  
其中，租户ID和应用ID为部署xDM-F SDK时[公共信息配置](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0012.html#ZH-CN_TOPIC_0000002101700014__zh-cn_topic_0000001941608428_section16980172192213)中的TENANT_DOMAIN_ID和APP_IDENTIFIER。
#### 本地登录认证配置
如果您希望通过本地登录认证的方式访问流程引擎，可参考如下说明进行配置。
| 配置参数                                  | 是否必选 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 示例                                                                             |
|:---|:---|:---|:---|
| basic.login.type                      | 是    | 流程引擎的登录类型，配置为"LOCAL"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | LOCAL                                                                          |
| basic.auth.loginUrl                   | 是    | 本地环境的登录地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | LOCAL                                                                          |
| basic.local.login.falway              | 否    | 设置是否执行本地登录flaway脚本。 - true：执行本地登录flaway脚本。  - false：不执行本地登录flaway脚本，默认为false。                                                                                                                                                                                                                                                                                                                    | false                                                                          |
| ssf.login.logoutUri                   | 是    | 本地环境的登出地址。 格式为： ``` https://{流程引擎流程SDK部署服务器的IP地址}:{流程引擎流程SDK部署服务器的端口号}/definitionmicro/index.html ```                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | http://127.0.0.1:8003/definitionmicro/index.html                               |
| ssf.flyway.locations                  | 否    | 本地环境登录的数据库信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | classpath:ssf/migration/postgresql                                             |
| spring.datasource.ssf.url             | 是    | 本地环境登录数据库连接URL。 格式为： ``` jdbc:{SSF_RDS_TYPE}://{RDS_IP}:{RDS_PORT}/{RDS_DATABASE}_ssf?sslmode=require&stringtype=unspecified ``` 其中，"RDS_IP"、"RDS_PORT"和"RDS_DATABASE"字段需与部署数据建模引擎运行SDK时[配置数据库](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0012.html#ZH-CN_TOPIC_0000002101700014__zh-cn_topic_0000001941608428_section194542742115)的配置参数保存一致，"SSF_RDS_TYPE"字段需与部署数据建模引擎运行SDK时[配置本地环境的单点登录](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0013.html#ZH-CN_TOPIC_0000002137019365__zh-cn_topic_0000001968767369_section10642131712215)的配置参数保存一致。 | jdbc:mariadb://127.0.0.1:5432/test_ssf?sslmode=require\&stringtype=unspecified |
| spring.datasource.ssf.driverClassName | 是    | 本地环境登录数据库连接类。 此配置参数需与部署数据建模引擎运行SDK时[配置本地环境的单点登录](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0013.html#ZH-CN_TOPIC_0000002137019365__zh-cn_topic_0000001968767369_section10642131712215)的"SSF_DRIVER"配置参数保存一致。                                                                                                                                                                                                                                                                                                                                                                                                          | org.mariadb.jdbc.Driver                                                        |
| spring.datasource.ssf.username        | 是    | 本地环境登录数据库用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | admin                                                                          |
| spring.datasource.ssf.password        | 是    | 本地环境登录数据库密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | admin                                                                          |
| spring.datasource.ssf.mapperLocations | 否    | 本地环境登录数据库脚本的存放地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | classpath\*:ssf/mapper_postgresql/\*\*/\*.xml                                  |
| ssf.sysmgr.sessionfilter.enabled      | 否    | 设置是否开启本地环境登录Session过滤器。 - true：开启本地环境登录Session过滤器，默认为true。  - false：关闭本地环境登录Session过滤器。                                                                                                                                                                                                                                                                                                               | true                                                                           |
| ssf.cookie-filter.enabled             | 否    | 设置是否开启本地环境登录Cookie过滤器。 - true：开启本地环境登录Cookie过滤器。  - false：关闭本地环境登录Cookie过滤器，默认为false。                                                                                                                                                                                                                                                                                                            | false                                                                          |
| ssf.csrf-filter.enabled               | 否    | 设置是否开启本地环境登录CSRF（Cross-Site Request Forgery，跨站请求伪造漏洞）过滤器。 - true：开启本地环境登录CSRF过滤器。  - false：关闭本地环境登录CSRF过滤器，默认为false。                                                                                                                                                                                                                                                                                 | false                                                                          |
| ssf.firstlogin.isRestPassWord         | 否    | 设置首次登录流程引擎时是否需要重置密码。 - true：首次登录流程引擎时需要重置密码。  - false：首次登录流程引擎时不需要重置密码，默认为false。                                                                                                                                                                                                                                                                                                                         | false                                                                          |
   
#### IAM机机认证配置
如果您已在[流程引擎流程SDK资源规划](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0008.html#ZH-CN_TOPIC_0000002101358320__section14635191220121)中规划了IAM服务，并希望使用IAM机机认证，可参考如下说明进行配置。
| 配置参数                          | 是否必选 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 示例   |
|:---|:---|:---|:---|
| basic.auth.iam.machine.enable | 否    | 设置是否开启IAM服务的机机认证。 - true：开启IAM服务的机机认证。  - false：关闭IAM服务的机机认证。   | true |
   
#### JWT机机认证配置
流程引擎支持使用JSON Web Token（JWT）进行公开API调用。如果希望使用JWT机机认证，可参考如下说明进行配置。
| 配置参数                     | 是否必选 | 参数说明                                                                                                                                                                                         | 示例   |
|:---|:---|:---|:---|
| basic.sdk.jwt.public-key | 否    | 配置JWT生成时所使用的公钥。 如何获取jwt-token认证鉴权所使用的加密公钥，请参见[如何生成JWT Token？](https://support.huaweicloud.com/sdkreference-idme/idme_sdkreference_0049.html)。 | xxxx |
   
#### 其他配置
其他配置包括是否开启限流降级、WSF防护等，您可以根据实际业务需求进行配置。
| 配置参数              | 是否必选 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 示例    |
|:---|:---|:---|:---|
| xdmf.init         | 否    | 设置是否开启xDM-F数据库表单初始化。 首次启动时，必须为true，后续可根据实际业务需求进行修改。 - true：开启xDM-F数据库表单初始化，默认为true。  - false：关闭xDM-F数据库表单初始化。   | true  |
| olc.app.switch    | 否    | 设置是否开启OLC（Overload Control）限流降级。 - true：开启OLC限流降级。  - false：关闭OLC限流降级，默认为false。                                                                                                          | false |
| basic.wsf.enabled | 否    | 设置是否开启WSF参数校验，用于防护XSS攻击、SQL注入攻击，以及DOC攻击。 - true：开启WSF参数校验，默认为true。  - false：关闭WSF参数校验。                                                                                                   | true  |
   
