권한
k-ID Regulatory Hub의 권한은 전 세계적으로 하나 이상의 관할권에서 규정에 다루어지는 게임 기능의 분류를 나타냅니다. 권한은 게임의 Compliance Studio에서 구성됩니다. 게임 기능과 일치하는 각 k-ID 권한은 Compliance Studio에서 활성화되어야 합니다.
권한이란 무엇인가요?
권한은 부모 동의가 필요하거나 연령 제한이 있을 수 있는 게임의 기능이나 기능을 나타냅니다. 각 권한은 다음을 기반으로 플레이어에 대해 활성화되거나 비활성화될 수 있습니다:
- 연령 및 관할권
- 부모 동의(필요한 경우)
- Compliance Studio의 권한 구성
권한 구조
세션의 각 권한은 다음 구조를 가집니다:
{
"enabled": true,
"managedBy": "PLAYER",
"name": "text-chat-private"
}
권한 필드
name: 권한의 식별자(예:text-chat-private,in-game-purchases)enabled: 권한이 현재 플레이어에 대해 활성화되어 있는지 여부managedBy: 이 권한을 활성화하거나 비활성화할 수 있는 사람:PLAYER: 플레이어가 부모 동의 없이 이 권한을 직접 활성화/비활성화할 수 있음GUARDIAN: 신뢰할 수 있는 성인만 이 권한을 활성화/비활성화할 수 있음PROHIBITED: 현재 위치에서 현재 플레이어에 대해 이 권한이 절대 허용되지 않음
managedBy 필드는 정적이 아닙니다. 플레이어가 연령 상승하고 더 이상 부모 동의가 필요하지 않을 때 이전에 managedBy: "GUARDIAN"이었던 권한이 managedBy: "PLAYER"로 변경될 수 있습니다. 플레이어가 /session/upgrade API를 통해 PLAYER 관리 권한을 활성화하도록 요청하면 Challenge를 생성하지 않고 자동으로 활성화됩니다. 애플리케이션은 시간이 지나면서 세션을 비교하여 이러한 변경 사항을 처리해야 합니다.
누가 권한을 활성화할 수 있나요?
게임 코드는 각 k-ID 권한을 사용하여 게임에서 해당 기능에 대한 액세스를 제어해야 합니다. 권한의 enabled 필드가 true인 경우 게임에서 플레이어에 대해 기능을 활성화할 수 있음을 의미합니다. enabled 필드가 false인 경우 기능을 꺼야 합니다.
일부 관할권에서는 플레이어가 특정 연령인 경우 플레이어가 기능에 액세스하는 것이 허용되더라도 기본적으로 특정 기능을 꺼야 합니다(이를 때때로 "기본값으로 개인정보 보호" 요구 사항이라고 함). 이 경우 enabled는 false이고 managedBy 필드에 PLAYER가 포함됩니다.
기능이 신뢰할 수 있는 성인에 의해서만 켜지거나 꺼질 수 있는 경우 managedBy 필드의 값은 GUARDIAN입니다. 현재 위치에서 신뢰할 수 있는 성인의 동의와 관계없이 현재 플레이어에 대해 기능이 절대 허용되지 않는 경우 managedBy 필드에 값 PROHIBITED가 포함됩니다. 마지막 경우 게임은 기능을 꺼진 상태로 표시하는 대신 사용자 경험에서 금지된 기능을 완전히 제거하는 것이 적절합니다.
플레이어가 연령 상승하고 더 이상 부모 동의가 필요하지 않을 때 이전에 managedBy: "GUARDIAN"이었던 권한이 managedBy: "PLAYER"로 변경될 수 있어 플레이어가 직접 제어할 수 있게 됩니다. 플레이어가 /session/upgrade API를 통해 PLAYER 관리 권한을 활성화하도록 요청하면 Challenge를 생성하지 않고 자동으로 활성화됩니다. 게임은 플레이어가 이러한 권한을 관리할 수 있는 UI 컨트롤을 제공해야 합니다.
게임 기능에 권한 매칭
k-ID Regulatory Hub의 권한은 전 세계적으로 하나 이상의 관할권에서 규정에 다루어지는 게임 기능의 분류를 나타냅니다. 권한은 게임의 Compliance Studio에서 구성됩니다. 게임 기능과 일치하는 각 k-ID 권한은 Compliance Studio에서 활성화되어야 합니다. 선택한 k-ID 권한은 부모가 자녀가 게임을 플레이할 수 있도록 동의할 때 부모에게 제시됩니다.
k-ID 권한에 매핑된 게임의 기능을 표시할 때 Session을 확인하여 기능이 활성화되어 있는지, 플레이어가 기능을 켤 수 있는지 확인해야 합니다.
사용 가능한 권한
다음 권한은 Compliance Studio에서 사용할 수 있습니다:
소셜 권한
- 온라인 멀티플레이어 (
multiplayer) - 리더보드 및 순위 (
leaderboards-and-rankings) - 그룹 가입 (
join-groups) - 공개 프로필 (
public-profile) - 사용자 정의 아바타 (
custom-avatar) - 사용자 정의 사용자 이름 (
custom-username) - 텍스트 채팅(비공개) (
text-chat-private) - 텍스트 채팅(공개) (
text-chat-public) - 음성 채팅 (
voice-chat) - 비디오 채팅 (
video-chat) - 온라인 상태 (
online-status) - 공개 친구 목록 (
public-friend-list) - 친구 요청 보내기/수락 (
send-accept-friend-requests) - 타사 채팅 링크 (
link-to-third-party-chat) - 가상 이벤트 (
virtual-events) - 소셜 미디어 공유 (
share-to-social-media)
마케팅 권한
- 개인화된 추천 (
personalized-recommendations) - 타겟 광고 (
targeted-ads) - 프로파일링 (
profiling) - 푸시 알림 (
push-notifications) - 직접 마케팅 (
direct-marketing) - 포럼 (
forums)
상거래 권한
- 게임 내 구매 (
in-game-purchases) - 루트 박스 유료 코스메틱 전용 (
loot-boxes-paid-cosmetic-only) - 루트 박스 유료 게임플레이 영향 (
loot-boxes-paid-gameplay-impacting) - 루트 박스 컴푸 가차 (
loot-boxes-kompu-gacha) - 선물 보내기 (
send-gifts) - 시뮬레이션 도박 (
simulated-gambling) - 가상 재산 소유권 (
virtual-property-ownership)
콘텐츠 생성 또는 데이터 공유 권한
- 카메라 액세스 (
camera-access) - 게임 클립 스크린샷 공유 (
share-game-clips-screenshots) - 사진/비디오 공유 (
photo-video-sharing) - 정확한 위치 공유 (
real-time-location-sharing) - 사용자 생성 콘텐츠 (
mods) - 게임플레이 스트리밍 (
gameplay-streaming) - 게임플레이 녹화 (
gameplay-recording) - 타사 스트리밍 앱 링크 (
link-to-third-party-streaming-app)
고급 권한
- AI 생성 아바타 (
ai-generated-avatars) - 증강 현실 (
augmented-reality) - 성숙한 언어 (
mature-language) - 모션 데이터 (
motion-data) - AI 챗봇 (
ai-chatbot)
추가 권한 요청
플레이어가 권한이 있는 세션을 받은 후 추가 권한을 허용하고 싶을 수 있습니다. 권한은 다음과 같은 이유로 허용되지 않을 수 있습니다:
- 권한이 기본적으로 활성화되기 위한 연령 임계값 미만입니다.
- 권한에 필요한 절대 최소 연령 미만입니다.
- 권한은 부모/보호자의 동의가 있어야만 활성화할 수 있으며 동의 프로세스 중에 활성화되지 않았습니다.
세션 업그레이드 API 사용
/session/upgrade API를 사용하여 추가 권한을 활성화할 수 있습니다. managedBy 필드가 PLAYER로 설정된 요청된 권한은 즉시 활성화됩니다. managedBy가 GUARDIAN으로 설정된 권한이 있는 경우 권한 변경에 동의하기 위해 신뢰할 수 있는 성인이 완료해야 하는 Challenge가 생성됩니다.
요청 예시
POST /api/v1/session/upgrade
Content-Type: application/json
Authorization: Bearer your-api-key
{
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"requestedPermissions": [
{
"name": "voice-chat"
}
]
}
Challenge가 있는 응답 예시
권한에 보호자 동의가 필요한 경우 응답에 Challenge가 포함됩니다:
{
"status": "CHALLENGE",
"challenge": {
"challengeId": "683409f1-2930-4132-89ad-827462eed9af",
"oneTimePassword": "ABC123",
"type": "CHALLENGE_PARENTAL_CONSENT",
"url": "https://family.k-id.com/authorize?otp=ABC123"
}
}
Challenge가 없는 응답 예시
요청된 모든 권한을 플레이어가 활성화할 수 있는 경우 응답에 업데이트된 세션이 포함됩니다:
{
"status": "PASS",
"session": {
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"permissions": [
{
"enabled": true,
"managedBy": "PLAYER",
"name": "voice-chat"
}
]
}
}
부모 동의 요청
권한을 활성화하기 위해 신뢰할 수 있는 성인 동의가 필요한 경우 응답에 challenge가 포함됩니다. 이 Challenge는 초기 연령 게이트 프로세스와 유사하게 QR 코드, OTP 또는 이메일을 사용하여 공유할 수 있습니다. 자세한 내용은 Challenge를 참조하세요.
생활 품질 차이 중 하나는 /challenge/send-email API를 이메일 주소를 지정하지 않고 사용할 수 있으며 API가 플레이어에 대한 권한을 가장 최근에 승인한 신뢰할 수 있는 성인에게 이메일을 보낸다는 것입니다. 이를 통해 플레이어는 자신의 이메일 주소를 지정하지 않고 권한 변경을 요청할 수 있습니다. API를 호출하기 전에 세션의 hasApproverEmail 플래그를 확인하여 세션에 이미 연결된 이메일 주소가 있는지 확인할 수 있습니다. 연결된 이메일 주소를 찾을 수 없는 경우 /challenge/send-email API는 INVALID_EMAIL 오류 코드로 응답하며 QR 코드 제공, OTP 제공 또는 플레이어에게 신뢰할 수 있는 성인의 이메일 주소를 입력하도록 요청하는 것과 같은 다른 방법으로 대체해야 합니다.
업그레이드 흐름 처리
- 권한 확인: 업그레이드를 요청하기 전에 현재 세션을 확인하여 사용 가능한 권한과 보호자 동의가 필요한 권한 확인
- 업그레이드 요청: 요청된 권한으로
/session/upgrade호출 - Challenge 처리: Challenge가 반환되면 초기 VPC 흐름과 동일한 워크플로 따르기
- 세션 업데이트: 동의가 부여되면
/session/get를 사용하여 업데이트된 세션 검색