Atlas 고 (Go) SDK로 인증
atlas-sdk-go
라이브러리는 다이제스트 인증 을 기본값 인증 방법으로 사용합니다.Atlas UI 또는 Atlas CLI를 통해 API 키를 만들 수 있습니다.
API 인증에 학습 보려면 Atlas 관리 API 인증 을 참조하세요.
다이제스트 인증을 통해 코드에서 Atlas 고 (Go) SDK 사용
Atlas Admin API 의 여러 부분에 액세스 하려면 새 Atlas SDK 클라이언트 를 구성하고 해당 서비스를 사용하세요. 예를 예시 다음과 같습니다.
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) }
(미리 보기) 서비스 계정 인증과 함께 Atlas 고 (Go) SDK 사용
Atlas SDK 고 (Go) 는 서비스 계정을 사용하여 OAuth 인증을 제공합니다(현재 Preview 기능 으로 사용 가능). 서비스 계정은 OAuth client_credentials 권한부여를 구현합니다. 이 기능 에 대한 자세한 내용은 서비스 계정 공개 문서를 참조하세요.
OAuth 인증
OAuth ClientID 및 ClientSecret으로 인증
서비스 계정을 사용한 관리자 API 인증
서비스 계정을 사용하여 인증
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 }
전체 참조 구현 은 서비스 계정 예시 를 참조하세요.
철회
해지하면 만료 날짜 전에 OAuth 토큰이 무효화됩니다. 이렇게 하면 현재 OAuth 클라이언트 를 효과적으로 '로그아웃'하고 새 클라이언트 를 구성할 수 있습니다.
// Sounding code omitted for brevity revokeConfig := credentials.NewConfig(clientID, clientSecret) revokeConfig.RevokeToken(context.Background(), &auth.Token{ AccessToken: "yourTokenHere" });
OAuth 토큰 캐시
서비스 계정 OAuth 액세스 토큰의 유효성은 필드 의 시간(초)으로 expires_in
표시됩니다. 클라이언트는 이러한 액세스 토큰을 캐시 하여 속도 제한을 완화하고 액세스 토큰 제한을 준수할 수 있습니다.
Atlas SDK for 고 (Go) 에서 OAuth 토큰을 캐시 하고 재사용하는 방법에 대한 예시 는 서비스 계정 OAuth 토큰 캐시 서비스 계정 OAuth 토큰 캐시 예시 참조하세요.