

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 身分驗證 API
<a name="v10-Grafana-API-Authentication"></a>

使用身分驗證 API 在 Amazon Managed Grafana 工作區中使用身分驗證金鑰。

**注意**  
若要搭配 Amazon Managed 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`。
+ **secondsToLive** — 設定金鑰過期之前的時間量。它必須是 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"}
```