为一名数据库用户创建一个 X.509 证书
为指定 MongoDB 用户生成一个 X.509 证书。Atlas 管理属于一个项目的证书和 MongoDB 用户。要使用此资源,请求的服务账户或 API 密钥必须具有“项目所有者”角色。
要让 MongoDB Cloud 为数据库用户生成托管证书,请在所需的 MongoDB 数据库用户上设置 "x509Type" : "MANAGED"。
如果在自管理 X.509 模式下管理自己的证书颁发机构 (CA),则必须使用自己的 CA 为数据库用户生成证书。
路径参数
- 
    
  用于标识项目的唯一 24-十六进制数字字符串。 使用 /groups 端点检索身份验证的用户有权访问权限的所有项目。 注意:群组和项目是同义词。您的群组 ID 与项目 ID 相同。对于现有群组,群组/项目 ID 保持不变。资源和相应的端点使用“群组”一词。 格式应符合以下模式: ^([a-f0-9]{24})$。
- 
    
  人类可读标签,表示要为其创建证书的 MongoDB 数据库用户帐户。 
查询参数
- 
    
  指示应用程序是否将响应包装在 envelopeJSON 对象中的标志。某些 API 客户端无法访问 HTTP 响应标头或状态代码。要修复此问题,请在查询中设置 Envelope=true。返回结果列表的端点将结果对象用作 envelope。应用程序将状态参数添加到响应正文中。默认值为 false。
- 
    
  指示响应正文是否应采用 prettyprint 格式的标记。 默认值为 false。Prettyprint 
        POST /API/Atlas/v2/groups/{groupId}/databaseUsers/{用户名}/certs
  
  
                    Atlas CLI
      
        
  atlas api x509Authentication createDatabaseUserCert --helpimport (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20231001001/admin"
)
func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
	if err != nil {
		log.Fatalf("Error: %v", err)
	}
	params = &sdk.CreateGroupDatabaseUserCertApiParams{}
	sdkResp, httpResp, err := client.X509AuthenticationApi.
		CreateGroupDatabaseUserCertWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2023-10-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/databaseUsers/{username}/certs" \
  -d '{ <Payload> }'curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2023-10-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/databaseUsers/{username}/certs" \
  -d '{ <Payload> }'
        请求示例
  
  {
  "monthsUntilExpiration": 3
}
        响应示例 (201)
  
  string
        响应示例 (400)
  
  {
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
        响应示例 (401)
  
  {
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
        响应示例 (403)
  
  {
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
        响应示例 (404)
  
  {
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
        响应示例 (409)
  
  {
  "error": 409,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
  "reason": "Conflict",
  "errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
        响应示例 (500)
  
  {
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}