要仅使用API向组织或项目授予编程访问权限,请创建API密钥或服务帐号。这可确保提供服务户名和密码的密钥和访问权限令牌永远不会通过网络发送。 API密钥和服务帐户:
不能用于通过用户界面日志Cloud Manager 。
必须像授予用户一样被授予角色,以确保API密钥和服务帐户可以调用API端点而不会出错。
属于一个组织,但可被授予对该组织中任意数量项目的访问权限。
要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
管理对组织的编程访问
为组织授予编程访问权限
使用以下过程,通过API密钥或服务帐户向组织授予编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
输入服务帐户信息。
输入一个 Name。
输入一个 Description。
从 Client Secret Expiration(客户端密钥到期)菜单中选择持续时间。
从Organization Permissions(组织权限)菜单中,为服务帐户选择一个或多个新角色。
查看对组织的编程访问权限
您可以查看有权访问权限组织的所有API密钥或服务帐户的详细信息。
更新对组织的编程访问权限
您可以更改组织中API密钥或服务帐户的角色、描述或访问权限列表。您还可以为服务帐户生成新的客户端密钥。
撤销对组织的编程访问权限
托管对项目的编程访问
授予对项目的编程访问权限
使用以下过程,通过API密钥或服务帐户授予对项目的编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
输入服务帐户信息。
输入一个 Name。
输入一个 Description。
从 Client Secret Expiration(客户端密钥到期)菜单中选择持续时间。
从项目权限菜单中,为服务帐户选择一个或多个新角色。
查看项目的编程访问权限
您可以查看有权访问权限您的项目的所有API密钥或服务帐户的详细信息。
更新项目的编程访问权限
撤销对项目的编程访问权限
发出API请求
Cloud Manager API使用两种身份验证方法之一对请求进行身份验证: API密钥或服务帐户。您将需要在配置首选身份验证方法时保存的密钥或密钥,以完成以下过程。
要使用服务帐户发出API请求,请使用该服务帐户生成访问权限令牌,然后在请求中使用该访问权限令牌:
检索您的服务帐户的客户端机密。
找到您在创建服务帐户后立即保存的以 mdb_sa_sk_ 开头的客户端密钥,这是您可以查看客户端密钥的唯一一次。如果未保存客户端密钥,则必须生成新的客户端密钥。
请求访问令牌。
将以下示例中的 {base64Auth} 替换为上一步的输出,然后运行:
1 curl --request POST \ 2 --url https://cloud.mongodb.com/api/oauth/token \ 3 --header 'accept: application/json' \ 4 --header 'cache-control: no-cache' \ 5 --header 'authorization: Basic {base64Auth}' \ 6 --header 'content-type: application/x-www-form-urlencoded' \ 7 --data 'grant_type=client_credentials'
{"access_token":"{accessToken}""expires_in":3600,"token_type":"Bearer"}%
重要
访问令牌的有效期为 1 小时(3600 秒)。您无法刷新访问令牌。当此访问令牌过期时,重复此步骤以生成新的访问令牌。
进行API调用。
将以下示例中的 {accessToken} 替换为上一步的输出。示例,--header 'Authorization: Bearer eyJ...pSnF' \。
以下示例GET请求将返回当前用户的所有项目:
curl --request GET \ --url https://cloud.mongodb.com/api/public/v1.0/groups \ --header 'Authorization: Bearer {accessToken}' \ --header 'Accept: application/json' \
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
curl --header 'Authorization: Bearer {accessToken}' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --include \ --request POST 'https://cloud.mongodb.com/api/public/v1.0/groups' \ --data ' { "name": "MyProject", "orgId": "5a0a1e7e0f2912c554080adc" }'
您的请求应类似于以下示例,其中 {publicKey} 是API公钥,{privateKey} 是相应的私钥。
以下示例GET请求将返回当前用户的所有项目:
curl --user "{publicKey}:{privateKey}" --digest \ --header "Accept: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true"
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
curl --user "{publicKey}:{privateKey}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request POST "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true" \ --data ' { "name": "MyProject", "orgId": "deffb2031b938da53f16d714" }'