Unternehmen verwalten Identitäten (Nutzer und Nutzergruppen) in der Regel mit einem Identitätsanbieter (Identity Provider, IDP). In benutzerdefinierten Anwendungen, die ein Unternehmen intern entwickelt hat, können Kunden jedoch neue Nutzergruppen erstellen, die lokal in dieser Anwendung definiert sind. Diese anwendungsspezifischen Nutzergruppen oder sekundären Nutzer-IDs werden als externe Identitäten bezeichnet.
Warum Identitätszuweisungen einrichten?
Damit Google die Zugriffssteuerung korrekt erzwingen kann, müssen Sie Ihre IDP-Identitäten allen externen Identitäten aus den benutzerdefinierten Anwendungen zuordnen, die Sie mit Gemini Enterprise verwenden möchten.
Um die Zugriffssteuerung auf App-Ergebnisse anzuwenden, verwendet Google den IDP als „Source of Truth“, um zu ermitteln, auf welche Daten Ihre Nutzer Zugriff haben. Unternehmen verbinden ihren IDP oft mit anderen SaaS-Lösungen, damit ein Mitarbeiter sich mit einem einzigen Satz von Anmeldedaten des Unternehmens anmelden und auf alle Unternehmensressourcen zugreifen kann.
Wenn Sie externe Identitäten über Anwendungen definiert haben, die Sie mit Ihrer App verbinden möchten, z. B. benutzerdefinierte Anwendungen, ist Ihr IDP nicht die einzige „Source of Truth“ für die Zugriffssteuerung.
Beispiel: „JaneDoe“ ist in der Beispielorganisation mit der Domain „example.com“ vorhanden. Die ID im IDP ist als „JaneDoe@example.com“ definiert. Derselbe Nutzer hat in einer benutzerdefinierten Anwendung eine separate ID: „JDoe“. Der IDP ist sich dieser ID möglicherweise nicht bewusst. Daher erhält Gemini Enterprise keine Informationen zu den IDs der benutzerdefinierten Anwendungen über den IDP.
In Gemini Enterprise werden Identitätszuweisungen in einem Identitätszuweisungsspeicher gespeichert, den Sie erstellen und in den Sie die Zuweisungen importieren. Wenn Sie einen benutzerdefinierten Connector verwenden möchten, können Sie den Identitätszuweisungsspeicher an den Datenspeicher des benutzerdefinierten Connectors binden und dann die ACL-Metadaten Ihres Datenspeichers mit Informationen zu Ihren externen Identitäten aktualisieren.
Hinweis
Bevor Sie die Identitätszuweisung einrichten, verbinden Sie Ihren Identitätsanbieter mit Ihrem Google Cloud Projekt.
Einträge für die Identitätszuweisung vorbereiten
Bereiten Sie die Einträge für die Identitätszuweisung für den Import vor. Identitätszuweisungen sollten wie im folgenden Beispiel formatiert sein:
{
"identity_mapping_entries": [
{
"external_identity": "u1",
"user_id": "user1@example.com"
},
{
"external_identity": "u2",
"user_id": "user2@example.com"
},
{
"external_identity": "gABC",
"group_id": "groupABC@example.com"
}
]
}
Das folgende Diagramm zeigt beispielsweise eine Beispielmitgliedschaft in einer Nutzergruppe, wobei Ext für externe Gruppen steht. Dieses Diagramm zeigt eine Beispielbeziehung zwischen externen Gruppen und IDP-Nutzern und ‑Gruppen.

