# 配置APIC的API后端服务签名校验
签名密钥用于后端服务验证ROMA Connect的身份，在ROMA Connect访问后端服务时，保障后端服务的安全。
签名密钥由一对Key和Secret组成，只有将API绑定签名密钥后，签名密钥才对API生效。
当API绑定签名密钥后，ROMA Connect向该API的后端服务发送请求时，会使用签名密钥中的Key和Secret在后端服务请求中增加相应的签名信息。此时需要后端服务依照同样方式进行签名，通过比对签名结果与请求的Authorization头中携带的签名是否一致，来校验ROMA Connect发过来的请求是否合法。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000001334835433.png "点击放大")
1. 在控制台创建签名密钥。
2. 将新创建的签名密钥绑定API。
3. APIC将签名后的请求发送到后端服务，此时Authorization头中包含签名信息。后端服务通过不同的开发语言（例如Java、Go、Python、JavaScript、C#、PHP、C++、C等）进行签名，通过比对签名结果和APIC传过来的Authorization头中签名是否一致来校验API的合法性。
#### 约束与限制
同一个API在同一个环境中只能绑定一个签名密钥，一个签名密钥可以绑定多个API。
Site实例中签名密钥暂不支持AES认证类型。
 #### 创建签名密钥
1. 登录[ROMA Connect控制台](https://console.huaweicloud.com/roma3)，在左侧导航栏选择"资源管理"，在实例页面单击实例，进入实例控制台。
2. 在左侧的导航栏选择"服务集成 APIC \> API策略"，在"策略管理"页签下单击"创建策略"。
3. 在选择策略类型弹窗中选择"传统策略 \> 签名密钥"。
4. 在配置签名密钥弹窗中配置签名密钥信息。
   表1签名密钥配置 
   | 参数 | 说明                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|
   | 密钥名称                  | 填写签名密钥的名称，根据规划自定义。建议您按照一定的命名规则填写签名密钥名称，方便您快速识别和查找。 支持汉字、英文、数字、下划线，且只能以英文和汉字开头，长度3-64字符。                                                                                                                                                                                                                         |
   | 类型                      | 选择签名密钥的认证类型，可选择"HMAC"、"Basic Auth"、"Aes"。 说明： Site实例中签名密钥暂不支持AES认证类型。                                                                                                                                                                                                                                          |
   | 签名算法                    | 选择AES的签名算法，可选择aes-128-cfb和aes-256-cfb。                                                                                                                                                                                                                                                                                                       |
   | Key                     | 根据选择的密钥类型，填写不同的密钥信息。 - HMAC：填写HMAC认证所使用密钥对的Key。  - Basic Auth：填写Basic Auth认证所使用的用户名。  - Aes：填写AES认证所使用的密钥key。   |
   | Secret                  | 根据选择的密钥类型，填写不同的密钥信息。 - HMAC：填写HMAC认证所使用密钥对的Secret。  - Basic Auth：填写Basic Auth认证所使用的密码。  - Aes：填写AES认证所使用的向量。        |
   | 确认Secret                  | 填写与Secret一致的值。                                                                                                                                                                                                                                                                                                                                |
      
   
5. 单击"确定"，创建签名密钥。 签名密钥创建后，您还需要[为API绑定签名密钥]，才能使签名密钥对API生效。
   
 
 #### 为API绑定签名密钥
1. 在"策略管理"页签右上角的过滤条件中选择"签名密钥"。
2. 在页面中单击策略的名称，进入策略详情页面。
3. 在"关联API"下选择要绑定API的环境，然后单击"绑定API"。
4. 在绑定API弹窗中，勾选要绑定签名密钥的API。 您可以通过指定API分组和API名称，筛选所需API。
   
5. 单击"确定"，完成API与签名密钥的绑定。
 
#### 在后端服务配置签名校验
为API绑定签名密钥后，您可以参考[后端服务签名校验开发](https://support.huaweicloud.com/devg-roma/apic-dev-190216021.html)，在后端服务进行签名校验开发，对请求中的签名信息进行校验。
