Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Autenticação com o Atlas Go SDK

A biblioteca atlas-sdk-go utiliza a autenticação Digest como seu método de autenticação padrão. Você pode criar uma chave de API por meio da Atlas UI ou do Atlas CLI.

Para saber mais sobre a autenticação da API, consulte Autenticação da API de administração do Atlas .

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/v20250312001/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)
}

O Atlas SDK Go fornece autenticação OAuth usando contas de serviço. No momento, esse recurso está disponível como recurso de visualização. Para saber mais, consulte Visualizar recursos.

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 usando contas de serviço

package main
import (
"context"
"log"
"os"
"go.mongodb.org/atlas-sdk/v20250312001/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

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"
});

A validade dos tokens de acesso OAuth da conta de serviço é expressa em vários segundos no campo expires_in. 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.