시작하기

제품에서 EOS 에픽 계정 서비스를 구성하는 방법입니다.

9 분 소요

EOS 에픽 계정 서비스는 에픽 온라인 서비스(Epic Online Services, EOS)의 일부입니다. EOS는 EOS 에픽 게임 서비스와 EOS 에픽 계정 서비스의 두 가지 리소스 세트로 구성됩니다. 자세한 내용은 에픽 온라인 서비스(EOS) 개요 문서와 EOS 퀵스타트 문서를 참고하세요.

EOS 에픽 계정 서비스는 게임에서 에픽게임즈 계정을 사용하기 위한 리소스 세트입니다.

EOS 게임에서 EOS 게임 서비스를 사용하는 경우 EOS 에픽 계정 서비스가 필요하지 않습니다. 플레이어는 지원되는 ID 제공자가 제공하는 ID(Steam 계정 등) 또는 에픽게임즈 계정을 사용하여 게임에 연결할 수 있습니다.


  • 플레이어가 지원되는 ID 제공자로부터 받은 ID(Steam 계정 등)를 통해 연결하는 경우:
    • EOS 게임 서비스: 연결 인터페이스를 사용합니다.
  • 플레이어가 에픽게임즈 계정을 통해 연결하는 경우:
    • EOS 게임 서비스: 연결 인터페이스 및
    • EOS 에픽 계정 서비스: 인증 인터페이스를 모두 사용합니다.

추가 정보는 다음 문서를 참고하세요.

시작하기 전에

EOS 에픽 계정 서비스 계정 및 애플리케이션을 구성하려면 먼저 다음 전제 조건을 충족해야 합니다.

  1. 데브 포털(dev.epicgames.com/portal)에 가입하고 계정의 다단계 인증을 활성화합니다.
  2. 데브 포털에서 조직을 생성하거나 기존 조직의 멤버가 됩니다.
    그렇게 하려면 에픽게임즈 계정이 필요하며(www.epicgames.com/account 참고), 조직에서의 멤버 역할이 관리자(Admin) 여야 합니다.
  3. EOS 에픽 계정 서비스를 사용할 제품을 생성하거나 선택합니다.
  4. 데브 포털에서 EOS SDK 최신 버전을 다운로드합니다.
    EOS SDK에 대한 자세한 내용은 EOS 퀵스타트 가이드를 참고하세요.

시작하기

1. 데브 포털에서 EOS 에픽 계정 서비스에 액세스하기

제품 홈페이지나 탐색 패널의 데브 포털에서 에픽 계정 서비스를 찾을 수 있습니다.

에픽 계정 서비스 대시보드로 이동하려면 에픽 계정 서비스의 서비스 부록(Service Addendum)을 검토하고 수락해야 합니다. 데브 포털(Developer Portal) 에 있는 조직(Organization) 섹션의 라이선스(Licenses) 탭에서 수락한 모든 동의 내역을 언제든 검토할 수 있습니다.

에픽게임즈의 사용자 데이터 수집 및 사용, 공유 방법을 이해하려면 에픽게임즈 개인정보 취급방침(Epic Games Privacy Policy) 을 확인해 주세요.

조직 유형을 회사(Company) 법인으로 구성했다면 라이선스 계약마다 한 번만 수락하면 됩니다. 그러나 개인(Individual) 으로 구성했다면 EAS 대시보드 액세스 권한이 있는 모든 멤버가 개별적으로 계약을 수락해야 합니다.

EOS 게임 서비스를 사용하면 에픽게임즈에 사용자의 데이터를 대신 프로세스하는 서비스 공급자로서의 라이선스를 부여하게 됩니다. 그러나 EOS 에픽 계정 서비스를 사용하면 에픽게임즈가 플레이어 데이터와 인증 플로를 관리하고, 플레이어의 동의하에 플레이어를 대신해 이러한 데이터와 기능을 공개합니다. 개발사는 에픽 계정 서비스용 서비스 부록(Service Addendum for Epic Account Services) 에 정의된 대로, 허용된 용도로만 데이터를 사용하는 데 동의하게 됩니다.

2. EOS 에픽 계정 서비스 애플리케이션 구성하기

