Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Autenticar con el Atlas Go SDK

La atlas-sdk-go La biblioteca utiliza la autenticación Digest como su método de autenticación por defecto. Puedes Cree una clave API a través de la interfaz de usuario de Atlas o la CLI de Atlas.

Para saber más sobre la autenticación de API, consulta Autenticación de la API de administración de Atlas.

Para acceder a diferentes partes de la API de administración de Atlas, cree un nuevo cliente del SDK de Atlas y utilice sus servicios. Por ejemplo:

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

Atlas SDK Go proporciona autenticación OAuth mediante cuentas de servicio. Actualmente, esto está disponible como una funcionalidad de Vista previa. Para obtener más información, consulta Funcionalidades de vista previa.

Una Cuenta de servicio implementa una concesión OAuth client_credentials. Para obtener más información sobre la funcionalidad, consulte la documentación pública de la Cuenta de servicio.

Autenticación con cuentas de servicio

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 obtener una implementación completa de referencia, consulta ejemplo de cuenta de servicio

La revocación inhabilita un token de OAuth antes de su fecha de expiración. Esto "cierra la sesión" del cliente OAuth actual y le permite configurar un nuevo cliente.

// Sounding code omitted for brevity
revokeConfig := credentials.NewConfig(clientID, clientSecret)
revokeConfig.RevokeToken(context.Background(), &auth.Token{
AccessToken: "yourTokenHere"
});

La validez de los tokens de acceso OAuth de la cuenta de servicio se expresa como un número de segundos en el campo expires_in. Los clientes pueden almacenar en caché estos tokens de acceso para reducir la limitación de la tasa y cumplir con los límites de los tokens de acceso.

Para obtener un ejemplo de cómo almacenar en caché y reutilizar tokens OAuth en el Atlas SDK para Go, consulta Almacenamiento en Caché de Tokens OAuth para Cuentas de Servicio Ejemplo de almacenamiento en caché de tokens OAuth para cuentas de servicio.

Volver

Atlas Go SDK