Authentication
Understand the authentication methods available for accessing Multiplay Hosting APIs and services.
읽는 시간 1분최근 업데이트: 10일 전
인증을 위해 사용해야 하는 방법은 Multiplay Hosting 서비스마다 조금씩 다릅니다.
| 서비스 | 인증 유형 |
Unity 서비스 게이트웨이 | 서비스 계정 키를 사용하는 기본 인증입니다. |
Unity 게임 게이트웨이 | 토큰 교환으로 생긴 bearer 토큰입니다. |
서버 인증
서버 인증은 서버와 관련이 있으며, 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 호출을 인증하려면 기본 인증을 사용합니다.위 예시에서 Key ID와 Secret key가 쉼표로 구분된 문자열을 생성하면 base64가 해당 문자열을 인코딩합니다. 다수의 HTTP 라이브러리와 툴에서 기본 인증을 위한 빌트인 지원이 제공됩니다. 여기서 Key ID를 사용자 이름으로, Secret key를 비밀번호로 사용할 수 있습니다.Authorization: Basic <base64(keyID:keySecret)>
예시(빌드 나열)
다음은 헤더를 생성한 다음 curl 요청에서 사용하여 빌드를 나열하기 위한 예시입니다.| Key ID | Secret key |
| |
이제 다음과 같이 이 값을 인증 헤더에서 사용할 수 있습니다.OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg==
이 엔드포인트와 사용되는 파라미터(예:curl -X GET 'https://services.api.unity.com/multiplay/builds/v1/projects/<projectID>/environments/<environmentID>/builds \--header 'Authorization: Basic OTI1MGY1NzgtOWZmMS00Yjc1LWFmY2MtN2VjYTFlOTRkYjU2OjVkN2YxYTY2LWYyOWQtNDVjOC1hNmFhLWE4NDI0MmFhODA1Zg=='
projectIDenvironmentIDUnity 게임 게이트웨이
Unity 게임 게이트웨이는 인증에 bearer 토큰을 사용합니다. bearer 토큰을 가져오려면 먼저 서비스 계정을 사용하여 Unity 게임 게이트웨이로부터 시간 제한 토큰을 요청해야 합니다.- 토큰을 교환하여 액세스 토큰을 가져옵니다. 자세한 내용은 인증 API 기술 자료를 참조하십시오.
- 액세스 토큰과 bearer 인증을 함께 사용하여 Unity 게임 게이트웨이 엔드포인트에 요청을 보냅니다.
- 권장되는 베스트 프랙티스는 토큰을 재사용하는 것이지만, 토큰이 1시간 후에 만료되기 때문에 만료 전에 새로 고쳐야 합니다.
예시(할당 나열)
다음은 할당 나열 엔드포인트에 요청을 보내는 방법을 보여 주는 예시입니다. 다음 두 단계로 구성됩니다.- 토큰을 교환하여 액세스 토큰을 가져옵니다. 자세한 내용은 인증 API 기술 자료를 참조하십시오.
- 액세스 토큰과 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": []}'
Unity 게임 게이트웨이 서비스에 대한 후속 요청에서 문자열{ "accessToken": <accessToken>}
accessToken이 엔드포인트와 사용되는 파라미터(예:# 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>'
projectIDenvironmentIDfleetID