에픽 계정 서비스 대시보드에서 첫 번째 애플리케이션을 생성할 수 있습니다. 데브 포털에 이후 애플리케이션 용도로 자리표시자가 표시되지만, 세부 구성 정보는 표시되지 않습니다.

대시보드의 EOS 에픽 계정 서비스 애플리케이션

클릭하면 이미지가 확대됩니다.

애플리케이션 구성은 3개의 주요 섹션으로 이루어집니다.

  1. 브랜드 세팅(Brand Settings): 이름, 로고, 개인정보 보호 정책 URL 및 지원 URL입니다.
  2. 권한(Permissions): 애플리케이션에서 사용자에게 요청하는 액세스 권한입니다.
  3. 연동된 클라이언트(Linked Clients): 인증 절차 중 SDK가 사용하는 클라이언트 크리덴셜과 애플리케이션의 연동입니다.

구성(Configure) 을 클릭하여 위 내용을 진행합니다.

애플리케이션 브랜드 세팅

애플리케이션 구성의 첫 번째 섹션은 애플리케이션 브랜드 세팅(Application Brand Settings) 입니다.

애플리케이션 브랜드 세팅

클릭하면 이미지가 확대됩니다.

왼쪽에서 동의 대화창의 프리뷰를 볼 수 있습니다. 이 대화창은 애플리케이션에 정보 공유를 허용하도록 요청받는 에픽 사용자에게 표시됩니다. 프리뷰는 모바일과 웹 버전에서 이용할 수 있습니다.

처음에는 빨간색 경고 배너가 동의 대화창 프리뷰 상단에 표시됩니다. 이 경고는 애플리케이션 브랜드 세팅이 잠재 유해성이나 브랜드 스푸핑 시도와 관련한 검토를 받지 않았음을 나타냅니다. 또한, 검증되지 않은 애플리케이션의 동의 대화창에는 또 다른 경고 대화창이 앞서 표시됩니다. 이중 경고의 목적은 사용자가 검증되지 않은 애플리케이션 사용의 의미를 완전하게 이해하도록 하는 것입니다.

모든 애플리케이션은 검증되지 않은 상태로 생성되며, 오디언스 제한이 적용됩니다. 같은 개발 조직의 멤버만 에픽게임즈 계정을 사용하여 이러한 검증되지 않은 애플리케이션에 대해 인증할 수 있습니다. 다른 모든 사용자에게는 이용 대상 제한 오류 메시지가 표시됩니다. 이러한 제한의 목적은 에픽 사용자를 보호하는 동시에 개발자가 브랜드 리뷰를 위해 애플리케이션을 준비하는 동안 통합 반복작업을 할 수 있게 하는 것입니다.

이러한 제한을 제거하려면, 오른쪽 항목의 세부 사항을 작성하고 애플리케이션 브랜드 리뷰를 위해 제출해야 합니다. 여기에는 다음과 같은 내용이 포함됩니다.

  • 애플리케이션 이름(Application Name): 사용자에게 표시되는 애플리케이션 이름입니다. 해당 이름이 디폴트 제품 이름으로 설정됩니다.
  • 개인정보 보호 정책 URL(Privacy Policy URL): 사용자가 해당 애플리케이션 개인정보 보호 정책을 확인할 수 있는 URL 링크입니다.
  • 애플리케이션 로고(Application Logo): 동의 다이얼로그에서 애플리케이션을 나타내는 128 x 128 불투명 PNG 또는 JPG 이미지입니다.

위 항목을 업데이트하면 프리뷰에 변경 사항이 즉시 반영됩니다.

채워진 애플리케이션 브랜드 세팅

클릭하면 이미지가 확대됩니다.

애플리케이션이 생성되고 브랜드 세팅이 저장되면 다음 탭으로 이동합니다.

애플리케이션 권한

권한(Permissions) 탭은 애플리케이션에서 사용자에게 요청할 액세스 수준을 정의하는 곳입니다.

애플리케이션 권한

클릭하면 이미지가 확대됩니다.

