This document is about: FUSION 2
SWITCH TO

개요

Photon SDK로 새로운 프로젝트를 시작하면, 사용자가 익명(anonymous)임을 알 수 있습니다.
사용자 로그인 과정은 필요하지 않고, 각 세션마다 무작위로 생성된 userId가 할당됩니다.

이는 프로젝트 시작 단계에서는 편리하지만, 다음과 같은 심각한 단점이 있습니다:

  • 도용 방지 보안 없음 → 누구나 임의의 userId를 주장 가능
  • 인벤토리나 통계는 클라이언트 측에서 제공되므로 쉽게 조작 가능
  • 사용자가 다른 사용자를 식별하거나 친구를 찾을 수 없음
  • 앱의 온라인 컴포넌트에 모두 무조건 접근 가능
  • 악의적인 사용자를 차단할 수 없음

이러한 이유로, 정식 출시 전에는 모든 앱에 반드시 인증(Authentication)을 추가할 것을 강력히 권장합니다.

Photon 자체는 사용자 계정을 제공하지 않지만, 서드파티 서비스를 손쉽게 통합할 수 있습니다.
설정이 완료되면, Photon은 서버 간 REST API를 사용하여 사용자를 인증하며, 해당 서비스는 Photon에 대한 접근을 허용하거나 거부할 수 있습니다.

익명 사용자

Photon 앱이 서버 측 인증을 요구하지 않더라도, 클라이언트는 항상 인증 요청을 전송해야 합니다.
기본 인증 요청은 CustomAuthenticationType.None을 사용하며, 클라이언트가 연결될 때 자동으로 처리됩니다.

클라이언트 코드에서 별도의 자격 증명(AuthenticationValues in .Net)을 설정하지 않으면, 서버는 세션이 끝날 때까지 유효한 새로운 GUID를 userId로 할당합니다.

클라이언트는 기본적으로 userId를 전송하여 스스로를 식별할 수 있지만, 이는 어떤 방식으로도 검증되지 않습니다.

클라이언트 측에서 userId를 저장하고 재사용하는 것은 사용자를 "식별" 하는 매우 단순한 방법이지만, 신원 도용에 매우 취약합니다. 따라서 반드시 서버 측 인증으로 대체해야 합니다.

익명 사용자 거부하기

앱에 인증 제공자를 설정한 후에도, 클라이언트는 여전히 AuthenticationValues.CustomAuthenticationType = CustomAuthenticationType.None을 사용하려 시도할 수 있습니다.
이러한 클라이언트를 거부하려면, 대시보드에서 앱별로 "Allow anonymous clients to connect" 옵션을 해제하세요.

인증 설정

인증은 서버 측과 클라이언트 간의 협력이 필요합니다.

애플리케이션(및 해당 AppId)별로, Photon 대시보드에서 먼저 설정해야 합니다.
여러 인기 있는 계정 서비스들이 미리 정의되어 있으며, 그 외의 서비스는 "Custom Server"로 추가할 수 있습니다.
이 설정은 서버 간 인증 호출에 필요한 자격 증명을 정의합니다.

클라이언트는 연결 시 항상 인증 요청을 전송합니다.
특정 인증 제공자를 통해 인증하려면, 연결 전에 AuthenticationValues를 설정해야 합니다.
필요한 값은 계정을 제공하는 서비스에 따라 달라집니다. 어떤 서비스는 단순히 사용자 이름과 비밀번호만 필요하지만, 다른 서비스는 자체 SDK나 API를 통해 로그인 및 토큰을 발급받아 Photon에서 검증할 수 있도록 합니다.

클라이언트의 AuthenticationValues.CustomAuthenticationType 값은 어떤 서비스를 사용할지 정의하므로, 여러 서비스를 조합하여 사용할 수 있습니다.

사전 정의된 제공자(Predefined Providers)

Photon은 인기 있는 계정 서비스 몇 가지를 직접 구현하여 사용을 단순화했습니다.
각 서비스마다 Photon 대시보드에서 시스템 간 연동을 위해 특정 값들을 입력해야 하며, 클라이언트 측에서는 CustomAuthenticationType enum의 해당 값을 사용합니다.

이러한 서비스들은 별도의 문서 페이지에서 자세히 설명됩니다.
클라이언트는 서비스별로 기대되는 값을 정확히 충족해야 합니다.

커스텀 인증 (Custom Authentication)

사전 정의된 제공자에 포함되지 않은 모든 서비스를 통합할 때는 커스텀 인증을 사용할 수 있습니다.
이미 보유한 사용자 기반을 Photon 타이틀로 가져오고 싶다면 커스텀 인증을 활용할 수 있습니다.

이를 위해 웹 서비스를 설정하여 Photon의 인증 요청에 응답해야 합니다.
응답을 통해 서비스는 Photon 접근을 허용하고, userId 또는 추가 값을 설정합니다.
클라이언트 측에서는 AuthType = CustomAuthenticationType.Custom을 사용합니다.

커스텀 인증 문서에는 필요한 REST API를 구현하고 구성하는 모든 세부 정보가 포함되어 있습니다.

PlayFab 연동

PlayFab은 인기 있는 "유저 백엔드 서비스"이지만, 인증은 커스텀 인증 방식으로 구현됩니다.

자세한 내용은 PlayFab 연동 문서를 참조하세요.

콘솔 플랫폼 인증

Photon은 대부분의 인기 있는 콘솔 플랫폼에 대한 인증 제공자를 제공합니다.
각 플랫폼별 인증은 관련 콘솔 문서 페이지에서 설명됩니다.

자세한 내용은 콘솔 문서 카테고리를 확인하세요.

음성(Voice) 및 채팅(Chat) 추가

Voice 및 Chat SDK는 별도의 솔루션이며 자체 인증 구성을 가집니다.

Voice와 Chat을 다른 SDK와 함께 사용할 경우, Fusion 또는 Quantum과 동일한 인증 옵션을 제공하도록 각 AppId를 설정하는 것을 권장합니다.

유니티용 Voice SDK에는 Fusion의 AuthenticationValues를 재사용할 수 있는 옵션도 포함되어 있습니다.

Back to top