创建一个全局 API 密钥
MongoDB Ops Manager v6.0 将于 2025 1 月 EOL。 尽快升级到更高的MongoDB Ops Manager版本。
为 Ops Manager 创建一个全局 API密钥。
基本 URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
Resource
POST /admin/apiKeys
所需角色
要求调用此端点的API密钥具有 Global Owner
角色。
请求参数
请求路径参数
此端点不使用 HTTP 请求路径参数。
请求查询参数
以下查询参数为可选参数:
名称 | 类型 | 必要性 | 说明 | 默认 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
pretty | 布尔 | Optional | 指示响应正文是否应采用 Prettyprint 的标志 格式。 | false | ||||||
envelope | 布尔 | Optional | 指示是否将响应包装在信封中的标志。 某些 API 客户端无法访问 HTTP 响应标头或状态代码。要解决这个问题,可在查询中设置 envelope=true。 对于返回一个结果的端点,响应体包括:
| false |
请求正文参数
您必须提供所有请求正文参数。
名称 | 类型 | 必要性 | 说明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
desc | 字符串 | 必需 | 全局API密钥的描述。 长度必须介于 1 到 250 个字符之间。 | ||||||||||||||
roles | 字符串数组 | 必需 | 全局API密钥需要具有的角色列表。 如果提供了
默认接受的全局角色包括:
|
响应
名称 | 类型 | 说明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
desc | 字符串 | 此全局API密钥的描述。 | ||||||||||||||
id | 字符串 | 此全局API密钥的唯一标识符。 | ||||||||||||||
links | 字符串 | |||||||||||||||
privateKey | 字符串 | 此全局API密钥的未编辑私钥。 | ||||||||||||||
publicKey | 字符串 | 此全局API密钥的公钥。 | ||||||||||||||
roles | 对象数组 | 此全局API密钥具有的角色。 此数组返回用户在 Ops Manager 中拥有的所有全局角色。 | ||||||||||||||
roles.roleName | 字符串 | 角色名称。 此资源返回用户在 Ops Manager 中拥有的所有角色。可能的值为:
|
请求示例
注意
发出请求的用户可以采用 {USERNAME}:{APIKEY}
或 {PUBLIC-KEY}:{PRIVATE-KEY}
格式。
1 curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ 2 --header "Accept: application/json" \ 3 --header "Content-Type: application/json" \ 4 --include \ 5 --request POST "https://<OpsManagerHost>:<Port>/api/public/v1.0/admin/apiKeys?pretty=true" \ 6 --data '{ 7 "desc" : "New API key for Global Testing", 8 "roles" : [ "GLOBAL_READ_ONLY", "GLOBAL_USER_ADMIN" ] 9 }'
响应示例
响应标头
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
200 OK Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
响应体
1 { 2 "desc" : "New API key for Global Testing", 3 "id" : "5d669ce780eef52a42cf0e1e", 4 "links" : [ { 5 "href" : "https://<OpsManagerHost>:<Port>/api/public/v1.0/orgs/null/apiKeys/5d669ce780eef52a42cf0e1e", 6 "rel" : "self" 7 } ], 8 "privateKey" : "8d080e57-5fd6-495c-9388-fe348ed1796f", 9 "publicKey" : "cfswjfck", 10 "roles" : [ { 11 "roleName" : "GLOBAL_READ_ONLY" 12 }, { 13 "roleName" : "GLOBAL_USER_ADMIN" 14 } ] 15 }