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 to identyfikator zewnętrzny.
Ź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ść przez oddzielenie indeksowania 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
Ilustracja 1 przedstawia 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. Będziesz potrzebować jego identyfikatora do utworzenia list ACL i indeksowania danych. 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.
Ta tabela zawiera 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 pokazujemy, 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 symbolu
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ż osoby z uprawnieniami do odczytu 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 mapować grupy używane tylko na potrzeby zabezpieczeń lub lokalne w repozytorium.
Do tworzenia grup i zarządzania członkostwem w nich używaj interfejsu 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 Directory. Możesz to zrobić na 3 sposoby:
- Ręcznie aktualizuj profile użytkowników w konsoli administracyjnej (zalecane tylko w przypadku testów).
- 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ć łącznik 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 zmiana została zastosowana.
- 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.