

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 身份验证 API
<a name="v10-Grafana-API-Authentication"></a>

使用身份验证 API 可在 Amazon Managed Grafana 工作区中处理身份验证密钥。

**注意**  
要在您的亚马逊托管 Grafana 工作空间中使用 Grafana API，您必须拥有有效的服务账户令牌。您可以将其包含在 API 请求的 `Authorization` 字段中。

## 获取 API 密钥
<a name="v10-Grafana-API-Authentication-GetApiKeys"></a>

```
GET /api/auth/keys
```

**示例请求**

```
GET /api/auth/keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**查询参数：**
+ **includeExpired**：（可选）布尔参数，用于指定是否在返回的结果中包含过期的密钥。默认值为 `false`。

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

[
  {"id": 3,"name": "API","role": "Admin"},
  {"id": 1,"name": "TestAdmin","role": "Admin","expiration": "2019-06-26T10:52:03+03:00"}
]
```

## 创建 API 密钥。
<a name="v10-Grafana-API-Authentication-CreateApiKey"></a>

```
POST /api/auth/keys
```

**示例请求**

```
POST /api/auth/keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "name": "mykey",
  "role": "Admin",
  "secondsToLive": 86400
}
```

JSON 正文架构：
+ **name**：密钥的名称。
+ **role**：设置密钥的访问级别（Grafana 角色）。有效值为 `Admin`、`Editor` 或 `Viewer`。
+ **秒 ToLive** — 设置密钥过期之前的时间。它必须是 2592000（30 天）或更短的时间。

**响应示例**

```
{"name":"mykey","key":"eyJrIjoiWHZiSWd3NzdCYUZnNUtibE9obUpESmE3bzJYNDRIc0UiLCJuIjoibXlrZXkiLCJpZCI6MX1=","id":1}
```

错误状态：
+ **400**：`secondsToLive` 大于 2592000
+ **500**：密钥无法存储在数据库中。

## 删除 API 密钥
<a name="v10-Grafana-API-Authentication-DeleteApiKey"></a>

```
DELETE /api/auth/keys/:id
```

**示例请求**

```
DELETE /api/auth/keys/3 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200
Content-Type: application/json

{"message":"API key deleted"}
```