
# 认证鉴权
调用接口有如下两种认证方式，您可以选择其中一种进行认证鉴权。
- [IAM认证]：通过Token认证通用请求。
- [APP认证]：API提供者在API网关开放自己的API后，可以使用APP认证的方式认证鉴权。根据API使用的安全认证方式不同，还要获取相关的请求认证信息，具体的认证方式请查看[使用APP认证调用API](https://support.huaweicloud.com/devg-apig/apig-dev-180907066.html)，这里，我们推荐使用通过AppCode进行简易认证。
![](https://support.huaweicloud.com/api-koosearch/public_sys-resources/notice_3.0-zh-cn.png)
使用IAM认证和APP认证前请确保API已发布到环境。具体的发布操作请参考[发布KooSearch API](https://support.huaweicloud.com/usermanual-koosearch/koosearch_06_0007.html)。
 #### IAM认证
IAM认证使用Token认证的方式。
![](https://support.huaweicloud.com/api-koosearch/public_sys-resources/note_3.0-zh-cn.png)
- Token有效期为24小时，需要使用同一个Token鉴权时，可以缓存起来，避免频繁调用。
- 使用Token前请确保Token离过期有足够的时间，防止调用API的过程中Token过期导致调用API失败。
 
Token在计算机系统中代表令牌（临时）的意思，拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头，从而通过身份认证，获得操作API的权限。
Token可通过调用[获取用户Token](https://support.huaweicloud.com/zh-cn/api-iam/iam_30_0001.html)接口获取，调用本服务API需要project级别的Token，即调用获取用户Token接口时，请求body中"auth.scope"的取值需要选择"project"，如下所示。
获取Token的接口为"POST https://*{IAM的Endpoint}* /v3/auth/tokens"，IAM的终端节点可以参考[终端节点](https://support.huaweicloud.com/api-koosearch/koosearch_06_0001.html#koosearch_06_0001__section775182914148)获取。
```
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username",    //用户名
"password": "********",    //登录密码
"domain": {
"name": "domainname"    //用户所属的账号名称
}
}
}
},
"scope": {
"project": {
"name": "xxxxxxxx"    //项目名称
}
}
}
}
```
获取Token后，再调用其他接口时，您需要在请求消息头中添加"X-Auth-Token"，其值即为Token。例如Token值为"ABCDEFJ...."，则调用接口时将"X-Auth-Token: ABCDEFJ...."加到请求消息头即可，如下所示。
```
POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users
Content-Type: application/json
X-Auth-Token: ABCDEFJ....
```
您还可以通过这个视频教程了解如何使用Token认证：<https://bbs.huaweicloud.com/videos/101333> 。
 #### APP认证
APP认证中的AppCode认证是一种简易的API调用认证方式，通过在HTTP请求头中添加参数X-Apig-AppCode来实现身份认证，无需复杂的签名过程，适合于客户端环境安全可控的场景，如内网系统之间的API调用。
以下是APP认证的操作步骤：
1. 进入KooSearch服务详情页面。
   1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
   
   2. 在左侧导航栏选择"KooSearch\>KooSearch文档问答"，进入KooSearch服务列表。
   
   3. 选择目标服务，单击服务名称，进入服务详情页。
    
2. 单击"API管理"，进入API管理页签。
3. 选择已发布的API，单击操作列的"发布"。
4. 单击"凭据管理"。进入凭据管理列表页面。 ![](https://support.huaweicloud.com/api-koosearch/zh-cn_image_0000002277042196.png)
   
5. 单击API使用的凭据名称进入凭据管理详情页面，查看AppCode的值。 ![](https://support.huaweicloud.com/api-koosearch/zh-cn_image_0000002311721873.png)
   
6. 在使用Postman中调用发送请求时，增加请求头部参数"X-Apig-AppCode"，省略请求签名相关信息，参数值填已生成的AppCode。如下图所示。 ![](https://support.huaweicloud.com/api-koosearch/zh-cn_image_0000002311834921.png)
   
   
 
