Unternehmen verwalten Identitäten (Nutzer und Nutzergruppen) in der Regel über einen Identitätsanbieter (Identity Provider, IdP). Mit benutzerdefinierten Anwendungen, die ein Unternehmen selbst 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 sollte ich die Identitätszuweisung einrichten?
Damit Google die Zugriffssteuerung korrekt durchsetzen kann, müssen Sie Ihre IDP-Identitäten den externen Identitäten der benutzerdefinierten Anwendungen zuordnen, die Sie mit Gemini Enterprise verwenden möchten.
Um die Zugriffssteuerung auf App-Ergebnisse anzuwenden, verwendet Google den IdP als Quelle der Wahrheit, um zu ermitteln, auf welche Daten Ihre Nutzer Zugriff haben. Unternehmen verbinden ihren IdP häufig mit anderen SaaS-Lösungen, damit Mitarbeiter mit einem einzigen Satz von Unternehmensanmeldedaten auf alle Unternehmensressourcen zugreifen können.
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 Quelle für die Zugriffssteuerung.
Angenommen, „JaneDoe“ ist in der Beispielorganisation mit der Domain „beispiel.de“ vorhanden. Die ID im IDP ist als „JaneDoe@example.com“ definiert. Derselbe Nutzer hat in einer benutzerdefinierten Anwendung eine separate ID als „JDoe“. Der Identitätsanbieter kennt diese ID möglicherweise nicht. Aus diesem Grund erhält Gemini Enterprise keine Informationen zu den benutzerdefinierten Anwendungs-IDs über den Identitätsanbieter.
In Gemini Enterprise werden Identitätszuordnungen in einem Identitätszuordnungsspeicher gespeichert, den Sie erstellen und in den Sie die Zuordnungen importieren. Wenn Sie einen benutzerdefinierten Connector verwenden möchten, können Sie den Identitätszuordnungsspeicher an den Datenspeicher des benutzerdefinierten Connectors binden und dann die ACL-Metadaten Ihres Datenspeichers mit Informationen zu Ihren externen Identitäten aktualisieren.
Hinweise
Bevor Sie die Identitätszuordnung einrichten, müssen Sie Ihren Identitätsanbieter mit Ihrem Google Cloud -Projekt verbinden.
Einträge für die Identitätszuordnung vorbereiten
Bereiten Sie die Einträge für die Identitätszuweisung für den Import vor. Identitätszuordnungen sollten wie im folgenden Beispiel formatiert werden:
{
"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 die Mitgliedschaft einer Nutzergruppe, wobei Ext
für externe Gruppen steht. Dieses Diagramm zeigt ein Beispiel für die Beziehung zwischen externen Gruppen und IDP-Nutzern und -Gruppen.
Das Diagramm für die 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 der Name im Laufe der Lebensdauer der Gruppe in der benutzerdefinierten Anwendung geändert werden kann.
Identitätszuweisung einrichten
Gehen Sie folgendermaßen vor, um die Identitätszuordnung in Gemini Enterprise zwischen Ihrem IdP und Ihren externen Identitäten einzurichten. In den folgenden Schritten erstellen Sie einen Speicher für Identitätszuweisungen und importieren die vorbereiteten Identitätszuweisungen. Wenn Sie einen benutzerdefinierten Connector verwenden möchten, erstellen Sie auch einen neuen Datenspeicher, der an den Identitätszuordnungsspeicher gebunden ist.
Identitätszuordnungsspeicher erstellen
Der erste Schritt besteht darin, einen Identitätszuordnungsspeicher einzurichten. Dies ist die übergeordnete Ressource, in der alle Identitätszuweisungen gespeichert sind.
Wenn Sie den Identitätszuordnungsspeicher 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 Methode
identityMappingStores.create
aus, um einen Identitätszuordnungsspeicher 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ätszuordnungsspeicher. Beispiel:test-id-mapping-store
Identitätszuweisungen importieren
Nachdem Sie den Identitätszuweisungsspeicher erstellt haben, importieren Sie die vorbereiteten Einträge für Identitätszuweisungen.
Führen Sie den folgenden Befehl mit der Methode
importIdentityMappings
aus, um Ihre Identitätszuordnungen 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://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/identityMappingStores/IDENTITY_MAPPING_STORE_ID:importIdentityMappings" \ -d '{"inline_source" : IDENTITY_MAPPINGS_JSON}'
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID.IDENTITY_MAPPING_STORE_ID
: die eindeutige ID des Identitätszuordnungsspeichers.IDENTITY_MAPPINGS_JSON
: die vorbereiteten Identitätszuordnungen im JSON-Format.
Wenn Sie einen benutzerdefinierten Connector erstellen und externe Identitäten verwenden möchten, fahren Sie mit Benutzerdefinierte Datenspeicher an den Identitätszuordnungsspeicher binden fort. Andernfalls fahren Sie mit ACL-Metadaten aktualisieren fort.
Benutzerdefinierte Datenspeicher an den Identitätszuweisungsspeicher binden
Dieser Vorgang 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ätszuordnungsspeicher an den Datenspeicher gebunden werden, bevor eine externe Identität mit den zugehörigen Dokumenten verknüpft werden kann. Das Festlegen dieses Felds ist nur während der Erstellung des Datenspeichers zulässig.
Wenn Sie einen Datenspeicher an den Identitätszuordnungsspeicher binden möchten, geben Sie
identity_mapping_store
beim Erstellen des Datenspeichers mit der MethodeDatastores.create
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 zu erstellenden Datenspeichers. Diese ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.IDENTITY_MAPPING_STORE_NAME
: Der vollständige Ressourcenname des Identitätszuordnungsspeichers. 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.
Angenommen, Sie haben einen benutzerdefinierten Connector für Jira erstellt. Auf ein bestimmtes Jira-Vorgang kann von bestimmten IDP-Nutzern, bestimmten IDP-Gruppen und einer Administratorrolle zugegriffen werden. Damit diese Personen in den Suchergebnissen auf das Problem zugreifen können, können Sie einen Identitätszuordnungsspeicher erstellen und IDP-Nutzer und -Gruppen Jira-spezifischen externen Identitäten zuordnen. Binden Sie den Identitätszuordnungsspeicher an Ihren Jira-Datenspeicher. Erstellen Sie dann Dokumente in Ihren Jira-Datenspeichern mit aclInfo
, die mit den IDP-Nutzern, IDP-Gruppen und externen Identitäten konfiguriert sind, die Zugriff auf diese Dokumente haben sollen.
Wenn Sie die ACL-Metadaten mit Informationen zu Ihren externen Identitäten aktualisieren möchten, verwenden Sie das folgende Format, um die externen Identitäten und 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ätszuordnungen in einem Identitätsspeicher auflisten oder einen Identitätsspeicher bereinigen, indem Sie sie über eine Inline-Quelle oder mithilfe einer Filterbedingung definieren.
Folgende Verwaltungsaufgaben sind für die Identitätszuordnung verfügbar:
Identitätszuweisungen auflisten
Führen Sie den folgenden Befehl mit der Methode
listIdentityMappings
aus, um Identitätszuordnungen 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
: Maximale Anzahl der zurückzugebenden Identitätszuordnungsspeicher. Wenn nicht angegeben, lautet die Standardeinstellung 100. Der maximal zulässige Wert beträgt 1.000. Werte über 1.000 werden implizit auf 1.000 umgewandelt.PAGE_TOKEN
: Ein Seitentoken, das von einem vorherigenListIdentityMappingStores
-Aufruf empfangen wurde. Geben Sie diese an, um die nachfolgende Seite abzurufen.
Mit Inline-Quelle bereinigen
Sie können bestimmte Einträge aus einem Identitätszuordnungsspeicher löschen, indem Sie eine JSON-Datei mit den zu löschenden Identitäten bereitstellen.
Führen Sie den folgenden Befehl mit der Methode
purgeIdentityMappings
aus, um Identitätszuordnungen mit einer Inline-Quelle zu löschen: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ätszuordnungsspeichers.IDENTITY_MAPPING_STORE_NAME
: Der Name des Identitätszuordnungsspeichers.IDENTITY_MAPPINGS_JSON
: Die zu bereinigenden Identitätszuordnungen.
Mit einer Filterbedingung löschen
Sie können bestimmte Einträge aus einem Identitätszuordnungsspeicher löschen, indem Sie nach Einträgen nach Aktualisierungszeit, externer Identität oder allen Einträgen filtern.
Wenn Sie Identitätszuordnungen mit einer Filterbedingung bereinigen möchten, führen Sie den folgenden Befehl mit der Methode
purgeIdentityMappings
aus: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ätszuordnungsspeichers.IDENTITY_MAPPING_STORE_NAME
: Der Name des Identitätszuordnungsspeichers.FILTER_CONDITION
: einer der folgenden Filtertypen:- Aktualisieren Sie die Uhrzeit. 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ätszuordnungsspeicher verwalten
Sie können Identitätszuordnungsspeicher abrufen, löschen, auflisten und bereinigen.
Identitätszuweisungsspeicher abrufen
Führen Sie den folgenden Befehl mit der Methode
identityMappingStores.get
aus, um einen Identitätszuordnungsspeicher 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ätszuordnungsspeichers.IDENTITY_MAPPING_STORE_NAME
: Der Name des Identitätszuordnungsspeichers.
Speicher für Identitätszuweisungen auflisten
Führen Sie den folgenden Befehl mit der Methode
identityMappingStores.list
aus, um Identity-Mapping-Speicher 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
: Maximale Anzahl der zurückzugebenden Identitätszuordnungsspeicher. Wenn nicht angegeben, lautet die Standardeinstellung 100. Der maximal zulässige Wert beträgt 1.000. Werte über 1.000 werden implizit auf 1.000 umgewandelt.PAGE_TOKEN
: Ein Seitentoken, das von einem vorherigenListIdentityMappingStores
-Aufruf empfangen wurde. Geben Sie diese 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 darf keine Identitätszuweisungen enthalten.
Führen Sie den folgenden Befehl mit der Methode
identityMappingStores.delete
aus, um einen Identitätszuordnungsspeicher 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ätszuordnungsspeichers.IDENTITY_MAPPING_STORE_NAME
: Der Name des Identitätszuordnungsspeichers.