Metoda: delegate

To wywołanie zwraca nowy token internetowy JSON (JWT) uwierzytelniania, który umożliwia podmiotowi dostęp do określonego zasobu w imieniu użytkownika uwierzytelnionego w oryginalnym tokenie JWT uwierzytelniania. Służy do przekazywania zawężonego dostępu do zawijania lub odwijania innemu podmiotowi, gdy musi on działać w imieniu użytkownika.

Żądanie HTTP

POST https://<base_url>/delegate

Zastąp symbol <base_url> adresem URL usługi listy kontroli dostępu do kluczy (KACLS).

Parametry ścieżki

Brak.

Treść żądania

Treść żądania zawiera reprezentację żądania w formacie JSON:

Zapis JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Pola
authentication

string

Token JWT wydany przez firmę zewnętrzną, który potwierdza tożsamość użytkownika. Więcej informacji znajdziesz w sekcji dotyczącej uwierzytelniania.

authorization

string

Token JWT z deklaracjami delegated_toresource_name, które potwierdzają, że podmiot zidentyfikowany przez deklarację delegated_to ma uprawnienia do dostępu do resource_name w imieniu użytkownika. Więcej informacji znajdziesz w artykule Tokeny autoryzacji.

reason

string (UTF-8)

Ciąg JSON przekazywany dalej, który zawiera dodatkowy kontekst dotyczący operacji. Przed wyświetleniem podany kod JSON należy oczyścić. Maksymalny rozmiar: 1 KB.

Wymagane czynności przetwarzania

KACLS musi wykonać co najmniej te czynności:

  • Sprawdź zarówno token autoryzacji, jak i token uwierzytelniania. Więcej informacji znajdziesz w sekcjach Tokeny autoryzacjiTokeny uwierzytelniania.
  • Sprawdź, czy tokeny autoryzacji i uwierzytelniania dotyczą tego samego użytkownika. Więcej informacji znajdziesz w artykule Szyfrowanie i odszyfrowywanie danych.
  • Sprawdź, czy roszczenie kacls_url w tokenie autoryzacji jest zgodne z bieżącym adresem URL usługi KACLS. Umożliwia to wykrywanie potencjalnych serwerów typu „man-in-the-middle” skonfigurowanych przez osoby z wewnątrz organizacji lub nieuczciwych administratorów domen.
  • Jeśli w tokenie autoryzacji istnieje roszczenie kacls_owner_domain, sprawdź, czy jego wartość jest zgodna z domeną Google Workspace właściciela KACLS. Pomaga to zapobiegać rejestrowaniu Twojego systemu KACLS w Google przez nieautoryzowanych użytkowników.
  • Zarejestruj operację, w tym użytkownika, który ją zainicjował, delegated_to, resource_name i przyczynę przekazaną w żądaniu.
  • Wygeneruj, podpisz i zwróć token JWT zawierający roszczenia delegated_toresource_name z tokena autoryzacji.

KACLS może przeprowadzać dodatkowe kontrole bezpieczeństwa, w tym kontrole oparte na roszczeniach JWT.

Treść odpowiedzi

Jeśli operacja się uda, ta metoda zwróci token JWT uwierzytelniania zawierający roszczenia delegated_toresource_name. Ten token może być później używany do uwierzytelniania w wywołaniach metod Wrap i Unwrap. W przypadku błędu należy zwrócić odpowiedź z błędem strukturalnym.

Zapis JSON
{
  "delegated_authentication": string
}
Pola
delegated_authentication

string

Token JWT uwierzytelniania delegowanego, który jest ważny w przypadku dostępu do resource_name przez użytkownika wymienionego w oryginalnym tokenie JWT uwierzytelniania. Więcej informacji znajdziesz w artykule Token uwierzytelniania KACLS dla delegate.

Przykład

Żądanie

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

Odpowiedź

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