Autenticação com o Atlas Go SDK
A atlas-sdk-go
biblioteca utiliza a autenticação Digest como seu método de autenticação padrão. Você pode criar uma chave de API por meio da UI do Atlas ou da Atlas CLI do Atlas.
Para saber mais sobre a autenticação da API, consulte Autenticação da API de administração do Atlas .
Usando o Atlas Go SDK em seu código com autenticação Digest
Para acessar diferentes partes da API de administração do Atlas , crie um novo cliente do Atlas SDK e use seus serviços. Por exemplo:
package main import ( "context" "fmt" "log" "os" "go.mongodb.org/atlas-sdk/v20241113004/admin" ) func main() { ctx := context.Background() apiKey := os.Getenv("MONGODB_ATLAS_PUBLIC_KEY") apiSecret := os.Getenv("MONGODB_ATLAS_PRIVATE_KEY") sdk, err := admin.NewClient(admin.UseDigestAuth(apiKey, apiSecret)) if err != nil { log.Fatalf("Error instantiating new client: %v", err) } projects, response, err := sdk.ProjectsApi.ListProjects(ctx).Execute() if err != nil { log.Fatalf("Could not fetch projects: %v", err) } fmt.Printf("Response status: %v\n", response.Status) fmt.Printf("Projects: %v\n", projects) }
(Visualização) Usando o Atlas Go SDK com autenticação de conta de serviço
O Atlas SDK Go fornece autenticação OAuth usando contas de serviço (atualmente disponível como um recurso de visualização) Uma conta de serviço implementa uma concessão OAuth client_credentials. Para obter mais informações sobre o recurso, consulte a documentação pública da conta de serviço.
Autenticação OAuth
Autenticação com OAuth ClientID e ClientSecret
Autenticação da API de administrador usando contas de serviço
Autenticação usando contas de serviço
package main import ( "context" "log" "os" "go.mongodb.org/atlas-sdk/v20241113004/admin" ) func main() { clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID") clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET") if clientID == "" || clientSecret == "" { log.Fatal("Missing CLIENT_ID or CLIENT_SECRET environment variables") } // Using ClientID and ClientSecret. No cache supported (nil). sdk, err := admin.NewClient(admin.UseOAuthAuth(context.Background(), clientID, clientSecret)) // Make API calls }
Para obter uma implementação de referência completa, consulte o exemplo de conta de serviço
Revogação
A revogação invalida um token OAuth antes de sua data de expiração. Isso efetivamente "desconecta" o cliente OAuth atual e permite que você configure um novo cliente.
// Sounding code omitted for brevity revokeConfig := credentials.NewConfig(clientID, clientSecret) revokeConfig.RevokeToken(context.Background(), &auth.Token{ AccessToken: "yourTokenHere" });
Cache de token OAuth
A validade dos tokens de acesso OAuth da conta de serviço é expressa em vários segundos no expires_in
campo. Os clientes podem armazenar em cache esses tokens de acesso para mitigar a limitação da taxa e aderir aos limites do token de acesso.
Para obter um exemplo de como armazenar em cache e reutilizar tokens OAuth no Atlas SDK for Go, consulte o exemplo de Cache de token OAuth de conta de serviço.