
# 认证鉴权
调用接口需通过特殊AK/SK认证或者X-WSSE认证。
![](https://support.huaweicloud.com/api-msgsms/public_sys-resources/notice_3.0-zh-cn.png)
推荐使用AK/SK签名认证方式，算法更安全。
#### 特殊AK/SK认证（推荐）
![](https://support.huaweicloud.com/api-msgsms/public_sys-resources/note_3.0-zh-cn.png)
- AK/SK签名认证方式仅支持12MB以内的消息体。
- 特殊AK/SK认证的"特殊"，是相对于[一般AK/SK认证](https://support.huaweicloud.com/api-msgsms/sms_05_0016.html)而言，AK、SK、EndPoint的获取方式与一般AK/SK认证不同，其他的不变，比如签名算法。
 
AK/SK认证，即使用AK/SK对请求进行签名，在请求时将签名信息添加到消息头，从而通过身份认证。
- AK（Application Key）：访问密钥ID。与私有访问密钥关联的唯一标识符；访问密钥ID和私有访问密钥一起使用，对请求进行加密签名。
- SK（Application Secret）：与访问密钥ID结合使用的密钥，对请求进行加密签名，可标识发送方，并防止请求被修改。
![](https://support.huaweicloud.com/api-msgsms/public_sys-resources/caution_3.0-zh-cn.png)
- 使用AK/SK认证时，您可以基于签名算法使用AK/SK对请求进行签名，也可以使用专门的签名SDK对请求进行签名。
- 本手册提供Java、Go、Python、C等多种不同语言的签名SDK和调用示例，您可以从[签名SDK与demo](https://support.huaweicloud.com/devg-apisign/api-sign-provide01.html)中选择需要的语言，然后参考示例与API调用说明部分，将SDK集成到您的应用中。
- [签名SDK与demo](https://support.huaweicloud.com/devg-apisign/api-sign-provide01.html)中，获取AK/SK之处，需要替换为从消息\&短信服务Console中获取的Application Key、Application Secret；获取Endpoint/HOST之处，需要替换为[APP接入地址](https://support.huaweicloud.com/api-msgsms/sms_05_0000.html)；不涉及获取X-Project-Id、X-Domain-Id、Project_Id。
- 签名SDK只提供签名功能，与消息\&短信服务提供的SDK不同，使用时请注意。推荐您使用消息\&短信服务提供的[SDK](https://support.huaweicloud.com/sdkreference-msgsms/sms_sdkreference_0000.html)发送短信，里面已经集成了签名算法能力，使用更简单。
 
#### X-WSSE认证
短信发送的接口使用X-WSSE认证。 X-WSSE是具有一定格式的字符串，通常是单个 HTTP 标头行。
X-WSSE格式为：UsernameToken Username="app_key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。
- PasswordDigest：根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成，直接使用Nonce、Created、Password拼接后的字符串进行SHA256加密即可，字符串中无需包含+号和空格。其中，Password为app_secret的值。
- Nonce：用户发送请求时生成的一个随机数，长度为1\~128位，可包含数字和大小写字母。例如：66C92B11FF8A425FB8D4CCFE0ED9ED1F。
- Created：随机数生成时间。采用标准UTC格式，例如：2018-02-12T15:30:20Z。不同编程语言中的时间格式转换方式不同，部分语言可参考[表3](https://support.huaweicloud.com/api-msgsms/sms_05_0001.html#ZH-CN_TOPIC_0000001430073285__table153940417281)。
 
获取X-WSSE令牌后，在调用短信发送接口时，您需要在请求消息头中按以下方式添加X-WSSE。
```
POST /sms/batchSendSms/v1 HTTP/1.1
x-real-ip: 10.10.10.10 
x-real-port: 10443 
host: ompap.inner
content-length: 184 
date: Fri, 13 Apr 2018 06:31:39 GMT
authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"
x-wsse: UsernameToken Username="ARBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="NDA1MWIwNjI2ZTkyNWFlM2FhMTE5NDE1YTk5NjU1YWE4NjNlZTY1MmRhYzkxZGViNzczZjdjMjkzZWQ4ZjAwNA==",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z"
accept: application/json
content-type: application/x-www-form-urlencoded
from=1069********0012&to=%2B86155****5678&templateId=abcdefghabcdefghabcdefghabcdefgh&templateParas=%5B%22520520%22%5D&statusCallback=http%3A%2F%2F205%2E145%2E111%2E168%3A9330%2Freport
```
