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.
Uso del Atlas Go SDK en tu código con autenticación digest
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) }
(Vista previa) Usar el SDK de Atlas Go con autenticación de cuenta de servicio
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 de OAuth
Autenticación con Cliente OAuthID y ClientSecret
Autenticación de la API de administrador utilizando cuentas 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
Revocación
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" });
Caché de Token OAuth
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.