Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / /

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 .

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

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 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

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 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.

Voltar

Atlas Go SDK