Methode: delegate

Dieser Aufruf gibt ein neues JSON Web Token (JWT) für die Authentifizierung zurück, mit dem eine Identität im Namen des Nutzers, der im ursprünglichen Authentifizierungs-JWT authentifiziert wurde, auf eine bestimmte Ressource zugreifen kann. Sie wird verwendet, um den Zugriff mit eingeschränktem Umfang auf wrap oder unwrap an eine andere Entität zu delegieren, wenn diese im Namen des Nutzers handeln muss.

HTTP-Anfrage

POST https://<base_url>/delegate

Ersetzen Sie <base_url> durch die URL des Key Access Control List Service (KACLS).

Pfadparameter

Keine.

Anfragetext

Der Anfragetext enthält eine JSON-Darstellung der Anfrage:

JSON-Darstellung
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Felder
authentication

string

Ein von einem Drittanbieter ausgestelltes JWT, das angibt, wer der Nutzer ist. Weitere Informationen finden Sie im Abschnitt zur Authentifizierung.

authorization

string

Ein JWT mit den Anforderungen delegated_to und resource_name, in denen bestätigt wird, dass die durch die Anforderung delegated_to identifizierte Entität im Namen des Nutzers auf resource_name zugreifen darf. Weitere Informationen finden Sie unter Autorisierungstokens.

reason

string (UTF-8)

Ein Passthrough-JSON-String, der zusätzlichen Kontext zum Vorgang enthält. Das bereitgestellte JSON sollte bereinigt werden, bevor es angezeigt wird. Maximale Größe: 1 KB.

Erforderliche Verarbeitungsschritte

Der KACLS muss mindestens die folgenden Schritte ausführen:

  • Sowohl Autorisierungs- als auch Authentifizierungstokens validieren Weitere Informationen finden Sie unter Autorisierungstokens und Authentifizierungstokens.
  • Prüfen Sie, ob Autorisierungs- und Authentifizierungstokens für denselben Nutzer gelten. Weitere Informationen finden Sie unter Daten verschlüsseln und entschlüsseln.
  • Prüfen Sie, ob die Anforderung kacls_url im Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. So können potenzielle Man-in-the-Middle-Server erkannt werden, die von Insidern oder betrügerischen Domainadministratoren konfiguriert wurden.
  • Wenn der Anspruch kacls_owner_domain im Autorisierungstoken vorhanden ist, prüfen Sie, ob der Wert mit der Google Workspace-Domain des KACLS-Inhabers übereinstimmt. So wird verhindert, dass nicht autorisierte Nutzer Ihre KACLS bei Google registrieren.
  • Protokolliere den Vorgang, einschließlich des Nutzers, der ihn initiiert hat, der delegated_to, der resource_name und des in der Anfrage übergebenen Grunds.
  • Generieren, signieren und geben Sie ein JWT-Token mit den Ansprüchen delegated_to und resource_name aus dem Autorisierungstoken zurück.

Der KACLS kann zusätzliche Sicherheitsprüfungen durchführen, einschließlich JWT-Anspruchsprüfungen.

Antworttext

Bei Erfolg gibt diese Methode ein Authentifizierungs-JWT mit den Ansprüchen delegated_to und resource_name zurück. Dieses Token kann später zur Authentifizierung bei Aufrufen der Methoden „Wrap“ und „Unwrap“ verwendet werden. Im Fehlerfall sollte eine strukturierte Fehlerantwort zurückgegeben werden.

JSON-Darstellung
{
  "delegated_authentication": string
}
Felder
delegated_authentication

string

Ein delegiertes Authentifizierungs-JWT, das für den Zugriff auf resource_name durch den im ursprünglichen Authentifizierungs-JWT genannten Nutzer gültig ist. Weitere Informationen finden Sie unter KACLS-Authentifizierungstoken für delegate.

Beispiel

Anfrage

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'}"
}

Antwort

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