에픽 계정 서비스는 다음 세 가지 기본 권한을 지원합니다.

  • 기본 프로필(Basic Profile): 사용자 표시명, 언어 기본 설정 및 연결된 계정 표시명에 대한 읽기 액세스를 허용합니다.
  • 온라인 현재상태(Online Presence): 애플리케이션이 현재 사용자의 온라인 현재상태를 설정하고 사용자의 친구로부터 온라인 현재상태 업데이트를 수신할 수 있게 허용합니다.
  • 친구(Friends): 현재 사용자 계정의 친구 목록에 대한 읽기 액세스를 허용합니다.

에픽 계정 서비스에는 항상 기본 프로필이 필요하며, 기본 프로필이 없으면 어떠한 사용자 데이터에도 액세스할 수 없으므로 비활성화할 수 없습니다. 온라인 현재상태와 친구는 애플리케이션의 필요에 따라 활성화하거나 비활성화할 수 있습니다. 애플리케이션에서 활성화하려는 권한을 토글한 다음 저장(Save) 을 클릭하여 변경 사항을 저장합니다. 동의 다이얼로그 프리뷰에 추가하거나 제거한 권한이 반영되어 업데이트됩니다.

활성화된 애플리케이션 권한

클릭하면 이미지가 확대됩니다.

애플리케이션 클라이언트

마지막으로, 클라이언트(Clients) 탭에서 애플리케이션과 관련된 클라이언트 목록을 환경설정할 수 있습니다. 클라이언트 는 에픽 계정 서비스 백엔드 내부에서 애플리케이션의 데이터에 액세스할 수 있는 모든 소프트웨어나 웹사이트를 뜻합니다. 애플리케이션과 관련된 모든 클라이언트는 제품 세팅(Product Settings)에 나열되며, 사용자가 동의하면 그 동의를 모든 클라이언트가 공유합니다.

구성되지 않은 애플리케이션 클라이언트 탭

클릭하면 이미지가 확대됩니다.

이미 애플리케이션의 클라이언트를 설정했다면, 클라이언트 선택(Select Clients) 드롭다운 메뉴에서 클라이언트를 선택할 수 있습니다. 또는 새 클라이언트 생성(Create New Client) 을 클릭하여 제품 세팅(Product Settings) 페이지를 열고 새 클라이언트를 구성할 수 있습니다. 새 클라이언트 추가에 대한 자세한 정보는 클라이언트 크리덴셜 페이지를 참고하세요.

이 목록에 클라이언트를 추가했다면, 저장(Save) 버튼을 클릭하여 변경 사항을 저장합니다.

구성된 애플리케이션이 있는 대시보드

클릭하면 이미지가 확대됩니다.

이제 EOS 에픽 계정 서비스 애플리케이션 구성을 완료했습니다. 지금부터 EAS를 제품에 통합하고 이를 사용하여 사용자 데이터에 액세스할 수 있습니다. 제출한 애플리케이션의 브랜드 세팅 리뷰가 완료되면 이용 대상 제한이 해제되며 조직 외부의 사용자에게 애플리케이션이 표시됩니다.

활성화된 애플리케이션 권한

클릭하면 이미지가 확대됩니다.

3. EOS SDK로 에픽게임즈 사용자 인증하기

EOS SDK에서는 특별한 설정 없이 에픽게임즈 계정을 사용할 수 있습니다. 그러나 타깃 플랫폼에 적합한 로그인 타입을 사용해야 하며(인증 인터페이스 참고), 브랜드 리뷰 신청 과정에서 명시한 로그인 호출 시점에 사용자가 동의해야 하는 범위(프로필, 현재상태, 친구 목록)를 정해야 합니다.

예를 들어, PC의 계정 포탈을 통해 로그인하려면 로그인 호출은 다음과 같이 나타날 것입니다.

이렇게 하면 디폴트 시스템 웹 브라우저가 열리면서 사용자에게 로그인하여 액세스 애플리케이션 요청을 확인하라는 메시지가 표시됩니다.

4. 웹사이트에서 에픽게임즈 사용자 인증하기

