Die Zielgruppe, wie sie vom IdP identifiziert wird. Sollte mit der lokalen Konfiguration abgeglichen werden.
email
string (UTF-8)
Die E-Mail-Adresse des Nutzers.
exp
string
Ablaufzeit.
iat
string
Ausstellungszeit.
iss
string
Der Tokenaussteller. Sollte anhand der vertrauenswürdigen Gruppe von Authentifizierungsstellenausstellern validiert werden.
google_email
string
Eine optionale Anforderung, die verwendet werden soll, wenn sich die E-Mail-Anforderung in diesem JWT von der Google Workspace-E-Mail-ID des Nutzers unterscheidet. Dieser Anspruch enthält die Google Workspace-E-Mail-Identität des Nutzers.
...
Ihr Key Access Control List Service (KACLS) kann beliebige andere Behauptungen (Standort, benutzerdefinierte Behauptung usw.) verwenden, um den Perimeter zu bewerten.
KACLS-Authentifizierungstoken für delegate
Das Authentifizierungstoken enthält ein JSON-Web-Token (JWT) (JWT: RFC 7516), das ein Inhaberauthentifizierungstoken ist.
Manchmal kann sich ein Nutzer nicht direkt auf einem Client authentifizieren.
In diesen Fällen kann der Nutzer den Zugriff auf eine bestimmte Ressource an diesen Client delegieren. Dies wird durch die Ausstellung eines neuen delegierten Authentifizierungstokens erreicht, das den Umfang des ursprünglichen Authentifizierungstokens einschränkt.
Das delegierte Authentifizierungstoken ähnelt dem normalen Authentifizierungstoken, enthält jedoch einen zusätzlichen Anspruch:
Behauptung
delegated_to
string
Eine Kennung für die Entität, an die die Authentifizierung delegiert werden soll.
Der resource_name-Anspruch im Authentifizierungstoken wird im Delegierungskontext verwendet, um das Objekt zu identifizieren, das mit dem Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) verschlüsselt wurde, für den die Delegierung gültig ist.
Das Token wird vom Key Access Control List Service (KACLS) mit dem Delegate-Aufruf ausgestellt. Dabei kann es sich entweder um selbstsignierte JWTs handeln, die KACLS validieren kann, oder KACLS kann dazu über einen vertrauenswürdigen Aufruf einen beliebigen anderen IdP verwenden.
Damit das delegierte Authentifizierungstoken als gültig betrachtet wird, muss für denselben Vorgang ein delegiertes Autorisierungstoken angegeben werden. Das delegierte Autorisierungstoken ähnelt dem normalen Autorisierungstoken, enthält aber die zusätzliche Anforderung delegated_to. Die Werte der Anforderungen delegated_to und resource_name müssen mit den Werten im delegierten Authentifizierungstoken übereinstimmen.
Wir empfehlen, für die delegierten Authentifizierungstokens eine Lebensdauer von 15 Minuten festzulegen, um eine mögliche Wiederverwendung im Falle eines Lecks zu vermeiden.
Der Tokenaussteller muss anhand der vertrauenswürdigen Authentifizierungsaussteller validiert werden.
aud
string
Die Zielgruppe, wie sie vom IdP identifiziert wird. Sollte mit der lokalen Konfiguration abgeglichen werden.
exp
string
Die Ablaufzeit sollte überprüft werden.
iat
string
Die Ausstellungszeit sollte überprüft werden.
delegated_to
string
Eine Kennung für die Entität, an die die Authentifizierung delegiert werden soll.
resource_name
string
Eine Kennung für das Objekt, das mit dem DEK verschlüsselt wurde und für das die Delegation gültig ist.
...
Das KACLS kann kostenlos andere Behauptungen (Standort, benutzerdefinierte Behauptung usw.) verwenden, um den Perimeter zu bewerten.
KACLS-Authentifizierungstoken für PrivilegedUnwrap
Inhabertoken (JWT: RFC 7516), das vom Identitätspartner (IdP) ausgestellt wird, um die Identität eines Nutzers zu bestätigen.
Diese Option wird nur auf PrivilegedUnwrap verwendet. Während PrivilegedUnwrap muss der KACLS-Empfänger, wenn ein KACLS-JWT anstelle eines IDP-Authentifizierungstokens verwendet wird, zuerst die JWKS des Ausstellers abrufen und dann die Tokensignatur überprüfen, bevor die Ansprüche geprüft werden.
Die Zielgruppe, wie sie vom IdP identifiziert wird. Für PrivilegedUnwrap-Vorgänge der clientseitigen Verschlüsselung von Drive (CSE) sollte dies kacls-migration sein.
exp
string
Ablaufzeit.
iat
string
Ausstellungszeit.
iss
string
Der Tokenaussteller. Sollte anhand der vertrauenswürdigen Gruppe von Authentifizierungsstellenausstellern validiert werden. Muss mit dem KACLS_URL des anfragenden KACLS übereinstimmen. Die öffentlichen Schlüssel des Ausstellers finden Sie unter /certs.
kacls_url
string
URL des aktuellen KACLS, auf dem die Daten entschlüsselt werden.
resource_name
string
Eine Kennung für das Objekt, das mit dem DEK verschlüsselt wurde. Maximale Größe: 128 Byte.
...
Ihr Key Access Control List Service (KACLS) kann beliebige andere Behauptungen (Standort, benutzerdefinierte Behauptung usw.) verwenden, um den Perimeter zu bewerten.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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. |"]]