콘텐츠로 이동

추가 보안 적용

게스트 계정과 유저네임 계정은 외부 인증 제공자의 검증을 거치지 않습니다. 따라서 앱 클라이언트를 위조한 요청만으로도 계정이 무한정 만들어질 수 있습니다. grant key는 이 위험을 막는 사전 인가 값입니다. 앱 서버가 Hive Axyl 인증 서버에서 grant key를 발급받아 앱 클라이언트에 전달합니다. 앱 클라이언트가 계정 생성 요청에 이 값을 함께 보내면 Hive Axyl 인증 서버는 앱 서버가 미리 승인한 요청만 처리합니다.

grant key는 발급 후 60초 동안만 유효한 1회용 값입니다. 계정 생성 요청에 사용되면 즉시 소비되므로 재사용할 수 없습니다.

추가 보안은 Hive 콘솔의 로그인 설정에서 추가 보안 적용을 선택해 켜고, 추가 보안 적용 중을 다시 선택해 끕니다. 적용한 순간부터 grant key가 없는 계정 생성 요청은 모두 거부되므로, 앱 서버가 grant key를 발급하고 앱 클라이언트가 이를 전달하는 구현을 모두 마친 뒤에 적용하세요. 콘솔에서 켜고 끄는 절차는 로그인 설정을 참조하세요.

구현 순서

grant key 검증은 앱 서버, 앱 클라이언트, Hive Axyl 인증 서버가 함께 처리합니다.

  1. 앱 클라이언트가 앱 서버에 계정 생성을 요청합니다. 이때 앱 서버는 자체 정책으로 요청이 정상인지 판단합니다.
  2. 앱 서버가 사전 인가 키 발급을 호출해 grant key를 받습니다. 이 API는 앱 서버가 호출하며, Hive Axyl SDK는 발급 메서드를 제공하지 않습니다.
  3. 앱 서버가 받은 grant key를 앱 클라이언트에 전달합니다.
  4. 앱 클라이언트가 계정 생성 메서드를 호출할 때 요청 객체의 GrantKey 필드에 그 값을 넣어 보냅니다.
  5. Hive Axyl 인증 서버가 grant key를 검증합니다. 유효하면 계정 생성을 처리하고, 유효하지 않거나 누락되었으면 요청을 거부합니다.

grant key는 60초 안에 소비해야 하므로, 2단계부터 4단계까지를 사용자 입력 대기 없이 이어서 처리하세요.

grant key 발급

앱 서버는 인가할 인증 행위 유형을 지정해 grant key를 요청합니다. 인증 행위 유형은 아래와 같습니다.

  • GUEST_CREATE: 게스트 계정 생성
  • USERNAME_CREATE: 유저네임 계정 생성
  • CUSTOM_LOGIN: 커스텀 계정 로그인
  • CUSTOM_LINK: 커스텀 계정 연동

응답으로 grantKey와 발급 시각이 반환됩니다. 요청 필드와 응답 상세는 사전 인가 키 발급을 참조하세요.

커스텀 계정은 추가 보안 설정과 관계없이 grant key가 항상 필요하며, 구현 방법은 커스텀 계정 연동을 참조하세요.

Hive Axyl SDK가 제공하는 값

Hive Axyl SDK는 앱 서버가 발급한 grant key를 계정 생성 요청에 실어 보내는 필드를 제공합니다.

추가 보안이 꺼져 있어도 GrantKey를 보낼 수 있습니다. 보낸 값은 Hive Axyl 인증 서버가 설정과 관계없이 항상 검증하고 소비합니다. Hive 콘솔에서 추가 보안을 켜는 순간 계정 생성이 거부되지 않도록, 앱 서버가 발급한 grant key를 항상 함께 보내도록 구현하는 것을 권장합니다.

응답 상태

grant key와 관련해 계정 생성 메서드가 반환하는 결과는 아래와 같습니다. 나머지 결과는 각 계정 생성 문서의 응답 상태를 참조하세요.

응답 케이스 설명 앱 클라이언트 대응
InvalidGrantKey grant key가 유효하지 않거나 만료된 경우 앱 서버에서 grant key를 다시 발급받아 재시도
GrantRequiredMissing 추가 보안이 적용된 앱인데 GrantKey를 보내지 않은 경우 grant key 전달 흐름이 동작하는지 점검

연관 문서