本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
GAMESEC03-BP02 驗證傳送到遊戲後端服務的請求
驗證傳送到遊戲後端服務的請求,可能會阻止不必要的請求成功。
未建立此最佳實務時的曝險等級:高
實作指引
您應該提供身分驗證服務讓玩家登入,當玩家成功驗證時,應傳回安全的短期字符,例如 JSON Web Token (JWT) 給遊戲用戶端。
這些字符可以包含包含玩家屬性和其他相關中繼資料的宣告聲明。此相關中繼資料可用於從遊戲用戶端傳送至遊戲後端的後續請求,以驗證請求,並在已驗證玩家的內容中授權請求。
您可以選擇設計和建置自己的玩家身分驗證系統,這需要持續改進和維護,也可以使用 Amazon Cognito
Amazon Cognito 使用者集區包含用於身分驗證和授權的使用者目錄。使用者集區提供 APIs,您可以將其整合到您的遊戲中,以進行註冊、登入和密碼重設工作流程,而這些工作流程可以與第三方身分提供者整合。 Application Load Balancer 和 Amazon API Gateway 都提供與 Cognito 的整合,以整合使用者身分驗證,用於透過這些服務託管傳送到自訂遊戲後端的請求。
如果您的遊戲支援匿名存取,且您無法驗證玩家身分,您可以使用用戶端身分驗證方法,在與遊戲後端整合時提供更安全的體驗。如果您的遊戲用戶端直接使用 AWS 服務,必須使用登入資料來簽署對這些服務的請求。若要為未經驗證的使用者提供登入資料給遊戲用戶端,您可以使用 SDK AWS 從 Amazon Cognito 身分 集區 擷取短期登入資料,這些登入資料可用來簽署您對 AWS 服務的請求。您可以從遊戲用戶端重新整理這些登入資料。
除了直接從遊戲用戶端與 AWS SDK 整合之外,您還可以使用支援自訂授權的 Amazon API Gateway
如需為使用 Amazon GameLift 託管的遊戲建置後端服務的詳細資訊,請參閱設計您的遊戲用戶端服務。
客戶範例
AnyCompany Games 採用受管身分驗證和授權方法,增強了其下一個標題的安全性。他們不使用維護自訂使用者名稱和密碼系統,而是使用 Amazon Cognito 使用者集區來處理玩家註冊和登入,以及身分集區,以支援在建立帳戶之前嘗試訓練模式的玩家匿名存取。他們也在遊戲中實作自訂授權邏輯,以辨識 Cognito 中定義的管理員角色,授予這些使用者存取遊戲內特殊管理功能的權限。
實作步驟
-
使用 Amazon Cognito 使用者集區以 JWTs 等安全字符管理身分驗證,啟用註冊、登入和密碼重設等功能。
-
從 Amazon Cognito 身分集區擷取短期憑證,供匿名使用者安全地與服務互動 AWS 。
-
使用 Amazon API Gateway 實作自訂遊戲後端,以進行自訂伺服器端身分驗證邏輯。