# 认证鉴权
调用接口有如下认证方式，您可以选择其中一种进行认证鉴权。
- [Token认证]：通过Token认证调用请求。
- [API Key认证]：当用户部署的模型服务期望开放给其他用户调用时，使用原有的Token认证需要进行动态认证鉴权和凭证管理，操作繁杂。此时可使用API Key认证。该方式不仅相比Token认证更简便，还与业界主流模型调用规范保持一致。
 #### Token认证
Token在计算机系统中代表令牌（临时）的意思，拥有Token就代表拥有某种权限。
Token认证就是在调用API的时候将Token加到请求消息头，从而通过身份认证，获得操作API的权限。
![](https://support.huaweicloud.com/api-pangulm/public_sys-resources/note_3.0-zh-cn.png)
- Token的有效期为24小时，需要使用一个Token鉴权时，可以先缓存，避免频繁调用。
- 如果您的华为云账号已升级为华为账号，将不支持获取账号Token。建议为您自己创建一个IAM用户，获取IAM用户的Token。
 
**获取Token方法：**
Token可通过调用"获取Token"接口获取，接口调用示例如下：
```
POST https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens
Content-Type: application/json
{ 
    "auth": { 
        "identity": { 
            "methods": [ 
                "password" 
            ], 
            "password": { 
                "user": { 
                    "name": "username", //IAM用户名
                    "password": "********", //IAM用户密码
                    "domain": { 
                        "name": "domainname" //账号名
                    } 
                } 
            } 
        }, 
        "scope": { 
            "project": { 
                "name": "cn-southwest-2" //盘古大模型当前部署在“西南-贵阳一”区域，取值为cn-southwest-2
            } 
        } 
    } 
}
```
Python示例：
```
import requests
import json
url = "https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens"
payload = json.dumps({
  "auth": {
    "identity": {
      "methods": [
        "password"
      ],
      "password": {
        "user": {
          "name": "username",
          "password": "********",
          "domain": {
            "name": "domainname"
          }
        }
      }
    },
    "scope": {
      "project": {
        "name": "cn-north-4"
      }
    }
  }
})
headers = {
  'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.headers["X-Subject-Token"])
```
**获取Token步骤：**
本示例中，通过使用Postman软件获取Token。
1. 登录["我的凭证 \> API凭证"](https://console.huaweicloud.com/iam/#/myCredential)页面，获取user name、domain name、project id。
   由于盘古大模型当前部署在"西南-贵阳一"区域，需要获取与"西南-贵阳一"区域对应的project id。
   图1获取user name、domain name、project id   
   ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002727451462.png) 
2. 打开Postman，新建一个POST请求，并输入"西南-贵阳一"区域的"获取Token"接口。并填写请求Header参数。
   - 接口地址为：https://iam.cn-southwest-2.myhuaweicloud.com/v3/auth/tokens
   
   - 请求Header参数名为Content-Type，参数值为application/json
   
   
   图2填写获取Token接口   
   ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002727291604.png) 
3. 填写"获取token"接口的请求体。在Postman中选择"Body \> raw"选项，参考[图3]复制并填入以下代码，并填写user name、domain name、password。
   ```
   { 
       "auth": { 
           "identity": { 
               "methods": [ 
                   "password" 
               ], 
               "password": { 
                   "user": { 
                       "name": "username", //IAM用户名
                       "password": "********", //华为云账号密码
                       "domain": { 
                           "name": "domainname" //账号名
                       } 
                   } 
               } 
           }, 
           "scope": { 
               "project": { 
                   "name": "cn-southwest-2" //盘古大模型当前部署在“西南-贵阳一”区域，取值为cn-southwest-2
               } 
           } 
       } 
   }
   ```
   图3填写请求Body   
   ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002757011161.png) 
4. 单击Postman界面"Send"按钮，发送请求。当接口返回状态为201时，表示Token接口调用成功，此时单击"Headers"选项，找到并复制"X-Subject-Token"参数对应的值，该值即为需要获取的Token。
   图4获取Token   
   ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002727451444.png) 
您还可以通过这个视频教程了解如何使用Token认证：<https://bbs.huaweicloud.com/videos/101333> 。
 #### API Key认证
当用户部署的API服务期望开放给其他用户调用时，原有[Token认证]无法支持，可使用API Key认证的鉴权方式进行调用请求。
API Key认证指调用API时，在HTTP请求头部消息增加一个参数X-Apig-AppCode（参数值为"API Key"值），而不需要对请求内容签名。
使用该鉴权方式前，请确保有已部署的大模型。
**获取API Key步骤如下：**
1. 登录ModelArts Studio平台，进入所需空间。
2. 在左侧导航栏中选择"应用接入"，单击界面右上角"创建应用接入"。
3. 在"关联服务"中，选择"全部服务"，或者在"指定服务"中选择已部署好的大模型服务，单击"确定"。
4. 在弹窗中复制API Key的值。
   ![](https://support.huaweicloud.com/api-pangulm/public_sys-resources/note_3.0-zh-cn.png)
   注意：API Key仅可在此弹窗中复制一次，请妥善保存。关闭弹窗后，如果忘记API Key值，请重新创建。
   图5复制API Key   
   ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002727291614.png) 
 
