Dynamische Werte übergeben
Die URL und die Header-Werte eines Linked Service können Platzhalter {{params.x}} enthalten, die beim Aufruf des Services gefüllt werden. So passt sich ein einziger Service an jede Anfrage an – er überträgt einen Suchbegriff im Query-String oder leitet das Token des angemeldeten Nutzers weiter, damit Ihr Endpoint ihn authentifizieren kann –, ohne den Wert fest in der Konfiguration zu hinterlegen.
Wo Platzhalter stehen können
- In der URL – z. B.
https://api.example.com/search?q={{params.query}}. Der Wert wird
URL-kodiert, sodass Freitext sicher übergeben werden kann.
- In einem Header-Wert – fügen Sie unter Headers einen Header hinzu, dessen Wert ein Template ist, z. B. einen
Header Authorization mit dem Wert Bearer {{params.token}}.
Ein Platzhalter wird als {{params.<name>}} geschrieben, wobei <name> ein einfacher Bezeichner ist.
Woher die Werte kommen
Werte werden aus zwei Quellen geliefert und zusammengeführt – ein Wert pro Aufruf überschreibt einen Initialisierungswert mit demselben Namen:
- Bei der Initialisierung – für Werte, die während der gesamten Sitzung gleich bleiben (ein Nutzer-Token, eine
Mandanten-ID). Übergeben Sie sie an startAssistant:
skdwn.startAssistant({
assistantId: 'as-xxxxxxxx',
accessToken: 'your-key-or-token',
params: { token: yourUserToken }
});
- Pro Aufruf – für Werte, die vom Moment abhängen (ein Suchbegriff, eine ausgewählte ID). Übergeben Sie sie als
viertes Argument von executeProxyRequest:
executeProxyRequest('search_api', null, callback, { query: userInput });
Ein einzelner Service kann beides gleichzeitig nutzen – einen festen Header {{params.token}} und ein {{params.query}} pro Aufruf in der URL.
params ist nicht userInformation
params dienen nur dazu, diese Platzhalter zu füllen – sie werden nie an das Modell gesendet oder in den Analysen erfasst. Legen Sie Tokens und Anfragewerte in params ab; verwenden Sie userInformation nur für Kontext über den Besucher.
Beispiel: Das Token des Nutzers weiterleiten
Ein gängiges Muster ist, Ihren eigenen Endpoint den Nutzer authentifizieren zu lassen. Konfigurieren Sie den Service mit:
- URL –
https://api.example.com/me/orders - Header – Name
Authorization, WertBearer {{params.token}} - Bei der Initialisierung –
params: { token: <the token your backend issued the user> }
Ihre API erhält einen normalen Header Authorization: Bearer … und validiert ihn, genau wie bei jeder anderen Anfrage. Da Ihr Endpoint das Token validiert, ist das sicher, obwohl der Wert von der Seite geliefert wird: Ein ungültiges oder fremdes Token gewährt nur das, was dieses Token ohnehin erlaubt.
Leiten Sie nur Anmeldeinformationen weiter, die Ihr Endpoint prüft
Ein Wert aus {{params}} stammt von der Seite und ist daher nur vertrauenswürdig, wenn der empfangende Endpoint ihn prüft (ein signiertes Token, das er validiert) oder der Wert nicht sensibel ist (ein Suchbegriff). Behandeln Sie eine rohe ID in params nie als Nachweis dafür, wer der Nutzer ist – validieren Sie stattdessen eine echte Anmeldeinformation.
Verwandte Dokumentation
- Anfragen authentifizieren – ein serverseitig gespeichertes Geheimnis als Alternative zu einem weitergeleiteten Wert.
- Erweiterte Anpassung – wo
executeProxyRequestzu finden ist.