Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/ / / /

创建一个组织 API 密钥并将其分配给一个项目

在此页面上

  • Resource
  • 请求路径参数
  • 请求查询参数
  • 请求正文参数
  • 响应
  • 请求示例
  • 响应示例
  • 响应标头
  • 响应体

对该端点的所有请求都必须源自IP MongoDB Ops Manager用户的API 访问权限列表上的 解决。有关配置API访问权限列表的完整文档,请参阅需要为组织提供API访问列表。

基本 URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0

POST /groups/{PROJECT-ID}/apiKeys
名称
类型
说明
PROJECT-ID
字符串
要检索其 API密钥的项目的唯一标识符。 使用/groups端点检索经过身份验证的用户有权访问权限的所有组织。

以下查询参数为可选参数:

名称
类型
说明
默认
pageNum
整型
页码(从 1 开始)。
1
itemsPerPage
整型
每页要返回的项目数,最多 500 个。
100
pretty
布尔
指示响应正文是否应采用 prettyprint 格式。
false
envelope
布尔

指示是否要将响应封装在信封中。

某些API客户端无法访问HTTP响应标头或状态代码。 要修复此问题,请在查询中设置"envelope" : true

对于返回一个结果的终结点,响应体包括:

状态
HTTP 响应代码
envelope
预期响应正文

对于返回结果列表的端点, results对象是一个信封。 Ops Manager 将status字段添加到响应正文。

两个正文参数中至少有一个是必需的。

名称
类型
说明
desc
字符串
API密钥的描述。 长度必须介于1到250字符之间。
roles
字符串数组

API密钥需要具有的角色列表。 如果提供了roles大量:

  • 提供至少一个角色

  • 确保所有角色必须对项目有效

项目角色包括:

API 中的角色价值
角色
GROUP_AUTOMATION_ADMIN
GROUP_BACKUP_ADMIN
GROUP_DATA_ACCESS_ADMIN
GROUP_DATA_ACCESS_READ_ONLY
GROUP_DATA_ACCESS_READ_WRITE
GROUP_MONITORING_ADMIN
GROUP_OWNER
GROUP_READ_ONLY
GROUP_USER_ADMIN
名称
类型
说明
desc
字符串
分配给该项目的组织API密钥的描述。
id
字符串
分配给此项目的此组织API密钥的唯一标识符。
privateKey
字符串

分配给此项目的此组织API密钥的已编辑私钥。

该密钥在首次创建时显示为未编辑。

publicKey
字符串
分配给此项目的此组织API密钥的公钥。
roles
对象数组
此组织API密钥分配给此项目的角色。 此数组返回用户在 Ops Manager 中拥有的所有组织和项目角色。
roles.groupId
字符串
此角色所属项目的唯一标识符。
roles.orgId
字符串
此角色所属组织的唯一标识符。
roles.roleName
字符串

角色名称。 此资源返回用户在 Ops Manager 中拥有的所有角色。可能的值为:

组织角色

如果这是一个roles.orgId (组织),则值包括:

API 中的角色价值
角色
ORG_OWNER
ORG_MEMBER
ORG_GROUP_CREATOR
ORG_READ_ONLY

项目角色

如果这是一个roles.groupId (项目),则值包括:

API 中的角色价值
角色
GROUP_AUTOMATION_ADMIN
GROUP_BACKUP_ADMIN
GROUP_DATA_ACCESS_ADMIN
GROUP_DATA_ACCESS_READ_ONLY
GROUP_DATA_ACCESS_READ_WRITE
GROUP_MONITORING_ADMIN
GROUP_OWNER
GROUP_READ_ONLY
GROUP_USER_ADMIN

注意

发出请求的用户可以采用 {USERNAME}:{APIKEY}{PUBLIC-KEY}:{PRIVATE-KEY} 格式。

1curl --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/groups/{PROJECT-ID}/apiKeys?pretty=true" \
6 --data '{
7 "desc" : "New API key for test purposes",
8 "roles": ["GROUP_READ_ONLY", "GROUP_DATA_ACCESS_ADMIN"]
9 }'
HTTP/1.1 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
HTTP/1.1 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 test purposes",
3 "id" : "5d1d143c87d9d63e6d694746",
4 "links" : [ {
5 "href" : "https://<OpsManagerHost>:<Port>/api/public/v1.0/orgs/5980cfe20b6d97029d82fa63/apiKeys/5d1d143c87d9d63e6d694746",
6 "rel" : "self"
7 } ],
8 "privateKey" : "********-****-****-db2c132ca78d",
9 "publicKey" : "{PUBLIC-KEY}",
10 "roles" : [ {
11 "groupId" : "{PROJECT-ID}",
12 "roleName" : "GROUP_READ_ONLY"
13 }, {
14 "groupId" : "{PROJECT-ID}",
15 "roleName" : "GROUP_DATA_ACCESS_ADMIN"
16 } ]
17}

后退

获取分配给一个项目的所有组织 API 密钥