2013-06-22 2 views
1

C++로 작성된 특정 클라이언트/서버 게임의 경우 게임 서버에서 플레이어를 개별적으로 추적 할 수 있도록 '로그인 서버'를 개발하고 싶습니다. 그러나, 나는 바퀴를 다시 발명하는 것에 싫어합니다. 그리고 나는 무의미한 요구 사항을 가지고 있지만, 제가 찾고있는 것이 이미 확립 된 구현을 가지고 있는지 알고 싶습니다.클라이언트/서버 게임을위한 OpenID 스타일 인증?

내가 원하는 것은 권한있는 로그인 서버가없는 OpenID와 같은 것입니다. 잠재적으로 많은 로그인 서버가 있기를 원합니다. 모든 게임 서버는 특정 사용자 이름으로 특정 로그인 서버를 사용한 사람이 이전에 해당 사용자 이름으로 로그인 서버를 사용한 사람과 동일하다는 것을 알고 있습니다.

글쎄, 내가 이름으로 언급 한 이래로 왜 OpenID를 사용하지 않겠습니까? 너무 웹 중심적입니다. 특정 게임 서버에서 게임을하고 싶을 때 로그인 서버에 자격 증명을 전달하기 위해 내 게임이나 실행기에 브라우저를 설치하고 싶지 않습니다. 실제로 프로토콜에 대해 불가지론적인 시스템이 선호 될 것이므로 로그인 서버, 게임 클라이언트 및 게임 서버는 모두 게임 클라이언트 및 서버가 이미 가지고있는 것과 동일한 UDP 인프라를 사용하여 통신 할 수 있습니다.

이 영역에 대한 몇 가지 지침이 제공됩니다. 인증과 보안은 까다로운 문제이기 때문에 전체 시스템을 직접 생각하지 않아도됩니다.

답변

0

OpenID는 사용자를 특정 서버에 바인딩합니다. 예를 들어 사용자가 http://openid.net/theusername에서 온 경우이 정보를 저장할 수 있지만 이번에는 이라는 사용자가 동일한 인증 서버를 사용하고 서버가 다운 된 경우 계정을 마이그레이션하는 방법에 대한 어려운 시나리오가 있습니다 다른 신원 (다른 공급자)에게.

Oauth2 인증을 사용하고 전자 메일을 기본 인증 ID로 사용하는 경우 사용자는 설정 한 여러 다른 공급자 (Google, Facebook, Twitter, Linkedin)를 인증 할 수 있으며 인증 전에 전자 메일이 확인되었습니다 (이것이 ID 제공자의 작동 방식입니다).

다음 OAuth2를 강력하게 추천합니다. 여전히 특정 공급자를 부과하지 않고 사용자가 좋아하는 것을 선택하도록하는 동시에 통신 채널로 사용하여 응용 프로그램에서 사용자에게 정보를 보낼 수있는 신뢰할 수있는 정보, 전자 메일을받는 동시에 .

+0

OAuth2는 여전히 초안 단계에 있으며, 전송 보안을 구현에 남겨 두는 것처럼 보입니다. 이는 UDP 위에서 구현하기가 어렵거나 오류가 발생하기 쉽습니다. – AlexMax

+0

모든 사람이 그것을 구현하지 못하게하는 초안에있을 수 있습니다. 예, 보안은 tcp/ssl에 따라 다릅니다. –