메서드: delegate

이 호출은 엔티티가 원래 인증 JWT에서 인증된 사용자를 대신하여 지정된 리소스에 액세스할 수 있도록 하는 새로운 인증 JSON 웹 토큰 (JWT)을 반환합니다. 이 속성은 다른 항목이 사용자를 대신하여 작동해야 하는 경우 범위가 지정된 액세스 권한을 wrap 또는 unwrap에 위임하는 데 사용됩니다.

HTTP 요청

POST https://<base_url>/delegate

<base_url>을 키 액세스 제어 목록 서비스 (KACLS) URL로 바꿉니다.

경로 매개변수

없음

요청 본문

요청 본문에는 요청의 JSON 표현이 포함됩니다.

JSON 표현
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
필드
authentication

string

사용자가 누구인지 어설션하는 서드 파티에서 발급한 JWT입니다. 자세한 내용은 인증 섹션을 참고하세요.

authorization

string

delegated_to 클레임으로 식별된 항목이 사용자를 대신하여 resource_name에 액세스할 수 있음을 어설션하는 delegated_toresource_name 클레임이 있는 JWT입니다. 자세한 내용은 승인 토큰을 참고하세요.

reason

string (UTF-8)

작업에 관한 추가 컨텍스트를 제공하는 통과 JSON 문자열입니다. 제공된 JSON은 표시되기 전에 정리해야 합니다. 최대 크기: 1KB

필수 처리 단계

KACLS는 다음 단계를 하나 이상 실행해야 합니다.

  • 승인 및 인증 토큰을 모두 검증합니다. 자세한 내용은 승인 토큰인증 토큰을 참고하세요.
  • 승인 및 인증 토큰이 동일한 사용자를 위한 것인지 확인합니다. 자세한 내용은 데이터 암호화 및 복호화를 참고하세요.
  • 승인 토큰의 kacls_url 클레임이 현재 KACLS URL과 일치하는지 확인합니다. 이를 통해 내부자 또는 악성 도메인 관리자가 구성한 잠재적인 중간자 서버를 감지할 수 있습니다.
  • 승인 토큰에 kacls_owner_domain 클레임이 있는 경우 값이 KACLS 소유자의 Google Workspace 도메인과 일치하는지 확인합니다. 이렇게 하면 승인되지 않은 사용자가 Google에 KACLS를 등록하는 것을 방지할 수 있습니다.
  • 작업을 기록합니다. 여기에는 작업을 시작한 사용자, delegated_to, resource_name, 요청에 전달된 이유가 포함됩니다.
  • 승인 토큰에서 delegated_toresource_name 클레임을 포함하는 JWT 토큰을 생성하고 서명하고 반환합니다.

KACLS는 JWT 클레임 기반 검사를 비롯한 추가 보안 검사를 무료로 실행할 수 있습니다.

응답 본문

성공하면 이 메서드는 delegated_toresource_name 클레임이 포함된 인증 JWT를 반환합니다. 이 토큰은 나중에 Wrap 및 Unwrap 메서드 호출 시 인증에 사용할 수 있습니다. 오류가 발생한 경우 구조화된 오류 응답을 반환해야 합니다.

JSON 표현
{
  "delegated_authentication": string
}
필드
delegated_authentication

string

원래 인증 JWT에 언급된 사용자가 resource_name에 액세스하는 데 유효한 위임된 인증 JWT입니다. 자세한 내용은 delegate용 KACLS 인증 토큰을 참고하세요.

요청

POST https://mykacls.example.com/v1/delegate
{
  "authentication": "eyJhbGciOi...",
  "authorization": "eyJhbGciOi...delegated_to\":\"other_entity_id\",\"resource_name\":\"meeting_id\"...}",
  "reason": "{client:'meet' op:'delegate_access'}"
}

응답

{
  "delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}