Dieser Graph zur Mitgliedschaft in Nutzergruppen hätte die folgende Zuordnung:
{
"identity_mapping_entries": [
{
"external_identity": "Ext1",
"user_id": "IDPUser1@example.com"
},
{
"external_identity": "Ext2",
"user_id": "IDPUser1@example.com"
},
{
"external_identity": "Ext2",
"user_id": "IDPUser2@example.com"
},
{
"external_identity": "Ext3",
"user_id": "IDPUser2@example.com"
},
{
"external_identity": "Ext3",
"group_id": "IDPGroup1@example.com"
},
{
"external_identity": "Ext3",
"group_id": "IDPGroup2@example.com"
}
]
}
Verschachtelte Identitätsmitgliedschaften, bei denen externe Identitäten untergeordnete Identitäten haben, müssen vereinfacht werden.
Google geht davon aus, dass der Connector eine primäre ID für eine externe Identität sendet. Importieren Sie beispielsweise die Gruppen-ID anstelle des Gruppennamens, da sich der Name im Laufe der Lebensdauer der Gruppe in der benutzerdefinierten Anwendung ändern kann.
Identitätszuweisung einrichten
Gehen Sie so vor, um die Identitätszuweisung in Gemini Enterprise zwischen Ihrem IDP und Ihren externen Identitäten einzurichten. In den folgenden Schritten erstellen Sie einen Identitätszuweisungsspeicher und importieren die vorbereiteten Identitätszuweisungen. Wenn Sie einen benutzerdefinierten Connector verwenden möchten, erstellen Sie auch einen neuen Datenspeicher, der an den Identitätszuweisungsspeicher gebunden ist.
Identitätszuweisungsspeicher erstellen
Der erste Schritt besteht darin, einen Identitätszuweisungsspeicher einzurichten. Dies ist die übergeordnete Ressource, in der alle Identitätszuweisungen gespeichert sind.
Wenn Sie den Identitätszuweisungsspeicher erstellen, wird die IDP-Konfiguration automatisch von dem IDP abgerufen, den Sie mit Ihrem Gemini Enterprise-Projekt verbunden haben.
Führen Sie den folgenden Befehl mit der
identityMappingStores.createMethode aus, um einen Identitätszuweisungsspeicher zu erstellen:curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores?identityMappingStoreId=IDENTITY_MAPPING_STORE_ID" \ -d '{ "name": "projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID" }'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.IDENTITY_MAPPING_STORE_ID: Die eindeutige ID für den Identitätszuweisungsspeicher. Beispiel:test-id-mapping-store.
Identitätszuweisungen importieren
Nachdem Sie den Identitätszuweisungsspeicher erstellt haben, importieren Sie die vorbereiteten Einträge für die Identitätszuweisung. Sie können Identitätszuweisungen über eine Inline-Quelle (Option 1) oder aus Cloud Storage (Option 2) importieren.
Beim Importieren aus Cloud Storage gelten die folgenden Formate und Einschränkungen:
- Zulässige Formate: Die Eingabedateien müssen im NDJSON-Format (
.ndjson) oder im JSON Lines-Format (.jsonl) vorliegen, wobei jede Zeile einen einzelnen Eintrag für die Identitätszuweisung darstellt. - Einschränkungen bei der Dateigröße: Jede Datei darf maximal 2 GB groß sein.
- Einschränkungen bei der Anzahl der Identitätszuweisungen: Sie können bei einem Importvorgang bis zu
500,000externe Identitätszuweisungen importieren. - Einschränkungen bei der Anzahl der Dateien: Sie können in der Liste
inputUrisbis zu2,000Dateien angeben. Wenn Sie Platzhalter verwenden, gilt das Limit für die Gesamtzahl der Dateien nach der Platzhaltererweiterung.
Option 1: Importieren über eine Inline-Quelle
Führen Sie den folgenden Befehl mit der
importIdentityMappingsMethode aus, um Ihre Identitätszuweisungen über eine Inline-Quelle zu importieren:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" -H "x-goog-user-project: PROJECT_ID" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/identityMappingStores/IDENTITY_MAPPING_STORE_ID:importIdentityMappings" \ -d '{"inline_source" : IDENTITY_MAPPINGS_JSON}'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
LOCATION: die Multiregion Ihres Datenspeichers:global,usodereuIDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.IDENTITY_MAPPINGS_JSON: die vorbereiteten Identitätszuweisungen im JSON-Format.Wenn Sie einen benutzerdefinierten Connector erstellen und externe Identitäten verwenden möchten, gehen Sie zu Benutzerdefinierte Datenspeicher an den Identitätszuweisungsspeicher binden. Fahren Sie andernfalls mit ACL-Metadaten aktualisieren fort.
Option 2: Aus Cloud Storage importieren
Führen Sie den folgenden Befehl mit der
importIdentityMappingsMethode aus, um Ihre Identitätszuweisungen aus Cloud Storage zu importieren:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" -H "x-goog-user-project: PROJECT_ID" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/identityMappingStores/IDENTITY_MAPPING_STORE_ID:importIdentityMappings" \ -d '{ "gcsSource": { "inputUris": ["gs://BUCKET_NAME/FILE_PATH"] }, "errorConfig": { "gcsPrefix": "gs://BUCKET_NAME/ERROR_DIR" }, "reconciliationMode": "FULL" }'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
LOCATION: die Multiregion Ihres Datenspeichers:global,usodereuIDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.BUCKET_NAME: Der Name Ihres Cloud Storage-Bucket.FILE_PATH: Der Pfad zu Ihrer Datei mit Identitätszuweisungen in Cloud Storage.ERROR_DIR: Das Verzeichnis in Cloud Storage, in dem Fehlerlogs gespeichert werden.Wenn Sie einen benutzerdefinierten Connector erstellen und externe Identitäten verwenden möchten, gehen Sie zu Benutzerdefinierte Datenspeicher an den Identitätszuweisungsspeicher binden. Fahren Sie andernfalls mit ACL-Metadaten aktualisieren fort.
Benutzerdefinierte Datenspeicher an den Identitätszuweisungsspeicher binden
Diese Vorgehensweise ist nur erforderlich, wenn Sie einen benutzerdefinierten Connector erstellen. Wenn Sie keinen benutzerdefinierten Connector erstellen, überspringen Sie diesen Schritt.
Bei benutzerdefinierten Connectors muss der Identitätszuweisungsspeicher an den Datenspeicher gebunden sein, bevor eine externe Identität mit ihren Dokumenten verknüpft werden kann. Das Festlegen dieses Felds ist nur beim Erstellen des Datenspeichers zulässig.
Wenn Sie einen Datenspeicher an den Identitätszuweisungsspeicher binden möchten, geben Sie
identity_mapping_storebeim Erstellen des Datenspeichers mit derDatastores.createMethode an.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID \ -d '{ ... "identity_mapping_store": "IDENTITY_MAPPING_STORE_NAME" }'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.DATA_STORE_ID: Die ID des Datenspeichers, der erstellt werden soll. Diese ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.IDENTITY_MAPPING_STORE_NAME: Der vollständige Ressourcen name des Identitätszuweisungsspeichers. Beispiel:projects/exampleproject/locations/global/identityMappingStores/test-id-mapping-store. Nachdem Sie einen Datenspeicher erstellt haben, kann dieser Name nicht mehr aktualisiert werden.
ACL-Metadaten hinzufügen
Fügen Sie ACL-Metadaten in das AclInfo Objekt für Ihre Dokumente ein.
Wenn ein Nutzer eine Suchanfrage sendet und Dokumente abgerufen werden, deren ACL-Metadaten externe Identitäten enthalten, werden diese externen Identitäten ausgewertet.
Wenn die Identität des Nutzers (groupID oder userID) einer externen Identität (externalEntityId) zugeordnet ist, die mit einem Dokument verknüpft ist, erhält der Nutzer Zugriff auf dieses Dokument.
Beispiel: Sie haben einen benutzerdefinierten Connector für Jira erstellt. Auf ein bestimmtes Jira-Problem können bestimmte IDP-Nutzer, bestimmte IDP-Gruppen und eine Administratorrolle zugreifen. Damit dieses Problem in den Suchergebnissen für diese Personen zugänglich ist, können Sie einen Identitätszuweisungsspeicher erstellen und IDP-Nutzer und ‑Gruppen Jira-spezifischen externen Identitäten zuordnen. Binden Sie den Identitätszuweisungsspeicher an Ihren Jira-Datenspeicher. Erstellen Sie dann Dokumente in Ihren Jira-Datenspeichern, wobei aclInfo mit den IDP-Nutzern, IDP-Gruppen und externen Identitäten konfiguriert ist, die Zugriff auf diese Dokumente haben sollen.
Verwenden Sie das folgende Format, um Ihre ACL-Metadaten mit Informationen zu Ihren externen Identitäten zu aktualisieren und die externen Identitäten sowie die zugehörigen Nutzer- und Gruppen-IDs anzugeben.
{
"aclInfo": {
"readers": [
{
"principals": [
{
"groupId": "group_1"
},
{
"userId": "user_1"
},
{
"externalEntityId": "external_id1"
}
]
}
]
}
}
Weitere Informationen zum Aktualisieren von ACL-Metadaten finden Sie unter Datenquelle mit Zugriffssteuerung konfigurieren.
Identitätszuweisungen verwalten
Sie können Identitätszuweisungen in einem Identitätsspeicher auflisten oder einen Identitätsspeicher bereinigen, indem Sie sie über eine Inline-Quelle definieren oder eine Filterbedingung verwenden.
Die folgenden Verwaltungsaufgaben sind für die Identitätszuweisung verfügbar:
- Identitätszuweisungen auflisten
- Mit einer Inline-Quelle bereinigen
- Mit einer Filterbedingung bereinigen
Identitätszuweisungen auflisten
Führen Sie den folgenden Befehl mit der
listIdentityMappingsMethode aus, um Identitätszuweisungen aufzulisten:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID:listIdentityMappings?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.PAGE_SIZE: Die maximale Anzahl der zurückzugebenden Identitätszuweisungsspeicher. Wenn nicht angegeben, wird der Wert standardmäßig auf 100 gesetzt. Der maximal zulässige Wert beträgt 1.000. Werte über 1.000 werden in 1.000 geändert.PAGE_TOKEN: Ein Seitentoken, das von einem vorherigenListIdentityMappingStoresAufruf empfangen wurde. Geben Sie dieses an, um die nachfolgende Seite abzurufen.
Mit einer Inline-Quelle bereinigen
Sie können bestimmte Einträge aus einem Identitätszuweisungsspeicher bereinigen, indem Sie eine JSON-Datei mit den zu bereinigenden Identitäten angeben.
Führen Sie den folgenden Befehl mit der
purgeIdentityMappingsMethode aus, um Identitätszuweisungen mit einer Inline-Quelle zu bereinigen:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID:purgeIdentityMappings" \ -d '{"inline_source" : IDENTITY_MAPPINGS_JSON}'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.IDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.IDENTITY_MAPPING_STORE_NAME: Der Name des Identitätszuweisungsspeichers.IDENTITY_MAPPINGS_JSON: Die zu bereinigenden Identitätszuweisungen.
Mit einer Filterbedingung bereinigen
Sie können bestimmte Einträge aus einem Identitätszuweisungsspeicher bereinigen, indem Sie nach Einträgen nach Aktualisierungszeit, externer Identität oder allen Einträgen filtern.
Führen Sie den folgenden Befehl mit der
purgeIdentityMappingsMethode aus, um Identitätszuweisungen mit einer Filterbedingung zu bereinigen:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID:purgeIdentityMappings" \ -d '{"identity_mapping_store":"IDENTITY_MAPPING_STORE_NAME", "filter": "FILTER_CONDITION"}'Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.IDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.IDENTITY_MAPPING_STORE_NAME: Der Name des Identitätszuweisungsspeichers.FILTER_CONDITION: Einer der folgenden Filtertypen:- Aktualisierungszeit. Beispiel:
update_time > "2012-04-23T18:25:43.511Z" AND update_time < "2012-04-23T18:30:43.511Z"> - Externe Identität. Beispiel:
external_id = "id1" - Alle Identitätszuweisungen. Beispiel:
*
Identitätszuweisungsspeicher verwalten
Sie können Identitätszuweisungsspeicher abrufen, löschen, auflisten und bereinigen.
Identitätszuweisungsspeicher abrufen
Führen Sie den folgenden Befehl mit der
identityMappingStores.getMethode aus, um einen Identitätszuweisungsspeicher abzurufen:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID"Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.IDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.IDENTITY_MAPPING_STORE_NAME: Der Name des Identitätszuweisungsspeichers.
Identitätszuweisungsspeicher auflisten
Führen Sie den folgenden Befehl mit der
identityMappingStores.listMethode aus, um Identitätszuweisungsspeicher aufzulisten:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.PAGE_SIZE: Die maximale Anzahl der zurückzugebenden Identitätszuweisungsspeicher. Wenn nicht angegeben, wird der Wert standardmäßig auf 100 gesetzt. Der maximal zulässige Wert beträgt 1.000. Werte über 1.000 werden in 1.000 geändert.PAGE_TOKEN: Ein Seitentoken, das von einem vorherigenListIdentityMappingStoresAufruf empfangen wurde. Geben Sie dieses an, um die nachfolgende Seite abzurufen.
Identitätszuweisungsspeicher löschen
Wenn Sie einen Identitätszuweisungsspeicher löschen möchten, darf er nicht an einen Datenspeicher gebunden sein und keine Identitätszuweisungen enthalten.
Führen Sie den folgenden Befehl mit der
identityMappingStores.deleteMethode aus, um einen Identitätszuweisungsspeicher zu löschen:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID"Ersetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.IDENTITY_MAPPING_STORE_ID: Die eindeutige ID des Identitätszuweisungsspeichers.IDENTITY_MAPPING_STORE_NAME: Der Name des Identitätszuweisungsspeichers.