Sie befinden sich hier:
Beispielimplementierung eines sicheren Agentforce Serviceagenten
Die Details zur Implementierung sicherer Agentforce-Serviceagenten variieren je nach Bereitstellungsort des Agenten und den zugehörigen Benutzerauthentifizierungsrichtlinien. Sehen wir uns ein Beispiel an, um ein Gefühl für die zugrunde liegenden Muster zu erhalten.
Erforderliche Editionen
| Verfügbarkeit: Lightning Experience |
| Verfügbarkeit: Enterprise, Performance, Unlimited und Developer Edition. Erforderliche Add-On-Lizenzen variieren je nach Agententyp. |
Wenn Ihr Agentforce-Serviceagent auf einer Experience-Site bereitgestellt wird, müssen Sie die Benutzer, die mit Ihrem Agenten interagieren, manchmal erneut authentifizieren. In solchen Fällen kann die Authentifizierung innerhalb der Sitzung aufgerufen werden.
Benutzer können authentifiziert werden, indem sie in der Unterhaltung einen parametrisierten URL angeben. Der parametrisierte URL sollte auf eine sichere Methode im Experience Cloud-Portal verweisen. Zur Vorbereitung auf die externe Authentifizierung vor dem Senden des parametrisierten URLs wird das Objekt "MessagingSession" mit diesen benutzerdefinierten Feldern konfiguriert.
| Feld | Anfangswert | Definition |
|---|---|---|
| AuthSessionId | NULL | Gibt an, ob derzeit eine AuthSession mit dieser MessagingSession verknüpft ist. Dies gibt an, ob die Messaging-Sitzung authentifiziert ist. |
| AuthRequestTime | DateTime.Now() | Speichert, wann die Authentifizierung angefordert wurde, wodurch die Zuweisung von Identitäten außerhalb des gerichteten Fensters für die MessagingSession eingeschränkt wird und der Zeitraum gesteuert werden kann, in dem die externe Authentifizierung zulässig ist. |
| AccountId | NULL | Stellt sicher, dass der mit der authentifizierten Sitzung verknüpfte Account relativ zu dem im Experience Cloud-Portal authentifizierten Kontakt zugewiesen ist. |
| ContactId | NULL | Stellt sicher, dass der mit der authentifizierten Sitzung verknüpfte Kontakt relativ zu dem im Experience Cloud-Portal authentifizierten Kontakt zugewiesen ist. |
Die Apex-Methode, die den parametrisierten URL verarbeitet, akzeptiert das Feld "MessagingSession.SessionKey". Diese GUID (Globally Unique Identifier) ist für MessagingSession-Datensätze mit Status = "Aktiv" eindeutig. Diese Methode schlägt die zugehörigen MessagingSession-Datensätze mit dieser Abfrage nach.
SELECT Id, Conversation.ConversationIdentifier, Status, FROM MessagingSession
WHERE SessionKey = '1db8a0ab-aae4-4ed9-b6d5-3e7fe85b9574' AND Status = 'Active'
AND AuthSessionId__c = NULL
Wenn diese Abfrage einen Datensatz zurückgibt, stellt dieser Datensatz eine Unterhaltung mit einem Agentforce-Serviceagenten dar, bei der der Benutzer authentifiziert wurde. Der zurückgegebene Datensatz kann dann aktualisiert werden, um die Beziehung zur aktuellen AuthSession des Experience Cloud-Portals darzustellen, beispielsweise wenn die MessagingSession als ms definiert ist.
ms.AuthSessionId__c = SessionManagment.GetCurrentSession().get('SessionId');
User authUser = [SELECT Id, ContactId, AccountId from User WHERE Id = :UserInfo.getUserId()];
ms.AccountId__c = authUser.AccountId;
ms.ContactId__c = authUser.ContactId;
ms.commit();
Der Agentforce-Serviceagent verfügt nun über die Informationen, die er benötigt, um die Identität des Benutzers bei privaten Aktionen zu bestätigen. Er verfügt auch über die ID der AuthSession, die beendet werden kann, sobald die Unterhaltung in der entsprechenden Portalsitzung endet.
In diesem Beispiel wird der Benutzer zu einer Portalseite weitergeleitet, auf der er sich bei der Seite authentifizieren kann. Dadurch wird der MessagingSession-Datensatz für die Agentforce-Sitzung mit der Identität des Benutzers aktualisiert. Er generiert jedoch kein Ereignis in der Agentforce-Sitzung und ist davon abhängig, dass der Benutzer die Unterhaltung in Agentforce fortsetzt, sobald die Authentifizierung abgeschlossen ist.

