Kontrola dostępu w Google Cloud Search opiera się na koncie Google użytkownika. Podczas indeksowania treści wszystkie listy ACL elementów muszą być rozpoznawane jako prawidłowe identyfikatory użytkowników lub grup Google (adresy e-mail).
W wielu przypadkach repozytorium nie ma bezpośredniego dostępu do kont Google. Zamiast tego konta lokalne reprezentują użytkowników lub użytkownicy korzystają z logowania federacyjnego u dostawcy tożsamości. Ten identyfikator, inny niż adres e-mail, nazywa się identyfikatorem zewnętrznym.
Źródła tożsamości utworzone w konsoli administracyjnej wypełniają lukę między systemami tożsamości, ponieważ:
- Zdefiniuj niestandardowe pole użytkownika, aby przechowywać identyfikatory zewnętrzne. To pole przekształca identyfikatory zewnętrzne na konto Google.
- Określanie przestrzeni nazw dla grup zabezpieczeń zarządzanych przez repozytorium lub dostawcę tożsamości.
Korzystaj ze źródeł tożsamości, gdy:
- Repozytorium nie zna podstawowego adresu e-mail użytkownika w Google Workspace ani w katalogu Google Cloud.
- Repozytorium definiuje grupy kontroli dostępu, które nie odpowiadają grupom opartym na adresach e-mail w Google Workspace.
Źródła tożsamości zwiększają wydajność, oddzielając indeksowanie od mapowania tożsamości. Dzięki temu możesz odłożyć wyszukiwanie użytkowników podczas tworzenia list ACL i indeksowania elementów.
Przykładowe wdrożenie
Na rysunku 1 przedstawiono firmę korzystającą z repozytoriów lokalnych i w chmurze. Każdy z nich używa innego typu zewnętrznego identyfikatora.
Repozytorium 1 identyfikuje użytkowników za pomocą adresu e-mail przy użyciu SAML. Ponieważ zna podstawowy adres e-mail w Google Workspace lub Cloud Directory, nie potrzebuje źródła tożsamości.
Repozytorium 2 jest zintegrowane z katalogiem lokalnym i identyfikuje użytkowników za pomocą sAMAccountName. Ponieważ używa tego atrybutu jako identyfikatora zewnętrznego, wymaga źródła tożsamości.
Tworzenie źródła tożsamości
Jeśli potrzebujesz źródła tożsamości, zapoznaj się z artykułem Mapowanie tożsamości użytkowników w Cloud Search.
Utwórz źródło tożsamości przed utworzeniem łącznika treści. Aby utworzyć listy ACL i zindeksować dane, potrzebujesz jego identyfikatora. Utworzenie źródła tożsamości powoduje też utworzenie w Cloud Directory niestandardowej właściwości użytkownika, w której będą przechowywane identyfikatory zewnętrzne. Nazwa właściwości jest zgodna z konwencją IDENTITY_SOURCE_ID_identity.
W tej tabeli przedstawiono 2 źródła tożsamości: jedno dla nazw kont SAM, a drugie dla identyfikatorów użytkowników (uid).
| Źródło tożsamości | Właściwość użytkownika | Identyfikator zewnętrzny |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Utwórz źródło tożsamości dla każdego typu zewnętrznego identyfikatora używanego w Twojej firmie.
W tej tabeli pokazano, jak użytkownik z kontem Google i 2 zewnętrznymi identyfikatorami wygląda w Cloud Directory:
| Użytkownik | id1_identity |
id2_identity |
|
|---|---|---|---|
| Anna | ann@example.com |
example\ann |
1001 |
Podczas tworzenia list ACL na potrzeby indeksowania możesz odwoływać się do tego samego użytkownika za pomocą dowolnego z tych identyfikatorów.
Zapisywanie list ACL użytkowników
Użyj
getUserPrincipal()
lub
getGroupPrincipal()
, aby utworzyć podmioty przy użyciu identyfikatorów zewnętrznych.
Ten przykład pobiera uprawnienia do pliku, w tym użytkowników z dostępem:
Ten fragment kodu tworzy podmioty dla właścicieli za pomocą atrybutu externalUserName:
Ten fragment kodu tworzy podmioty dla czytelników:
Gdy masz już czytelników i właścicieli, utwórz listę ACL:
Interfejs API REST używa wzorca
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
Adres id1_identity Anny przyjmuje wartość identitysources/id1_identity/users/example/ann. Jest to identyfikator pośredni użytkownika.
Więcej informacji o modelowaniu list kontroli dostępu do repozytorium znajdziesz w artykule Listy kontroli dostępu.
Mapowanie grup
Źródła tożsamości służą też jako przestrzeń nazw dla grup ACL. Użyj tej opcji, aby utworzyć i zmapować grupy używane tylko na potrzeby zabezpieczeń lub lokalne w repozytorium.
Do tworzenia grup i zarządzania członkostwem w nich służy Cloud Identity Groups API. Powiąż grupę ze źródłem tożsamości, używając nazwy źródła tożsamości jako przestrzeni nazw.
Ten fragment kodu tworzy grupę:
Tworzenie listy ACL grupy
Użyj getGroupPrincipal(), aby utworzyć podmiot grupy z zewnętrznym identyfikatorem, a następnie zbudować listę ACL:
Oprogramowanie sprzęgające tożsamości
Użytkownicy nie mogą wyświetlać elementów w wynikach wyszukiwania, dopóki ich identyfikatory zewnętrzne nie zostaną rozpoznane jako identyfikatory Google w katalogu Cloud. Możesz to zrobić na 3 sposoby:
- Ręcznie aktualizuj profile użytkowników w konsoli administracyjnej (zalecane tylko w przypadku testów).
- Mapuj identyfikatory map za pomocą interfejsu Directory API.
- Utwórz łącznik tożsamości za pomocą pakietu SDK łącznika tożsamości.
Łączniki tożsamości mapują zewnętrzne identyfikatory tożsamości biznesowych na wewnętrzne tożsamości Google. Jeśli utworzysz źródło tożsamości, musisz też utworzyć oprogramowanie sprzęgające tożsamości.
Google Cloud Directory Sync (GCDS) jest przykładem łącznika tożsamości. Mapuje informacje o użytkownikach i grupach z Active Directory na Cloud Directory.
Synchronizowanie tożsamości za pomocą interfejsu API REST
używaj metody update do synchronizowania tożsamości.
Ponowne mapowanie tożsamości
Po ponownym mapowaniu tożsamości musisz ponownie zindeksować elementy, aby zmiany zostały zastosowane.
- Jeśli usuniesz lub zmienisz mapowanie użytkownika, pierwotne mapowanie pozostanie do czasu ponownego indeksowania.
- Jeśli usuniesz zmapowaną grupę i utworzysz nową z tym samym
groupKey, nie przyznasz dostępu, dopóki nie przeprowadzisz ponownej indeksacji.