Client Credential and Client Policy Management

EOS 환경에서 클라이언트 크리덴셜 관리하기

10 분 소요

클라이언트(Client) 란 제품의 에픽 온라인 서비스(Epic Online Services, EOS) 기능에 액세스하는 모든 프로그램을 의미합니다. 최종 사용자가 자신의 시스템에서 실행하는 게임의 로컬 빌드, 제품 소유자가 운영하는 전용 서버, 그리고 백엔드 서비스에 대해 가시성이 필요한 기타 모든 프로그램이 클라이언트에 포함됩니다.

EOS는 OAuth 클라이언트 크리덴셜을 사용하여 서비스에 대한 액세스 권한을 부여합니다. 생성된 각 EOS 클라이언트는 인증에 반드시 사용해야 하는 클라이언트 ID와 비밀번호인 클라이언트 암호(Client Secret)를 할당받습니다. 이 정보는 SDK가 프로그램을 유효한 EOS 클라이언트로 인식하고, 인증하고, 프로그램이 클라이언트 정책에서 정해진 기능에 액세스할 수 있도록 EOS_Platform_ClientCredentials 구조체에서 EOS_Platform_Create의 파라미터로서 전달됩니다.

클라이언트 정책을 도입하기 전에 생성된 클라이언트는 원래 할당된 클라이언트의 역할과 일치하고 레거시 라벨로 표시된 클라이언트 정책과 자동으로 연결됩니다.

클라이언트 정책 사용을 검토하는 것이 좋습니다. 게임이 전용 서버를 실행하지 않지만 클라이언트에 P2P 매치 호스팅을 허용한다면, 새로운 P2P 정책 또는 적절한 커스텀 정책으로 업데이트하는 것을 고려하세요.

클라이언트 정책은 승인되지 않은 활동으로부터 게임을 보호하는 데 매우 중요합니다. 제품의 제품 세팅(Product Settings) 으로 이동한 다음 클라이언트(Clients) 탭을 선택하면 클라이언트와 클라이언트 정책을 확인하고 관리할 수 있습니다.

클라이언트

신뢰할 수 없는 클라이언트 란 일반적으로 제품 클라이언트 자체와 같은 공개적으로 출시된 애플리케이션입니다. 제품 서버로 기능하는 P2P 제품 또는 커뮤니티에서 운영하도록 출시된 서버는 신뢰할 수 있는 클라이언트로 간주되지 않아야 합니다. 개발자는 모든 플레이어가 해당 정책을 통해 서비스에 연결할 때 출시된 코드의 변조되지 않은 버전을 실행할 것이라고 간주해선 안 됩니다.

신뢰할 수 있는 클라이언트 란 개발자의 데이터 센터에 있는 전용 서버처럼 개발자가 제어할 수 있는 클라이언트이며, 공개적으로 출시되지 않습니다. 수정되지 않았으며 개발자의 환경에서만 실행된다고 간주할 수 있으므로, 신뢰할 수 있는 클라이언트에는 더 많은 권한을 부여해도 됩니다.

새 클라이언트 추가하기

새로운 EOS 클라이언트를 추가하려면 새 클라이언트(New Client) 를 클릭합니다. 그러면 클라이언트에 대한 상세 정보를 입력할 수 있는 새 클라이언트(New Client) 모달 슬라이드가 열립니다.

클라이언트는 클라이언트 정책과 연결되어야 합니다. 하나의 클라이언트 정책을 여러 클라이언트와 연결할 수 있습니다. 클라이언트 정책과 연결하지 않은 클라이언트는 저장할 수 없습니다.

정책

신규 클라이언트를 생성하기 전에 해당 클라이언트에 필요한 권한을 포함하는 클라이언트 정책을 생성해야 합니다. 필요하다면 신규 클라이언트를 생성할 때나 클라이언트 정책(Client Policies) 섹션으로 내려가서 신규 클라이언트 정책 추가(Add New Client Policy) 를 클릭하여 클라이언트 정책을 생성할 수 있습니다. 하나의 클라이언트 정책에 여러 클라이언트를 연결할 수 있습니다.

예를 들어, 클라이언트가 전용 서버를 사용한다면 TrustedServer 유형을 선택할 수 있습니다. 이에 따라 신뢰할 수 있는 백엔드에 적합한 권한 세트가 정해집니다.

또한 커스텀 클라이언트 정책 을 환경설정하여 허용할 개별 액션을 선택할 수 있습니다.

사용자 필요(User required) 조건은 특정 정책의 액션을 실행하려면 사용자가 로그인해야 한다는 의미입니다. 예를 들어 로비 또는 플레이어 데이터 스토리지 기능을 사용하려면 사용자 필요 를 선택해야 합니다.

디폴트 정책 유형

GameClient

  • 신뢰할 수 없는 클라이언트 애플리케이션을 위한 정책
  • 인증된 사용자 필요

GameClient with UnlockAchievements

  • 게임 클라이언트와 유사하지만, 클라이언트가 플레이어 업적을 잠금해제할 수 있음
  • 인증된 사용자 필요

Peer2Peer

  • 멀티플레이어 매치를 호스팅하려는 신뢰할 수 없는 클라이언트 애플리케이션을 위한 정책
  • 인증된 사용자 필요

TrustedServer

  • 전용 서버 또는 신뢰할 수 있는 애플리케이션을 위한 정책
  • 매치메이킹 세션을 생성하고 플레이어를 대신하여 통계를 수집하는 기능 포함
  • 인증된 사용자 불필요

Custom

  • 각 서비스에 대한 커스텀 액션 세트를 사용할 수 있는 새로운 정책 생성
클라이언트 정책 권한 평가

기본적으로 모든 요청은 거부됩니다. 클라이언트 정책에 추가된 액션만 허용됩니다.

오류 처리

오류를 해결할 때는 우선 로그에서 문제에 대한 자세한 정보를 확인해야 합니다.

SDK 1.10버전까지는 이 서비스의 모든 오류가 EOS_Unexpected_Error 로 반환됩니다.

SDK 1.11버전부터는 잠재적인 오류가 다음 표와 같이 표시됩니다.

오류설명해결 방안
EOS_NotConfigured해당 호출에 대해 클라이언트 권한이 구성되지 않았습니다.개발자 포털에서 해당 클라이언트에 대한 정책을 환경설정합니다.
EOS_AcessDenied해당 호출에 대해 클라이언트 권한이 구성되었지만, 호출 확인이 실패합니다(예: 올바르게 설정된 클라이언트를 사용했지만 다른 사용자의 비공개 플레이어 데이터 스토리지에 액세스를 시도한 경우).로그에서 문제의 자세한 정보를 확인하고 지원팀에 문의합니다.
EOS_InvalidAuth클라이언트에 로그인한 사용자가 필요하도록 환경설정되었지만 클라이언트의 크리덴셜이 허용되지 않았습니다.로그에서 문제의 자세한 정보를 확인하고 지원팀에 문의합니다.
EOS_AccessDenied클라이언트 정책에서 이 클라이언트의 호출을 금지합니다. 개발자 포털이 클라이언트가 호출에 액세스할 수 없도록 환경설정되었을 수 있습니다.개발자 포털로 이동하여 클라이언트 환경설정을 수정합니다. 혹은 해당 권한을 허용하는 새 정책을 생성합니다.