Todos os produtos
Search
Central de documentação

AI Guardrails:Assinaturas de requisição

Última atualização: Jun 27, 2026

Assine cada requisição da API do AI Guardrails com seu AccessKey secret para autenticar a chamada. Os algoritmos HMAC-SHA1 (padrão) e HMAC-SM3 são compatíveis.

Os SDKs do AI Guardrails assinam as requisições automaticamente. Se você usa um SDK, ignore esta página. Para instruções de configuração do SDK, consulte os guias de Java , Python , PHP , Go e .NET .

Como funciona

Ambos os algoritmos seguem o mesmo fluxo de quatro etapas. A única diferença está na etapa 3: o HMAC-SHA1 inclui o cabeçalho Content-MD5 na string a ser assinada; o HMAC-SM3 não.

# Step 1 – Serialize x-acs-* headers (both algorithms)
SerializedHeaders = sort_alphabetically(x-acs-headers)
                    formatted as "<name>:<value>\n" each

# Step 2 – Serialize URI (both algorithms)
SerializedURI = uri + "?clientInfo=" + JSON(clientInfo)

# Step 3 – Build string-to-sign
# HMAC-SHA1
StringToSign = "POST\n" + "application/json\n" + ContentMD5 + "\n"
             + "application/json\n" + Date + "\n"
             + SerializedHeaders + "\n" + SerializedURI

# HMAC-SM3 (no ContentMD5 line)
StringToSign = "POST\n" + "application/json\n" + Date + "\n"
             + SerializedHeaders + "\n" + SerializedURI

# Step 4 – Generate signature (both algorithms)
HMACValue     = HMAC-<ALGORITHM>(key=AccessKeySecret, data=StringToSign)
Signature     = Base64(HMACValue)
Authorization = "acs " + AccessKeyId + ":" + Signature

Assinar com HMAC-SHA1

Etapa 1: Serializar os cabeçalhos da requisição

Crie uma string com todos os cabeçalhos HTTP cujos nomes começam com x-acs-:

  1. Extraia todos os cabeçalhos HTTP cujo nome comece com x-acs-.

  2. Ordene os cabeçalhos extraídos em ordem alfabética.

  3. Formate cada cabeçalho como <header-name>:<header-value>\n.

  4. Concatene todos os cabeçalhos formatados em uma única string.

Etapa 2: Serializar a URI e os parâmetros de consulta

Concatene a URI e o parâmetro de consulta clientInfo no seguinte formato:

uri + "?clientInfo=" + <JSON string of clientInfo>
Não aplique codificação URL nesta string.

Etapa 3: Construir a string a ser assinada

Concatene os campos abaixo, separando cada um por um caractere de nova linha (\n):

POST                              ← HTTP method
application/json                  ← Content-Type
<Value of Content-MD5 header>     ← Content-MD5 hash of the request body
application/json                  ← Accept header
<Value of Date header>            ← Request timestamp
<Serialized request headers>      ← Output from step 1
<Serialized URI and parameters>   ← Output from step 2

Exemplo — string a ser assinada para uma chamada síncrona de moderação de imagem:

POST
application/json
C+5Y0crpO4sYgC2DNjycug==
application/json
Tue, 14 Mar 2017 06:29:50 GMT
x-acs-signature-method:HMAC-SHA1
x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
x-acs-signature-version:1.0
x-acs-version:2018-05-09
/green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}

Etapa 4: Gerar a string de assinatura

  1. Calcule o valor HMAC-SHA1 da string a ser assinada usando seu AccessKey secret como chave. O resultado é um array de bytes. Não o transforme antes da próxima etapa.

  2. Codifique o array de bytes em Base64 para obter a string de assinatura.

  3. Defina o cabeçalho Authorization como:

    Há um único espaço entre acs e <AccessKeyId> .
    acs <AccessKeyId>:<signature>

Assinar com HMAC-SM3

Etapa 1: Serializar os cabeçalhos da requisição

Crie uma string com todos os cabeçalhos HTTP cujos nomes começam com x-acs-:

  1. Extraia todos os cabeçalhos HTTP cujo nome comece com x-acs-.

  2. Ordene os cabeçalhos extraídos em ordem alfabética.

  3. Formate cada cabeçalho como <header-name>:<header-value>\n.

  4. Concatene todos os cabeçalhos formatados em uma única string.

Etapa 2: Serializar a URI e os parâmetros de consulta

Concatene a URI e o parâmetro de consulta clientInfo no seguinte formato:

uri + "?clientInfo=" + <JSON string of clientInfo>
Não aplique codificação URL nesta string.

Etapa 3: Construir a string a ser assinada

A string a ser assinada do HMAC-SM3 não inclui uma linha Content-MD5. Concatene os campos abaixo, separando cada um por um caractere de nova linha (\n):

POST                              ← HTTP method
application/json                  ← Content-Type
<Value of Date header>            ← Request timestamp
<Serialized request headers>      ← Output from step 1
<Serialized URI and parameters>   ← Output from step 2

Exemplo — string a ser assinada para uma chamada síncrona de moderação de imagem:

POST
application/json

application/json
Wed,29Mar202301:44:08GMT
x-acs-content-sm3:690c6c542ac53eaa1e2ad724f34d60e689d11db88a2d89469be1fdb2f20fc35c
x-acs-signature-method:HMAC-SM3
x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
x-acs-signature-version:1.0
x-acs-version:2018-05-09
/green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}

Etapa 4: Gerar a string de assinatura

  1. Calcule o valor HMAC-SM3 da string a ser assinada usando seu AccessKey secret como chave. O resultado é um array de bytes. Não o transforme antes da próxima etapa.

  2. Codifique o array de bytes em Base64 para obter a string de assinatura.

  3. Defina o cabeçalho Authorization como:

    Há um único espaço entre acs e <AccessKeyId> .
    acs <AccessKeyId>:<signature>