Menu Docs
Página inicial do 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 UI do Atlas ou da 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.

Voltar

Atlas Go SDK