에픽게임즈는 웹사이트와 웹 애플리케이션에서 사용자를 인증할 수 있도록 OpenID Connect Core 1.0용 코드 인증 절차를 지원합니다. 그러나 시작하기에 앞서 브랜드 리뷰 애플리케이션클라이언트 크리덴셜을 구성해야 합니다.

사용자 인증

인증 절차를 개시하려면 애플리케이션이 에픽게임즈 계정에 로그인할 수 있는 인증 페이지로 사용자를 리디렉션해야 합니다.

사용자를 다음 인증 URL로 리디렉션합니다.

추가 권한을 요청하려면 공백으로 구분된 필수 권한 목록을 사용하여 인증 요청의 범위 파라미터(예: scope=basic_profile friends_list)를 수정해야 합니다.

그런 다음 데브 포털(Developer Portal)에서 클라이언트의 리디렉션 URL을 구성해야 합니다.

사용자가 로그인하면 요청한 권한을 승인하라는 메시지가 표시됩니다. 사용자가 이에 수락하면 코드 파라미터를 통해 애플리케이션으로 다시 리디렉션됩니다. 이 코드는 액세스 토큰을 요청할 때 사용됩니다.

에픽게임즈에서는 선택 사항 으로 상태 파라미터도 지원하는데, 이 파라미터는 요청과 콜백 사이의 상태를 유지하는 데 사용할 수 있으며, 사이트 간 요청 위조 공격을 방지하는 데도 유용합니다.

다음은 사용자 인증 후 리디렉션 URL의 예입니다.

액세스 토큰 요청하기

액세스 토큰을 요청하기 위해 클라이언트는 클라이언트 크리덴셜 및 인증 코드 등을 토큰 엔드포인트에 요청합니다. 에픽게임즈 토큰 엔드포인트는 https://api.epicgames.dev/epic/oauth/v1/token 입니다.

클라이언트 크리덴셜은 기본 인증을 사용하여 Authorization 헤더에 전달됩니다.

요청에는 authorization_code 허가 타입도 지정해야 하며, 인증 플로의 리디렉션 URL과 코드도 포함해야 합니다.

다음은 비밀번호 허가 방식을 사용한 요청 샘플을 보여주는 코드 조각입니다.

응답에는 다음과 같은 항목이 포함됩니다.

응답설명
access_token액세스 토큰입니다. 선택 항목으로 접두사가 있을 수 있습니다(예: eg1~token). 이 값은 모든 에픽 서비스에 대한 요청에서 Bearer 타입을 사용하여 Authorization 헤더에 있는 그대로 전달되어야 합니다.
expires_in토큰 만료까지 걸리는 시간(초)입니다.
expires_atISO 8601 형식의 만료일입니다.
account_id토큰이 생성된 대상 사용자의 에픽게임즈 계정 ID입니다.
client_id이 토큰 생성에 사용된 클라이언트 ID입니다.
application_id클라이언트가 관련된 애플리케이션 ID입니다.
token_type생성된 토큰 타입으로 값은 항상 bearer 입니다.
refresh_token클라이언트 구성에 따라 새로고침 토큰이 선택적으로 반환됩니다. 이 새로고침 토큰은 액세스 토큰 만료 전이나 만료 후 세션 연장에 사용할 수 있습니다.
refresh_expires새로고침 토큰 만료까지 걸리는 시간(초)입니다.
refresh_expires_atISO 8601 형식의 새로고침 토큰 만료일입니다.

다음은 응답 샘플을 보여주는 코드 조각입니다.

반드시 인증(Authorization) 헤더에 존재하는 상태 그대로 액세스 토큰을 에픽게임즈 서비스에 전달해야 합니다. 예를 들면 Authorization: Bearer eyJraWQiOiJ0RkM...

엔드포인트

이름URL
OpenID 구성https://api.epicgames.dev/epic/oauth/v1/.well-known/openid-configuration
인증https://www.epicgames.com/id/authorize
토큰https://api.epicgames.dev/epic/oauth/v1/token
사용자 정보https://api.epicgames.dev/epic/oauth/v1/userInfo
토큰 정보https://api.epicgames.dev/epic/oauth/v1/tokenInfo
JWKhttps://api.epicgames.dev/epic/oauth/v1/.well-known/jwks.json