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/v20241113005/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 認証を提供します(現在プレビュー機能として利用可能)。サービス アカウントは OAuth client_credentials 付与を実装します。この機能の詳細については、 サービス アカウントの公開ドキュメント を参照してください。
OAuth 認証
OAuth ClientID と ClientSecret による認証
サービス アカウントを使用したAPI認証の管理
サービス アカウントを使用した認証
package main import ( "context" "log" "os" "go.mongodb.org/atlas-sdk/v20241113005/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
フィールドに秒数として表されます。 クライアントはこれらのアクセス トークンをキャッシュ、レート制限を軽減し、アクセス トークンの制限に準拠できます。
Go用の Atlas SDK で OAuth トークンをキャッシュて再利用する方法の例については、「 サービス アカウント OAuth トークン キャッシュ サービス アカウント OAuth トークン キャッシュの例 」を参照してください。