« Tüm yayınlar

Nakama Oyun Sunucuları için Cognito ile Çift Token Doğrulama

AWS Cognito ve Nakama'yı birleştiren çift token mimarisi; CloudFront, ALB ve NLB katmanlarıyla oyuncu kimliğini oturumdan bağımsız biçimde doğruluyor.

AWS üzerinde çalışan Nakama oyun sunucuları için önerilen bir mimari, Amazon Cognito'nun yönetilen kimlik doğrulama sistemini Nakama'nın kendi oturum token mekanizmasıyla kesintisiz biçimde birleştiriyor. Cognito, SRP tabanlı akış ile şifreyi hiç istemciden çıkarmadan bir JWT üretiyor; sunucu tarafında yazılmış bir Go hook bu token'ı doğrulayıp sub claim'ini Nakama kullanıcı kimliğine dönüştürüyor. Her iki token da her istekte bağımsız olarak doğrulanıyor, böylece iki sistem çalışma zamanında birbirine bağımlı olmuyor.

Altyapı tarafında Nakama, varsayılan olarak kapalı bir yönlendirme katmanına sarılıyor: CloudFront tek HTTPS giriş noktası olarak görev yapıyor, AWS WAF kenarda trafiği filtreliyor, bir Application Load Balancer HTTP rotalarını beyaz listeyle kısıtlıyor, bir Network Load Balancer ise WebSocket trafiğini TCP passthrough ile Nakama'ya iletiyor. Nakama, Amazon ECS üzerinde Fargate ile çalışıyor. ALB'nin Layer 7'de rota bazlı kontrol yapması, NLB'nin ise Layer 4'te ham TCP akışını değiştirmeden Nakama'ya bırakması, iki yük dengeleyicinin neden tek bir bileşene indirgenemediğini açıklıyor.

Go hook'u, gelen JWT'yi beş adımda doğruluyor: token formatı, yalnızca RS256 algoritması, JWKS karşısında imza, süre bitişi ve issuer/audience eşleşmesi. Bu katı doğrulama zinciri, istemci tarafından gönderilen kimlik iddialarının asla doğrudan güvenilir kabul edilmemesini sağlıyor ve oyuncu taklidi riskini ortadan kaldırıyor. Terraform ile tanımlanan altyapı ve bu Go hook, kimlik ile oyun oturumunu ayrıştırarak her iki sistemin de birbirinden bağımsız ölçeklenip yönetilebilmesini mümkün kılıyor.