Die Zugriffskontrolle in Google Cloud Search basiert auf dem Google-Konto eines Nutzers. Bei der Indexierung von Inhalten müssen alle ACLs für Elemente in gültige Google-Nutzer- oder Gruppen-IDs (E-Mail-Adressen) aufgelöst werden.
In vielen Fällen sind in einem Repository keine Informationen zu Google-Konten vorhanden. Stattdessen werden Nutzer durch lokale Konten dargestellt oder sie verwenden die föderierte Anmeldung mit einem Identitätsanbieter. Diese Identifizierung, die nicht die E-Mail-Adresse ist, wird als externe ID bezeichnet.
Identitätsquellen, die über die Admin-Konsole erstellt werden, helfen dabei, die Lücken zwischen Identitätssystemen zu schließen, weil sie Folgendes erlauben:
- Ein benutzerdefiniertes Nutzerfeld zum Speichern externer IDs festlegen. In diesem Feld werden externe IDs in ein Google-Konto aufgelöst.
- Einen Namespace für Sicherheitsgruppen definieren, der von einem Repository oder Identitätsanbieter verwaltet wird.
In folgenden Fällen sollten Sie Identitätsquellen verwenden:
- Das Repository enthält nicht die primäre E-Mail-Adresse des Nutzers in Google Workspace oder Google Cloud Directory.
- Im Repository sind Gruppen für die Zugriffssteuerung definiert, die nicht den auf E-Mail-Adressen basierenden Gruppen in Google Workspace entsprechen.
Mit Identitätsquellen kann die Effizienz optimiert werden, indem die Indexierung von der Identitätszuordnung entkoppelt wird. So können Sie die Nutzersuche beim Erstellen von ACLs und beim Indexieren von Elementen aufschieben.
Beispiel für ein Deployment
Abbildung 1 zeigt ein Unternehmen, das sowohl lokale als auch Cloud-Repositories verwendet. Für jede wird eine andere Art von externer ID verwendet.
In Repository 1 werden Nutzer anhand der E-Mail-Adresse über SAML identifiziert. Da die primäre E‑Mail-Adresse in Google Workspace oder Cloud Directory bekannt ist, ist keine Identitätsquelle erforderlich.
Repository 2 ist in ein lokales Verzeichnis eingebunden und identifiziert Nutzer anhand von sAMAccountName. Da dieses Attribut als externe ID verwendet wird, ist eine Identitätsquelle erforderlich.
Identitätsquelle erstellen
Wenn Sie eine Identitätsquelle benötigen, finden Sie im Hilfeartikel Nutzeridentitäten in Cloud Search zuordnen weitere Informationen.
Erstellen Sie die Identitätsquelle, bevor Sie einen Inhaltsconnector erstellen. Sie benötigen die ID der Identitätsquelle, um ACLs zu erstellen und Daten zu indexieren. Beim Erstellen einer Identitätsquelle wird auch ein benutzerdefiniertes Nutzerattribut in Cloud Directory erstellt, in dem externe IDs gespeichert werden. Für den Attributnamen gilt die Konvention IDENTITY_SOURCE_ID_identity.
In dieser Tabelle sehen Sie zwei Identitätsquellen: eine für SAM-Kontonamen und eine für Nutzer-IDs (UID).
| Identitätsquelle | Nutzereigenschaft | Externe ID |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Erstellen Sie eine Identitätsquelle für jeden Typ von externer ID, der in Ihrem Unternehmen verwendet wird.
In dieser Tabelle sehen Sie, wie ein Nutzer mit einem Google-Konto und zwei externen IDs im Cloud Directory angezeigt wird:
| Nutzer | id1_identity |
id2_identity |
|
|---|---|---|---|
| Anne | ann@example.com |
example\ann |
1001 |
Wenn Sie für die Indexierung ACLs erstellen, können Sie über alle drei IDs auf denselben Nutzer verweisen.
Nutzer-ACLs schreiben
Verwenden Sie getUserPrincipal() oder getGroupPrincipal(), um Principals mit externen IDs zu erstellen.
In diesem Beispiel werden Dateiberechtigungen abgerufen, einschließlich der Nutzer mit Zugriff:
Mit diesem Snippet werden Hauptkonten für Inhaber mit dem Attribut externalUserName erstellt:
Mit diesem Snippet werden Hauptkonten für Leser erstellt:
Sobald Sie Nutzer mit Leseberechtigung und Besitzer haben, können Sie die ACL erstellen:
In der REST API wird für die ID das Muster
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID verwendet.
Annes id1_identity wird in identitysources/id1_identity/users/example/ann aufgelöst. Dies ist die Zwischen-ID des Nutzers.
Weitere Informationen zum Modellieren von Repository-ACLs finden Sie unter ACLs.
Gruppen zuordnen
Identitätsquellen dienen auch als Namespace für ACL-Gruppen. Verwenden Sie diese Funktion, um Gruppen zu erstellen und zuzuordnen, die nur zu Sicherheitszwecken verwendet werden oder nur in einem Repository vorhanden sind.
Verwenden Sie die Cloud Identity Groups API, um Gruppen zu erstellen und Mitgliedschaften zu verwalten. Verknüpfen Sie die Gruppe mit einer Identitätsquelle, indem Sie den Namen der Identitätsquelle als Namespace verwenden.
Mit diesem Snippet wird eine Gruppe erstellt:
Gruppen-ACL erstellen
Verwenden Sie getGroupPrincipal(), um ein Gruppenhauptkonto mit einer externen ID zu erstellen, und erstellen Sie dann die ACL:
Identitätsconnectors
Nutzer können erst Elemente in Suchergebnissen sehen, wenn ihre externen IDs in eine Google-ID im Cloud-Verzeichnis aufgelöst werden. Dafür haben Sie drei Möglichkeiten:
- Nutzerprofile in der Admin-Konsole manuell aktualisieren (nur zum Testen empfohlen).
- Ordnen Sie IDs mit der Directory API zu.
- Einen Identitätsconnector erstellen mit dem Identity Connector SDK
Mit Identitätsconnectors werden externe IDs von Unternehmensidentitäten internen Google-Identitäten zugeordnet. Wenn Sie eine Identitätsquelle erstellen, müssen Sie auch einen Identitätsconnector erstellen.
Google Cloud Directory Sync (GCDS) ist ein Beispiel für einen Identitätsconnector. Es ordnet Nutzer- und Gruppeninformationen aus Active Directory Cloud Directory zu.
Identitäten mit der REST API synchronisieren
Verwenden Sie die Methode update, um Identitäten zu synchronisieren.
Identitäten neu zuordnen
Nachdem Sie eine Identität neu zugeordnet haben, müssen Sie die Elemente neu indexieren, damit die Änderung wirksam wird.
- Wenn Sie eine Nutzerzuordnung entfernen oder ändern, bleibt die ursprüngliche Zuordnung bis zur Neuindexierung erhalten.
- Wenn Sie eine zugeordnete Gruppe löschen und eine neue mit demselben
groupKeyerstellen, wird erst nach der Neuindexierung Zugriff gewährt.