Ten przewodnik opisuje, jak działa szyfrowanie i odszyfrowywanie za pomocą interfejsu Google Workspace Client-side Encryption API.
Musisz dodać do listy dozwolonych wszystkie usługi dostawcy tożsamości używane przez użytkowników udostępniających zaszyfrowane pliki. Wymagane szczegółowe informacje o dostawcy tożsamości można zwykle znaleźć w publicznie dostępnym pliku .well-known. W przeciwnym razie skontaktuj się z administratorem Google Workspace w organizacji, aby uzyskać szczegółowe informacje o dostawcy tożsamości.
Szyfrowanie danych
Gdy użytkownik Google Workspace poprosi o zapisanie lub przechowywanie danych zaszyfrowanych po stronie klienta, Google Workspace wyśle żądanie wrap
do adresu URL punktu końcowego usługi listy kontroli dostępu do kluczy (KACLS) w celu zaszyfrowania danych.
Oprócz opcjonalnych kontroli bezpieczeństwa, takich jak kontrole oparte na obwodzie i na roszczeniach JWT, KACLS musi wykonać te czynności:
Sprawdź, czy użytkownik wysyłający prośbę jest uprawniony.
- Sprawdź zarówno token uwierzytelniania, jak i token autoryzacji.
- Sprawdź, czy tokeny autoryzacji i uwierzytelniania należą do tego samego użytkownika, przeprowadzając dopasowanie bez uwzględniania wielkości liter w przypadku roszczeń dotyczących adresu e-mail.
- Jeśli token uwierzytelniania zawiera opcjonalne roszczenie
google_email
, musi ono zostać porównane z roszczeniem dotyczącym adresu e-mail w tokenie autoryzacji z uwzględnieniem wielkości liter. Nie używaj roszczenia dotyczącego adresu e-mail w tokenie uwierzytelniającym na potrzeby tego porównania. - W sytuacjach, w których token uwierzytelniania nie zawiera opcjonalnego roszczenia
google_email
, roszczenie dotyczące adresu e-mail w tokenie uwierzytelniania należy porównać z roszczeniem dotyczącym adresu e-mail w tokenie autoryzacyjnym, używając metody bez uwzględniania wielkości liter. - W sytuacjach, w których Google wydaje token autoryzacji dla adresu e-mail, który nie jest powiązany z kontem Google, musi być obecne roszczenie
email_type
. Jest to kluczowy element funkcji dostępu gościa, który dostarcza listom kontroli dostępu do kluczy (KACL) cennych informacji umożliwiających egzekwowanie dodatkowych środków bezpieczeństwa w przypadku użytkowników zewnętrznych.- Oto kilka przykładów wykorzystania tych informacji przez KACLS:
- nałożyć dodatkowe wymagania dotyczące logowania;
- Aby ograniczyć wystawcę tokena uwierzytelniającego do dedykowanego dostawcy tożsamości dla gości.
- Wymaganie dodatkowych roszczeń w tokenie uwierzytelniania.
- Jeśli klient nie skonfigurował dostępu dla gości, wszystkie żądania, w których parametr
email_type
ma wartośćgoogle-visitor
lubcustomer-idp
, mogą zostać odrzucone. Prośby z wartościąemail_type
równągoogle
lub z nieustawionym parametrememail_type
powinny być nadal akceptowane.
- Jeśli token uwierzytelniania zawiera opcjonalne roszczenie
delegated_to
, musi też zawierać roszczenieresource_name
. Te 2 roszczenia muszą być porównywane z roszczeniamidelegated_to
iresource_name
w tokenie autoryzacji. Roszczeniadelegated_to
należy porównywać bez uwzględniania wielkości liter, a wartośćresource_name
w tokenach powinna być zgodna z wartościąresource_name
operacji. - Sprawdź, czy roszczenie
role
w tokenie autoryzacji ma wartośćwriter
lubupgrader
. - Sprawdź, czy roszczenie
kacls_url
w tokenie autoryzacji jest zgodne z bieżącym adresem URL usługi KACLS. Ta kontrola umożliwia wykrywanie potencjalnych serwerów typu „man-in-the-middle” skonfigurowanych przez osoby z wewnątrz organizacji lub nieuczciwych administratorów domen. - Przeprowadź kontrolę obwodową za pomocą roszczeń uwierzytelniania i autoryzacji.
Zaszyfruj te części za pomocą algorytmu szyfrowania z uwierzytelnianiem:
- Klucz szyfrujący dane (DEK)
- Wartości
resource_name
iperimeter_id
z tokena autoryzacji - wszelkie dodatkowe dane wrażliwe,
Zarejestruj operację, w tym użytkownika, który ją zainicjował,
resource_name
i przyczynę przekazaną w żądaniu.Zwraca nieprzezroczysty obiekt binarny, który ma być przechowywany przez Google Workspace obok zaszyfrowanego obiektu i wysyłany w stanie nienaruszonym w ramach kolejnych operacji odszyfrowywania klucza. Możesz też wyświetlić odpowiedź o określonej strukturze.
- Obiekt binarny powinien zawierać tylko kopię zaszyfrowanego klucza DEK. Można w nim przechowywać dane specyficzne dla implementacji.
Odszyfrowywanie danych
Gdy użytkownik Google Workspace poprosi o otwarcie danych zaszyfrowanych po stronie klienta, Google Workspace wyśle unwrap
żądanie
do adresu URL punktu końcowego KACLS w celu odszyfrowania. Oprócz opcjonalnych kontroli bezpieczeństwa, takich jak kontrole obwodowe i kontrole oparte na roszczeniach JWT, usługa KACLS musi wykonać te czynności:
Sprawdź, czy użytkownik wysyłający prośbę jest uprawniony.
- Sprawdź zarówno token uwierzytelniania, jak i token autoryzacji.
- Sprawdź, czy tokeny autoryzacji i uwierzytelniania należą do tego samego użytkownika, przeprowadzając dopasowanie bez uwzględniania wielkości liter w przypadku roszczeń dotyczących adresu e-mail.
- Jeśli token uwierzytelniania zawiera opcjonalne roszczenie
google_email
, musi ono zostać porównane z roszczeniem dotyczącym adresu e-mail w tokenie autoryzacji z uwzględnieniem wielkości liter. Nie używaj roszczenia dotyczącego adresu e-mail w tokenie uwierzytelniającym na potrzeby tego porównania. - W sytuacjach, w których token uwierzytelniania nie zawiera opcjonalnego roszczenia
google_email
, roszczenie dotyczące adresu e-mail w tokenie uwierzytelniania należy porównać z roszczeniem dotyczącym adresu e-mail w tokenie autoryzacyjnym, używając metody bez uwzględniania wielkości liter. - W sytuacjach, w których Google wydaje token autoryzacji dla adresu e-mail, który nie jest powiązany z kontem Google, musi być obecne roszczenie
email_type
. Jest to kluczowy element funkcji dostępu gościa, który dostarcza listom kontroli dostępu do kluczy (KACL) cennych informacji umożliwiających egzekwowanie dodatkowych środków bezpieczeństwa w przypadku użytkowników zewnętrznych.- Oto kilka przykładów wykorzystania tych informacji przez KACLS:
- nałożyć dodatkowe wymagania dotyczące logowania;
- Aby ograniczyć wystawcę tokena uwierzytelniającego do dedykowanego dostawcy tożsamości dla gości.
- Wymaganie dodatkowych roszczeń w tokenie uwierzytelniania.
- Jeśli klient nie skonfigurował dostępu dla gości, wszystkie żądania, w których parametr
email_type
ma wartośćgoogle-visitor
lubcustomer-idp
, mogą zostać odrzucone. Prośby z wartościąemail_type
równągoogle
lub z nieustawionym parametrememail_type
powinny być nadal akceptowane.
- Jeśli token uwierzytelniania zawiera opcjonalne roszczenie
delegated_to
, musi też zawierać roszczenieresource_name
. Te 2 roszczenia muszą być porównywane z roszczeniamidelegated_to
iresource_name
w tokenie autoryzacji. Roszczeniadelegated_to
należy porównywać bez uwzględniania wielkości liter, a wartośćresource_name
w tokenach powinna być zgodna z wartościąresource_name
operacji. - Sprawdź, czy roszczenie
role
w tokenie autoryzacji ma wartośćreader
lubwriter
. - 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.
Odszyfruj te części za pomocą algorytmu szyfrowania z uwierzytelnianiem:
- Klucz szyfrujący dane (DEK)
- Wartości
resource_name
iperimeter_id
z tokena autoryzacji - wszelkie dodatkowe dane wrażliwe,
Sprawdź, czy znak
resource_name
w tokenie autoryzacji i odszyfrowanym obiekcie blob jest taki sam.Przeprowadź kontrolę obwodową za pomocą roszczeń dotyczących uwierzytelniania i autoryzacji.
Zarejestruj operację, w tym użytkownika, który ją zainicjował,
resource_name
i przyczynę przekazaną w żądaniu.Zwróć wyodrębniony klucz DEK lub odpowiedź z błędem strukturalnym.