기술 자료

지원

Multiplay Hosting

Multiplay Hosting

Authentication

Understand the authentication methods available for accessing Multiplay Hosting APIs and services.
읽는 시간 1분최근 업데이트: 10일 전

인증을 위해 사용해야 하는 방법은 Multiplay Hosting 서비스마다 조금씩 다릅니다.
서비스인증 유형
Unity 서비스 게이트웨이
https://services.api.unity.com
서비스 계정 키를 사용하는 기본 인증입니다.
Unity 게임 게이트웨이
https://multiplay.services.api.unity.com
토큰 교환으로 생긴 bearer 토큰입니다.
Multiplay Hosting 리소스를 변경하는 관리 API 호출은 Unity 서비스 게이트웨이를 사용합니다. 할당 및 할당 해제와 같은 게임 라이프사이클 API 호출은 Unity 게임 게이트웨이를 사용합니다.

서버 인증

서버 인증은 서버와 관련이 있으며, Multiplay Hosting 머신에서 실행할 때 확인할 수 있습니다. 이 인증은 게임 게이트웨이에서 사용할 수 있습니다. 다음과 같은 방법으로 Multiplay Hosting 토큰을 검색할 수 있습니다.
  • Authentication 패키지를 사용하는 스크립팅 API
  • 로컬 요청을 통한 수동 검색

Authentication 패키지를 사용하는 스크립팅 API

Authentication 패키지에서 다음 호출을 사용합니다.
await ServerAuthenticationService.Instance.SignInFromServerAsync();var token = ServerAuthenticationService.Instance.AccessToken;
서비스 계정을 사용하여 인증할 수도 있습니다.
await ServerAuthenticationService.Instance.SignInWithServiceAccountAsync(apiKeyIdentifier, apiKeySecret);
서비스 계정을 참고하십시오.

수동으로 토큰 가져오기

토큰은 로컬 요청을 통해 수동으로 가져올 수도 있습니다.
curl -X GET http://localhost:8086/v4/token
이 요청은 다음과 같은 포맷의 응답을 반환합니다.
{"token":"<BEARER_TOKEN>", "error":""}

서비스 계정

모든 API 인증에는 서비스 계정이 필요합니다. 수행하려는 요청에 적합한 역할이 포함된 서비스 계정이 없는 경우 서비스 계정 생성을 참조하십시오. 서비스 계정과 인증은 주로 관리 권한을 위한 것입니다. 서버 인증은 신뢰할 수 있는 게임 서비스 대신 사용됩니다.

Unity 서비스 게이트웨이

빌드, 빌드 구성, 플릿, 기타 Multiplay Hosting 리소스 등을 관리하기 위해 관리 API를 인증하려면 USG(Unity 서비스 게이트웨이)를 사용합니다. API 호출을 인증하려면 기본 인증을 사용합니다.
Authorization: Basic <base64(keyID:keySecret)>
위 예시에서 Key IDSecret key가 쉼표로 구분된 문자열을 생성하면 base64가 해당 문자열을 인코딩합니다. 다수의 HTTP 라이브러리와 툴에서 기본 인증을 위한 빌트인 지원이 제공됩니다. 여기서 Key ID를 사용자 이름으로, Secret key를 비밀번호로 사용할 수 있습니다.

예시(빌드 나열)

다음은 헤더를 생성한 다음 curl 요청에서 사용하여 빌드를 나열하기 위한 예시입니다.
Key IDSecret key
9250f578-9ff1-4b75-afcc-7eca1e94db56
5d7f1a66-f29d-45c8-a6aa-a84242aa805f
쉼표로 구분된 Key IDSecret key가 포함된 문자열을 생성하면 base64가 해당 문자열을 인코딩합니다. 그러면 다음과 같은 값을 얻게 됩니다.
OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg==
이제 다음과 같이 이 값을 인증 헤더에서 사용할 수 있습니다.
curl -X GET 'https://services.api.unity.com/multiplay/builds/v1/projects/<projectID>/environments/<environmentID>/builds \--header 'Authorization: Basic OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg=='
이 엔드포인트와 사용되는 파라미터(예:
projectID
,
environmentID
)에 대한 자세한 내용은 Game Server API 기술 자료를 참조하십시오.

Unity 게임 게이트웨이

Unity 게임 게이트웨이는 인증에 bearer 토큰을 사용합니다. bearer 토큰을 가져오려면 먼저 서비스 계정을 사용하여 Unity 게임 게이트웨이로부터 시간 제한 토큰을 요청해야 합니다.
  1. 토큰을 교환하여 액세스 토큰을 가져옵니다. 자세한 내용은 인증 API 기술 자료를 참조하십시오.
  2. 액세스 토큰과 bearer 인증을 함께 사용하여 Unity 게임 게이트웨이 엔드포인트에 요청을 보냅니다.
  3. 권장되는 베스트 프랙티스는 토큰을 재사용하는 것이지만, 토큰이 1시간 후에 만료되기 때문에 만료 전에 새로 고쳐야 합니다.
액세스 토큰은 RFC 7519를 따르는 JWT이며, JWT 라이브러리에서 이를 해석하여 정확한 만료 시간을 추출할 수 있습니다.

예시(할당 나열)

다음은 할당 나열 엔드포인트에 요청을 보내는 방법을 보여 주는 예시입니다. 다음 두 단계로 구성됩니다.
  1. 토큰을 교환하여 액세스 토큰을 가져옵니다. 자세한 내용은 인증 API 기술 자료를 참조하십시오.
  2. 액세스 토큰과 bearer 인증을 함께 사용하여 할당 나열 엔드포인트에 요청을 보냅니다.
# Get the token from the token exchange endpoint##get-the-token-from-the-token-exchange-endpointcurl -X POST 'https://services.api.unity.com/auth/v1/token-exchange?projectId=<projectID>&environmentId=<environmentID>' \--header 'Authorization: Basic <base64(keyID:keySecret)>' \--header 'Content-Type: application/json' \--data-raw '{ "scopes": []}'
그러면 다음과 같은 응답을 수신하게 됩니다.
{ "accessToken": <accessToken>}
Unity 게임 게이트웨이 서비스에 대한 후속 요청에서 문자열
accessToken
을 bearer 인증과 함께 사용할 수 있습니다. 할당을 나열하는 예는 다음과 같습니다.
# Make the list allocations request##make-the-list-allocations-requestcurl -X GET 'https://multiplay.services.api.unity.com/v1/allocations/projects/<projectID>/environments/<environmentID>/fleets/<fleetID>/allocations \--header 'Authorization: Bearer <accessToken>'
이 엔드포인트와 사용되는 파라미터(예:
projectID
,
environmentID
,
fleetID
)에 대한 자세한 내용은 Game Server API 기술 자료를 참조하십시오.