認証トークン
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ユーザーの ID を証明するために ID パートナー(IdP)によって発行される署名なしトークン(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 認証トークン
認証トークンには、署名なし認証トークンである JSON ウェブトークン(JWT)(JWT: RFC 7516)が含まれています。
クライアントでユーザーを直接認証できない場合があります。このような場合、ユーザーは特定のリソースへのアクセス権をそのクライアントに委任できます。これは、元の認証トークンのスコープを制限する新しい委任認証トークンを発行することで実現されます。
委任された認証トークンは、通常の認証トークンと似ていますが、次の 1 つの追加クレームがあります。
申し立て |
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 を証明するために ID パートナー(IdP)によって発行される署名なしトークン(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 によって識別されたオーディエンス。ドライブのクライアントサイド暗号化(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)は、他のクレーム(位置情報、カスタム クレームなど)を使用して境界を評価できます。
|
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は 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. |"]]