인증 토큰
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
사용자의 신원을 증명하기 위해 ID 파트너 (IdP)가 발급한 Bearer 토큰 (JWT: RFC 7516)입니다.
JSON 표현 |
{
"aud": string,
"email": string,
"exp": string,
"iat": string,
"iss": string,
"google_email": string,
...
}
|
필드 |
aud |
string
IdP에서 식별한 잠재고객입니다. 로컬 구성에 대해 확인해야 합니다.
|
email |
string (UTF-8)
사용자의 이메일 주소
|
exp |
string
만료 시간입니다.
|
iat |
string
발급 시간입니다.
|
iss |
string
토큰 발급기관입니다. 신뢰할 수 있는 인증 발급자 집합에 대해 검증해야 합니다.
|
google_email |
string
이 JWT의 이메일 클레임이 사용자의 Google Workspace 이메일 ID와 다른 경우에 사용되는 선택적 클레임입니다. 이 클레임은 사용자의 Google Workspace 이메일 ID를 전달합니다.
|
... |
키 액세스 제어 목록 서비스 (KACLS)는 다른 클레임 (위치, 맞춤 클레임 등)을 사용하여 경계를 평가할 수 있습니다.
|
delegate
의 KACLS 인증 토큰
인증 토큰에는 Bearer 인증 토큰인 JSON 웹 토큰 (JWT) (JWT: RFC 7516)이 포함되어 있습니다.
사용자가 클라이언트에서 직접 인증할 수 없는 경우가 있습니다.
이 경우 사용자는 특정 리소스에 대한 액세스 권한을 해당 클라이언트에 위임할 수 있습니다. 이는 원래 인증 토큰의 범위를 제한하는 새로운 위임된 인증 토큰을 발급하여 달성됩니다.
위임된 인증 토큰은 일반 인증 토큰과 비슷하지만 다음과 같은 클레임이 하나 더 있습니다.
주장 |
delegated_to |
string
인증을 위임할 항목의 식별자입니다.
|
인증 토큰의 resource_name
클레임은 위임 컨텍스트에서 위임이 유효한 데이터 암호화 키 (DEK)로 암호화된 객체를 식별하는 데 사용됩니다.
이 토큰은 Delegate
호출을 사용하여 키 액세스 제어 목록 서비스 (KACLS)에서 발급합니다. KACLS가 검증할 수 있는 자체 서명 JWT일 수도 있고, KACLS가 신뢰할 수 있는 호출을 통해 다른 IdP를 사용하여 이를 수행할 수도 있습니다.
위임된 인증 토큰이 유효한 것으로 간주되려면 동일한 작업에 대해 위임된 승인 토큰이 제공되어야 합니다. 위임된 승인 토큰은 일반 승인 토큰과 유사하지만 추가 클레임 delegated_to
이 포함되어 있습니다. delegated_to
및 resource_name
클레임의 값은 위임된 인증 토큰의 값과 일치해야 합니다.
유출 시 재사용될 가능성을 방지하기 위해 위임된 인증 토큰의 수명을 15분으로 설정하는 것이 좋습니다.
JSON 표현 |
{
"email": string,
"iss": string,
"aud": string,
"exp": string,
"iat": string,
"google_email": string,
"delegated_to": string,
"resource_name": string
...
}
|
필드 |
email |
string (UTF-8)
사용자의 UTF-8 형식 이메일 주소입니다.
|
iss |
string
토큰 발급자는 신뢰할 수 있는 인증 발급자 집합에 대해 검증해야 합니다.
|
aud |
string
IdP에서 식별한 잠재고객입니다. 로컬 구성에 대해 확인해야 합니다.
|
exp |
string
만료 시간을 확인해야 합니다.
|
iat |
string
발급 시간을 확인해야 합니다.
|
delegated_to |
string
인증을 위임할 항목의 식별자입니다.
|
resource_name |
string
위임이 유효한 DEK로 암호화된 객체의 식별자입니다.
|
... |
KACLS는 다른 클레임 (위치, 맞춤 클레임 등)을 사용하여 경계를 평가할 수 있습니다.
|
PrivilegedUnwrap
의 KACLS 인증 토큰
사용자의 신원을 증명하기 위해 ID 파트너 (IdP)가 발급한 Bearer 토큰 (JWT: RFC 7516)입니다.
이 값은 PrivilegedUnwrap
에서만 사용됩니다. PrivilegedUnwrap
중에 IDP 인증 토큰 대신 KACLS JWT를 사용하는 경우 수신자 KACLS는 먼저 발급자의 JWKS를 가져온 다음 클레임을 확인하기 전에 토큰 서명을 확인해야 합니다.
JSON 표현 |
{
"aud": string,
"exp": string,
"iat": string,
"iss": string,
"kacls_url": string,
"resource_name": string
...
}
|
필드 |
aud |
string
IdP에서 식별한 잠재고객입니다. Drive 클라이언트 측 암호화 (CSE) PrivilegedUnwrap 작업의 경우 kacls-migration 여야 합니다.
|
exp |
string
만료 시간입니다.
|
iat |
string
발급 시간입니다.
|
iss |
string
토큰 발급기관입니다. 신뢰할 수 있는 인증 발급자 집합에 대해 검증해야 합니다. 요청하는 KACLS의 KACLS_URL 와 일치해야 합니다. 발급자의 공개 키 세트는 /certs 에서 확인할 수 있습니다.
|
kacls_url |
string
데이터가 복호화되는 현재 KACLS의 URL입니다.
|
resource_name |
string
DEK로 암호화된 객체의 식별자입니다. 최대 크기: 128바이트
|
... |
키 액세스 제어 목록 서비스 (KACLS)는 다른 클레임 (위치, 맞춤 클레임 등)을 사용하여 경계를 평가할 수 있습니다.
|
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-04(UTC)
[null,null,["최종 업데이트: 2025-08-04(UTC)"],[[["\u003cp\u003eKACLS uses bearer tokens (JWTs) issued by an identity provider (IdP) to verify user identity and authorize access.\u003c/p\u003e\n"],["\u003cp\u003eJWTs contain essential claims like audience, email, expiration, issuance, issuer, and potentially a Google Workspace email for specific scenarios.\u003c/p\u003e\n"],["\u003cp\u003eFor \u003ccode\u003ePrivilegedUnwrap\u003c/code\u003e operations, a KACLS JWT is used, requiring the recipient KACLS to verify the token signature and claims after fetching the issuer's JWKS.\u003c/p\u003e\n"],["\u003cp\u003eKACLS JWTs include specific claims like \u003ccode\u003ekacls_url\u003c/code\u003e and \u003ccode\u003eresource_name\u003c/code\u003e relevant to the decryption process.\u003c/p\u003e\n"],["\u003cp\u003eKACLS offers flexibility by allowing the use of additional claims for perimeter evaluation and custom authorization logic.\u003c/p\u003e\n"]]],["The document outlines two types of Bearer tokens (JWTs) used for user identity and KACLS authentication. User identity tokens, issued by the IdP, include fields like `aud`, `email`, `exp`, `iat`, `iss`, and `google_email` for email verification. KACLS authentication tokens, used during `PrivilegedUnwrap`, contain `aud` (specifically `kacls-migration`), `exp`, `iat`, `iss`, `kacls_url`, and `resource_name`. KACLS must verify the KACLS JWT's signature and claims after fetching the issuer's JWKS. Both types allow for custom claims.\n"],null,["# Authentication tokens\n\nBearer token ([JWT: RFC 7516](https://tools.ietf.org/html/rfc7516))\nissued by the identity partner (IdP) to attest a user's identity.\n\n| JSON representation ||\n|----------------------------------------------------------------------------------------------------------------------|---|\n| ``` { \"aud\": string, \"email\": string, \"exp\": string, \"iat\": string, \"iss\": string, \"google_email\": string, ... } ``` |\n\n| Fields ||\n|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `aud` | `string` The audience, as identified by the IdP. Should be checked against the local configuration. |\n| `email` | `string (UTF-8)` The user's email address. |\n| `exp` | `string` Expiration time. |\n| `iat` | `string` Issuance time. |\n| `iss` | `string` The token issuer. Should be validated against the trusted set of authentication issuers. |\n| `google_email` | `string` An optional claim, to be used when the email claim in this JWT is different from the user's Google Workspace email ID. This claim carries the user's Google Workspace email identity. |\n| `...` | Your Key Access Control List Service (KACLS) is free to use any other claims (location, custom claim, etc) to evaluate the perimeter. |\n\nKACLS authentication token for `delegate`\n-----------------------------------------\n\nThe authentication token contains a JSON Web Token (JWT) ([JWT: RFC 7516](https://tools.ietf.org/html/rfc7516))\nthat is a bearer authentication token.\n\nSometimes a user is not able to authenticate on a client directly.\nIn these cases the user can delegate their access to a specific\nresource to that client. This is achieved through issuing a new\ndelegated authentication token that limits the scope of the original\nauthentication token.\n\nThe delegated authentication token is similar to the ordinary\nauthentication token with one additional claim:\n\n| claim ||\n|----------------|----------------------------------------------------------------------|\n| `delegated_to` | `string` An identifier for the entity to delegate authentication to. |\n\nThe `resource_name` claim in the authentication token is, in a\ndelegation context, used for identifying the object encrypted by the\nData Encryption Key (DEK) for which the delegation is valid.\n\nThe token is issued by the Key Access Control List Service (KACLS)\nusing the `Delegate` call. It may be either self-signed JWTs\nthat KACLS is able to validate, or KACLS may use any other IdP to do\nthat, through a trusted call.\n\nIn order for the delegated authentication token to be considered valid, a\ndelegated authorization token must be provided for the same operation. The\ndelegated authorization token is similar to the ordinary authorization token,\nbut contains the additional claim `delegated_to`. The values of the\n`delegated_to` and `resource_name` claims must match the values in the\ndelegated authentication token.\n\nWe recommend that you set a lifetime value of 15 minutes for the delegated\nauthentication tokens to avoid potential reuse in case of leakage.\n\n| JSON representation ||\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|\n| ``` { \"email\": string, \"iss\": string, \"aud\": string, \"exp\": string, \"iat\": string, \"google_email\": string, \"delegated_to\": string, \"resource_name\": string ... } ``` |\n\n| Fields ||\n|-----------------|-------------------------------------------------------------------------------------------------------|\n| `email` | `string (UTF-8)` The user's UTF-8 formatted email address. |\n| `iss` | `string` The token issuer, should be validated against the trusted set of authentication issuers. |\n| `aud` | `string` The audience, as identified by the IdP. Should be checked against the local configuration. |\n| `exp` | `string` Expiration time, should be checked. |\n| `iat` | `string` Issuance time, should be checked. |\n| `delegated_to` | `string` An identifier for the entity to delegate authentication to. |\n| `resource_name` | `string` An identifier for the object encrypted by the DEK, for which the delegation is valid. |\n| `...` | The KACLS is free to use any other claims (location, custom claim, etc...) to evaluate the perimeter. |\n\nKACLS authentication token for `PrivilegedUnwrap`\n-------------------------------------------------\n\nBearer token ([JWT: RFC 7516](https://tools.ietf.org/html/rfc7516))\nissued by the identity partner (IdP) to attest a user's identity.\n\nThis is only used on `PrivilegedUnwrap`. During `PrivilegedUnwrap`, if a KACLS\nJWT is used in place of an IDP authentication token, the recipient KACLS must\nfirst fetch the JWKS of the issuer, then verify the token signature, before\nchecking the claims.\n\n| JSON representation ||\n|--------------------------------------------------------------------------------------------------------------------------|---|\n| ``` { \"aud\": string, \"exp\": string, \"iat\": string, \"iss\": string, \"kacls_url\": string, \"resource_name\": string ... } ``` |\n\n| Fields ||\n|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `aud` | `string` The audience, as identified by the IdP. For Drive client-side encryption (CSE) `PrivilegedUnwrap` operations, this should be `kacls-migration`. |\n| `exp` | `string` Expiration time. |\n| `iat` | `string` Issuance time. |\n| `iss` | `string` The token issuer. Should be validated against the trusted set of authentication issuers. Must match the `KACLS_URL` of the requesting KACLS. The public key set of the issuer can be found at /certs. |\n| `kacls_url` | `string` URL of current KACLS, that the data is being decrypted on. |\n| `resource_name` | `string` An identifier for the object encrypted by the DEK. Maximum size: 128 bytes. |\n| `...` | Your Key Access Control List Service (KACLS) is free to use any other claims (location, custom claim, etc) to evaluate the perimeter. |"]]