싱글 사인 온

작동 방식

사용자 인증용 일반 단일 계정에 복수의 서비스가 연결되어 있는 경우, 싱글 사인 온을 사용할 수 있습니다. 게임 웹사이트는 서비스로써 작동증용 일반 단일 계정에 복수의 서비스가 연결되어 있는 경우, 싱글 사인 온을 사용할 수 있습니다. 게임 웹사이트는 서비스로써 작동하므로 사용자는 자격 증명을 1회만 입력해도 됩니다. 그 이후로는, 연결된 서비스 중 하나를 열 때 사용자 인증은 이미 이루어진 것입니다.

상호작용 절차

  1. 미인증 사용자가 서비스 중 하나를 엽니다.
  2. 클라이언트가 Check user authentication 요청을 엑솔라 로그인 서버로 보내고 에러 401이 발생합니다.
  3. 클라이언트가 사용자 인증 양식(로그인 위젯 혹은 로그인 UI)을 엽니다 .
  4. 사용자는 사용자 이름과 비밀번호 혹은 SNS를 통해 인증합니다.

  1. 클라이언트는 로그인 프로젝트에서 사용자를 인증합니다:
    • 다음 요청은 로그인을 API 호출를 통해 통합할 때 쓰입니다:
    • OAuth 2.0 프로토콜은 로그인을 위젯을 통해 통합할 때 쓰입니다.
    사용자 세션 데이터는 엑솔라 로그인 서버에 저장됩니다. 서버는 login_uri를 보내는데 이는 redirect_uri를 포함하며 code가 쿼리 매개변수에 있습니다.

  1. 클라이언트는 사용자를 redirect_uri로 리디렉션 시킵니다.
  2. 서버는 Generate JWT 요구를 보내서 JWT를 위한 code를 교환합니다. 사용자는 서비스 상에서 인증됩니다.
  3. 사용자가 다른 서비스를 엽니다.
  4. 클라이언트는 Check user authentication 요청을 엑솔라 로그인 서버로 보내고 login_uri를 받는데 이는 redirect_uri를 포함하며 쿼리 매개변수에 code를 동반합니다.
  5. 서버는 Generate JWT 요청을 보내서 JWT를 위한 수신한 code를 교환합니다. 사용자는 두 번째 서비스 상에서 인증됩니다.

상이한 서비스에 대한 접근권 구분

상이한 서비스에 대한 사용자 계정 접근권을 구분하기 위하여 다른 OAuth 2.0 클라이언트에 scope 매개변수(예 scope=playfab)의 특수한 값을 사용할 수 있습니다.

사용자

로그인을 통합하고 엑솔라 데이터베이스 혹은 PlayFab을 사용하는 파트너.

획득 방법

싱글 사인 온 연결 방법:

  1. OAuth 2.0 프로토콜을 연결합니다. 사용자 세션 요청 취득 콜백을
  2. 구현합니다.

OAuth 2.0 프로토콜 연결

지침를 따라 OAuth 2.0 프로토콜을 연결합니다. 모든 서비스에 하나의 OAuth 2.0 클라이언트를 사용하거나 모든 서비스 하나하나를 위한 별도의 OAuth 2.0 클라이언트를 생성할 수 있습니다.

사용자 세션 가져오기 요청 호출

서비스를 열 때 Check user authentication 요청 콜백을 구현합니다. 요청은 사용자를 위한 인증 양식을 열기 전에 실행되어야 합니다. 인증을 위해서는 사용자가 인증을 원하는 정확한 서비스의 OAuth 2.0 클라이언트 매개 변수를 사용하세요.

요청 사례:

Copy
Full screen
Small screen
http
  • http
  • curl
GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
curl --request GET \
  --url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'

사용자 인증 시 응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "login_url": "<redirect_uri>?code=<code>"
}

사용자 JWT 획득 방법:

  1. 클라이언트는 사용자를 수신한 redirect_uri로 리디렉션하는 요청을 구현하고 적용합니다.
  2. 서버는 JWT를 얻기 위해 Generate JWT 요청과 함께 수신한 codegrant_type=authorization_code를 보냅니다.

사용자 인증 실패 시 응답 예제:

Copy
Full screen
Small screen
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": {
    "code": "003-040",
    "description": "User is unauthorized."
  }
}

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2021년 6월 9일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누릅니다.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!