
# 认证鉴权
表1认证鉴权分类 
| 鉴权方式           | 说明                                                                                                                                                                     |
|:---|:---|
| AK/SK认证（IAM认证） | 通过AK（Access Key ID）/SK（Secret Access Key）加密调用请求。具体请参考[AK/SK认证]。 适用于华为云内部系统或已接入华为云IAM的系统。 |
| API Key认证      | 使用API Key认证。具体请参考[API Key认证（工作流/智能体）]。 （推荐）适用于内部测试或轻量级集成，集成复杂度低。                         |
| OAuth 2.0认证    | 从第三方身份凭据提供商获取JWT Token作为认证凭据。具体请参考[OAuth 2.0认证]。 适用于已有身份提供商（如Okta、Cognito等）的企业系统。      |
   
智能体在初次部署时，可以选择认证方式。再次调整智能体，重新进行部署时，认证方式无法进行修改。
如果认证方式选择错误，目前需要重新创建一个新的智能体。可以使用智能体的"复制"功能快速创建同样的一个智能体。
图1部署智能体并选择认证方式示例   
![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002661509199.png "点击放大")
图2复制智能体   
![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002661397825.png "点击放大")
表2认证鉴权 
| 类型                                                                                                                                                               | 方式                            |
|:---|:---|
| [工作流/智能体](https://support.huaweicloud.com/api-agentarts/topic_300000000_3.html)                                                                                  | AK/SK认证、API Key认证、OAuth 2.0认证 |
| [观测](https://support.huaweicloud.com/api-agentarts/agentarts_07_0011.html)                                                                                       | AK/SK认证                       |
| [评估](https://support.huaweicloud.com/api-agentarts/agentarts_07_0022.html)                                                                                       | AK/SK认证                       |
| [代码解释器管理](https://support.huaweicloud.com/api-agentarts/topic_300000000_1.html)                                                                                  | AK/SK认证                       |
| [代码解释器标签管理](https://support.huaweicloud.com/api-agentarts/topic_300000001_1.html)                                                                                | AK/SK认证                       |
| [记忆库](https://support.huaweicloud.com/api-agentarts/agentarts_07_0030.html)                                                                                      | AK/SK认证                       |
| [运行时](https://support.huaweicloud.com/api-agentarts/topic_300000001_6.html)\~[运行时访问方式标签管理](https://support.huaweicloud.com/api-agentarts/topic_300000006_2.html) | AK/SK认证                       |
| [代码解释器数据面接口](https://support.huaweicloud.com/api-agentarts/topic_300000007.html)                                                                                 | API Key认证、AK/SK认证             |
| [网关](https://support.huaweicloud.com/api-agentarts/agentarts_07_0028.html)                                                                                       | API Key认证、AK/SK认证、OAuth 2.0认证 |
| [智能体运行时执行（高代码）](https://support.huaweicloud.com/api-agentarts/topic_300000000_6.html)                                                                            | API Key认证、AK/SK认证、OAuth 2.0认证 |
   
 #### AK/SK认证
AK/SK认证就是使用AK/SK对请求进行签名，在请求时将签名信息添加到消息头，从而通过身份认证。
- AK（Access Key ID）：访问密钥ID。与私有访问密钥关联的唯一标识符；访问密钥ID和私有访问密钥一起使用，对请求进行加密签名。
- SK（Secret Access Key）：与访问密钥ID结合使用的密钥，对请求进行加密签名，可标识发送方，并防止请求被修改。
使用AK/SK认证时，您可以基于签名算法使用AK/SK对请求进行签名，也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见[API签名指南](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html)。
![](https://support.huaweicloud.com/api-agentarts/public_sys-resources/caution_3.0-zh-cn.png)
签名SDK只提供签名功能，与服务提供的SDK不同，使用时请注意。
**约束与限制**
- AK/SK签名认证方式仅支持消息体大小12MB以内。
- AK/SK既可以使用永久访问密钥中的AK/SK，也可以使用临时访问密钥中的AK/SK，但使用临时访问密钥的AK/SK时需要额外携带"X-Security-Token"字段，字段值为临时访问密钥的security_token。
- API网关除了校验时间格式外，还会校验该时间值与网关收到请求的时间差，如果时间差大于15分钟，API网关将拒绝请求。因此客户端必须注意本地时间与时钟服务器的同步，避免请求消息头X-Sdk-Date的值出现较大误差。
- **如果调用智能体运行时数据面接口，即[智能体运行时执行（高代码）](https://support.huaweicloud.com/api-agentarts/topic_300000000_6.html)中的接口，不支持对请求body体签名，仅支持使用V11-HMAC-SHA256和SDK-ECDSA-P256-SHA256签名算法，其余智能体运行时接口需对请求body体签名。**
  
您也可以通过这个视频教程了解AK/SK认证的使用：<https://bbs.huaweicloud.com/videos/100697>。
 #### API Key认证（工作流/智能体）
智能体调用（工作流/智能体）API Key认证步骤：
1. 进入AgentArts智能体平台，在左侧菜单栏选择"开发中心 \> 智能体管理"，选择"工作流"或者"智能体"。
2. 鼠标移动至待运行的智能体/工作流卡片上，单击"调用路径"。
3. 在弹出的卡片中，复制运行时名称，如[图3]所示 。
   
   图3获取运行时名称   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002716264575.png "点击放大")
   
   
4. 在左侧菜单栏选择"部署运行 \> 智能体运行时"。
5. 在搜索框内输入获取的运行时名称，进行搜索。
6. 单击运行时名称，进入详情页面，在"权限与访问控制"区域，访问URN。 
   图4访问URN   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002640931650.png "点击放大")
   
   
7. 进入AgentIdentity智能体身份服务，在"基本信息"页面获取API Key值并复制。 
   图5获取API Key值   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002640932060.png "点击放大")
   
   
8. 添加Authorization的请求头，对应的请求头的值为"Bearer 获取到的API Key"。
 
#### API Key认证（智能体运行时）
智能体调用（智能体运行时）API Key认证步骤：
1. 进入AgentArts智能体平台，在左侧菜单栏选择"部署运行 \> 智能体运行时"。
2. 单击待运行的智能体运行时，进入智能体详情页面。
3. 在"权限与访问控制"区域，访问URN。 
   图6访问URN   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002640931650.png "点击放大")
   
   
4. 进入AgentIdentity智能体身份服务，在基本信息页面获取API Key值并复制。 
   图7获取API Key值   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002640932060.png "点击放大")
   
   
5. 添加Authorization的请求头，对应的请求头的值为"Bearer 获取到的API Key"。
 
#### API Key认证（智能体网关）
智能体调用（智能体网关）API Key认证步骤：
1. 进入AgentArts智能体平台，在左侧菜单栏选择"开发中心 \> 组件库"，单击"网关"页签，进入网关界面。
2. 单击网关名称，进入详情页面。
3. 在"权限与身份认证"区域，访问URN。 
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002716285853.png "点击放大")
   
   
4. 进入AgentIdentity智能体身份服务，在基本信息页面获取API Key值并复制。 
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002716446417.png "点击放大")
   
   
5. 添加Authorization的请求头，对应的请求头的值为"Bearer 获取到的API Key"。
 
#### API Key认证（代码解释器数据面）
智能体调用（沙箱工具）API Key认证步骤：
1. 进入AgentArts智能体平台，在左侧菜单栏选择"开发中心 \> 组件库"，单击"沙箱工具"页签，进入沙箱工具界面。
2. 单击沙箱工具名称，进入详情页面。
3. 在"权限与身份认证"区域，访问URN。 
   图8访问URN   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002717545687.png "点击放大")
   
   
4. 进入AgentIdentity智能体身份服务，在基本信息页面获取API Key值并复制。 
   图9获取API Key值   
   ![](https://support.huaweicloud.com/api-agentarts/zh-cn_image_0000002687946090.png "点击放大")
   
   
5. 添加Authorization的请求头，对应的请求头的值为"Bearer 获取到的API Key"。
 
 #### OAuth 2.0认证
OAuth 2.0认证依赖从第三方身份凭据提供商获取JWT Token作为认证凭据。如何获取JWT Token凭据，请参考各个身份提供商的相关指导文档。
这里以获取GitHub应用的JWT Token举例，可以参考GitHub的文档中"生成 JSON Web 令牌 (JWT)"章节来获取JWT Token：https://docs.github.com/zh/enterprise-cloud@latest/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app 。
获取到JWT Token后，在请求时需要将Token添加到请求头中，从而通过身份认证。
请求头格式为：
```
Authorization: Bearer {JWT Token}
```
