要仅使用 API 向组织或项目授予编程访问权限,请创建 API 密钥或服务帐号。这可确保提供服务户名和密码的密钥和访问权限令牌永远不会通过网络发送。API密钥和服务帐户:
不能用于通过用户界面日志Cloud Manager 。
必须像授予用户一样被授予角色,以确保API密钥和服务帐户可以调用API端点而不会出错。
属于一个组织,但可被授予对该组织中任意数量项目的访问权限。
要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
管理对组织的编程访问
为组织授予编程访问权限
使用以下过程,通过API密钥或服务帐户向组织授予编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
查看对组织的编程访问权限
您可以查看有权访问权限组织的所有API密钥或服务帐户的详细信息。
更新对组织的编程访问权限
您可以更改组织中API密钥或服务帐户的角色、描述或访问权限列表。您还可以为服务帐户生成新的客户端密钥。
填写API Key Information 表单。
在Add API Key页面的API Key Information步骤中:
字段 | 值 |
|---|---|
说明 | 输入新API密钥的描述。 |
组织权限 | 为 API 密钥选择一个 或多个新角色 。 |
撤销对组织的编程访问权限
托管对项目的编程访问
授予对项目的编程访问权限
使用以下过程,通过API密钥或服务帐户授予对项目的编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
查看项目的编程访问权限
您可以查看有权访问权限您的项目的所有API密钥或服务帐户的详细信息。
MongoDB Cloud ManagerGo在MongoDBProject Settings Cloud Manager中,Go 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
MongoDB Cloud ManagerGo在MongoDBProject Settings Cloud Manager中,Go 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
更新项目的编程访问权限
MongoDB Cloud ManagerGo在MongoDBProject Settings Cloud Manager中,Go 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
撤销对项目的编程访问权限
MongoDB Cloud ManagerGo在MongoDBProject Settings Cloud Manager中,Go 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
MongoDB Cloud ManagerGo在MongoDBProject Settings Cloud Manager中,Go 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
提出 API 请求
Cloud Manager API使用两种身份验证方法之一对请求进行身份验证: API密钥或服务帐户。您将需要在配置首选身份验证方法时保存的密钥或密钥,以完成以下过程。
要使用服务帐户发出 API 请求,请使用该服务帐户生成访问令牌,然后在请求中使用访问令牌:
检索您的服务帐户的客户端机密。
找到以 mdb_sa_sk_ 开头的客户机密;这是创建服务帐户后立即保存的客户机密,当时也是唯一一次可以查看客户机密的时机。如果未保存客户端机密,则必须生成新的客户端机密。
请求访问令牌。
将以下示例中的 {BASE64-AUTH} 替换为上一步的输出,然后运行:
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 {BASE64-AUTH}' \ 6 --header 'content-type: application/x-www-form-urlencoded' \ 7 --data 'grant_type=client_credentials'
{"access_token":"eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCIsImtpZCI6ImYyZjE2YmE4LTkwYjUtNDRlZS1iMWYLTRkNWE2OTllYzVhNyJ9eyJpc3MiOiJodHRwczovL2Nsb3VkLWRldi5tb25nb2RiLmNvbSIsImF1ZCI6ImFwaTovL2FkbWluIiwic3ViIjoibWRi3NhX2lkXzY2MjgxYmM2MDNhNzFhNDMwYjkwNmVmNyIsImNpZCI6Im1kYl9zYV9pZF82NjI4MWJjNjAzYTcxYTQzMGI5MZlZjciLCJhY3RvcklkIjoibWRiX3NhX2lkXzY2MjgxYmM2MDNhNzFhNDMwYjkwNmVmNyIsImlhdCI6MTcxMzkwNTM1OSiZXhwIjoxNzEzOTA4OTU5LCJqdGkiOiI4ZTg1MTM3YS0wZGU1LTQ0N2YtYTA0OS1hMmVmNTIwZGJhNTIifQAZSFvhcjwVcJYmvW6E_K5UnDmeiX2sJgL27vo5ElzeBuPawRciKkn6ervZ6IpUTx2HHllGgAAMmhaP9B66NywhfjAXC67X9KcOzm81DTtvDjLrFeRSc_3vFmeGvfUKKXljEdWBnbmwCwtBlO5SJuBxb1V5swAl-Sbq9Ymo4NbyepSnF""expires_in":3600,"token_type":"Bearer"}%
重要
访问令牌的有效期为 1 小时(3600 秒)。您无法刷新访问令牌。当此访问令牌过期时,重复此步骤以生成新的访问令牌。
调用 API。
将以下示例中的 {ACCESS-TOKEN} 替换为上一步的输出。示例,--header 'Authorization: Bearer eyJ...pSnF' \。
以下示例GET请求将返回当前用户的所有项目:
curl --request GET \ --url https://cloud.mongodb.com/api/public/v1.0/groups \ --header 'Authorization: Bearer {ACCESS-TOKEN}' \ --header 'Accept: application/json' \
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
curl --header 'Authorization: Bearer {ACCESS-TOKEN}' \ --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" }'
您的请求应类似于以下示例,其中,{PUBLIC-KEY} 是您的 API 公钥,{PRIVATE-KEY} 是相应的私钥。
以下示例GET请求将返回当前用户的所有项目:
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true"
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --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" }'