agents
latest
false
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Benutzerhandbuch zu Agents

Letzte Aktualisierung 13. März 2026

Einrichtung des anonymen Zugriffs

Überblick

Mit anonymem Zugriff können Sie Konversations-Agents für Benutzer einbetten, die keine UiPath-Konten haben. Dies ist nützlich für kundenorientierte Anwendungen, öffentliche Portale oder alle Szenarien, in denen Benutzer mit Ihrem Agent interagieren sollen, ohne dass eine UiPath-Authentifizierung erforderlich ist.

Anonymer Zugriff erfordert:

  1. Eine vertrauliche externe Anwendung, die im UiPath-Administrator konfiguriert wurde
  2. Ein Tokenendpunkt, der von Ihrer Organisation gehostet wird, um die Authentifizierung zu durchführen
  3. Eine eingebettete Agent-URL, die mit den Authentifizierungsparametern konfiguriert ist
Warnung:

Vertrauliche externe Apps im App-Scope ermöglichen anonymen Zugriff ohne Benutzerauthentifizierung. Konfigurieren Sie Berechtigungen sorgfältig, um einen unbeabsichtigten Datenzugriff zu verhindern. Es wird dringend empfohlen, anonyme Agents hinter Ihrem eigenen Portal oder Ihrer Anmeldung zu platzieren, um Missbrauch zu vermeiden.

Beabsichtigte Benutzer: Benutzer, die ohne Automation Cloud-Konto auf Konversations-Agents zugreifen müssen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein veröffentlichter Konversations-Agent in Orchestrator.
  • Administratorzugriff der Organisation auf das UiPath-Administratorportal.
  • Infrastruktur zum Hosten einer serverlosen Funktion oder eines API-Endpunkts (z. B. AWS Lambda, Azure-Funktionen, Google Cloud-Funktionen).

Schritt 1: Erstellen der externen Anwendung

  1. Gehen Sie auf der UiPath-Startseite zu Administrator.
  2. Wählen Sie Externe Apps aus.
  3. Wählen Sie Anwendung hinzufügen aus.
  4. Füllen Sie die Anwendungsdetails aus:
    • Anwendungsname: Geben Sie der Anwendung einen beschreibenden Namen.
    • Anwendungstyp: Wählen Sie Vertrauliche Anwendung aus.
  5. Fügen Sie die folgenden Scopes als Anwendungs-Scopes hinzu:
APIUmfang
Orchestrator-API-ZugriffOR.Jobs
Orchestrator-API-ZugriffOR.Execution
Orchestrator-API-ZugriffOR.Users
Orchestrator-API-ZugriffOR.Folders
Ablaufverfolgungen API-ZugriffTraces.Api
Konversations-AgentsConversationalAgents
  1. Klicken Sie auf Hinzufügen (für diesen Client ist keine Umleitungs-URL erforderlich).
  2. Ein Popup zeigt die App-ID und den geheimen App-Schlüssel an .
Wichtig:

Kopieren Sie den geheimen App-Schlüssel und speichern Sie ihn sicher. Sie können es nach dem Schließen dieses Fensters nicht mehr anzeigen und benötigen es beim Erstellen des Token-Endpunkts.

Hinweis:

Das Hinzufügen von Scopes als Benutzer-Scopes anstelle von Anwendungs-Scopes bewirkt, dass die Chat-App die Benutzeranmeldung anfordert, wodurch der Zweck des anonymen Zugriffs zugefügt wird.

Schritt 2: Berechtigungen für externe Anwendungen konfigurieren

Nach Erstellung der externen Anwendung konfigurieren Sie deren Berechtigungen, um zu steuern, auf welche Ressourcen der anonyme Agent zugreifen kann.

Weisen Sie Zugriff auf Mandantenebene zu

  1. Gehen Sie zu Orchestrator.
  2. Wählen Sie Mandant oben links aus.
  3. Wählen Sie in der Symbolleiste Zugriff verwalten aus.
  4. Wählen Sie Externe Apps aus.
  5. Wählen Sie Externe App zuweisen aus.
  6. Suchen Sie die externe App, die Sie erstellt haben, und wählen Sie sie aus.
  7. Wählen Sie unter Zusätzliche Rollen die erforderlichen Rollen aus:
    • Mindestens erforderlich: Automation User.
    • Fügen Sie zusätzliche Rollen nur so hinzu, wie sie für Ihren Anwendungsfall erforderlich sind.
  8. Wählen Sie Zuweisen aus.

Weisen Sie Zugriff auf Ordnerebene zu

  1. Gehen Sie im Orchestrator zu Ordnern .
  2. Für jeden Ordner benötigt der Agent Zugriff auf:
    1. Wählen Sie den Ordner aus.
    2. Wählen Sie Konto/Gruppe/externe App zuweisen aus.
    3. Wählen Sie Ihre externe App aus der Dropdownliste aus.
    4. Weisen Sie die erforderlichen Rollen zu.
    5. Wählen Sie Zuweisen aus.
Hinweis:

Die externe App wird auf alle Ressourcen beschränkt, für die sie keine expliziten Berechtigungen hat. Stellen Sie sicher, dass die App Zugriff auf alle Kontexte, Tools und Ressourcen hat, die der Konversations-Agent benötigt.

Schritt 3: Erstellen eines Token-Endpunkts

Ein Token-Endpunkt ist erforderlich, da der eingebettete Konversations-Agent die geheimen Clientschlüssel nicht sicher speichern kann. Ihr Tokenendpunkt authentifiziert sich bei UiPath mithilfe der Client-Anmeldeinformationen und gibt ein Zugriffstoken an den eingebetteten Agenten zurück.

Wir empfehlen eine serverlose Architektur für den Tokenendpunkt:

  • Niedrige Kosten: Beispielsweise beträgt der AWS Lambda-Preis für 3.000.000 Antworten/Monat etwa 0,40 USD.
  • Minimale Wartung: Keine Server zu verwalten.
  • Einfache Skalierung: Bewältigt Datenverkehrsspitzen automatisch.

Sicherheitsüberlegungen

Warnung:

Der geheime Clientschlüssel ist sehr vertraulich. Wenn es unbeabsichtigt offengelegt wird, löschen Sie den geheimen Schlüssel sofort und generieren Sie einen neuen in den Einstellungen für die externe Anwendung .

Stellen Sie sicher, dass die Implementierung Ihres Tokenendpunkts:

  • Speichert den geheimen Clientschlüssel sicher (Umgebungsvariablen, Geheimnismanager)
  • Validiert die Herkunft der Anforderung, um unbefugten Zugriff zu verhindern
  • Verwendet HTTPS für die gesamte Kommunikation

Beispielimplementierung

Der folgende JavaScript-Code kann für Ihre serverlose Plattform angepasst werden. Der Antworttext muss {access_token: <token>} zurückgeben:

// Whitelist: Configure allowed origins for your deployment
const ALLOWED_ORIGINS = [
  'https://cloud.uipath.com/*',
  // Add your application domains here
];

function matchesOriginPattern(origin, pattern) {
  try {
    const originUrl = new URL(origin);
    const originBase = `${originUrl.protocol}//${originUrl.host}`;

    if (pattern.includes('*')) {
      const regexPattern = pattern
        .replace(/[.+?^${}()|[\]\\]/g, '\\$&')
        .replace(/\*/g, '.*');
      const regex = new RegExp(`^${regexPattern}$`);
      return regex.test(originBase);
    } else {
      return originBase.startsWith(pattern);
    }
  } catch (e) {
    return false;
  }
}

function checkOrigin(req) {
  const origin = req.headers.origin || req.headers.referer;

  if (!origin) {
    const host = req.headers.host;
    if (host && (host.includes('localhost') || host.includes('127.0.0.1'))) {
      return true;
    }
    return false;
  }

  return ALLOWED_ORIGINS.some(pattern => matchesOriginPattern(origin, pattern));
}

async function getClientAccessToken() {
  const clientId = process.env.CLIENT_ID;
  const clientSecret = process.env.CLIENT_SECRET;
  const scope = 'OR.Default ConversationalAgents Traces.Api';

  const params = new URLSearchParams({
    grant_type: 'client_credentials',
    client_id: clientId,
    client_secret: clientSecret,
    scope: scope
  });

  const response = await fetch('https://cloud.uipath.com/identity_/connect/token', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: params.toString()
  });

  if (!response.ok) {
    const errorText = await response.text();
    throw new Error(`Token request failed: ${response.status} ${errorText}`);
  }

  const data = await response.json();
  return data.access_token;
}

export async function token(context, req) {
  if (!checkOrigin(req)) {
    context.res = {
      status: 403,
      headers: { 'Content-Type': 'application/json' },
      body: { error: 'Origin not allowed' }
    };
    return;
  }

  try {
    const accessToken = await getClientAccessToken();
    context.res = {
      status: 200,
      headers: { 'Content-Type': 'application/json' },
      body: { access_token: accessToken }
    };
  } catch (error) {
    console.error('Error fetching access token:', error);
    context.res = {
      status: 500,
      headers: { 'Content-Type': 'application/json' },
      body: { error: 'Failed to fetch access token' }
    };
  }
}
// Whitelist: Configure allowed origins for your deployment
const ALLOWED_ORIGINS = [
  'https://cloud.uipath.com/*',
  // Add your application domains here
];

function matchesOriginPattern(origin, pattern) {
  try {
    const originUrl = new URL(origin);
    const originBase = `${originUrl.protocol}//${originUrl.host}`;

    if (pattern.includes('*')) {
      const regexPattern = pattern
        .replace(/[.+?^${}()|[\]\\]/g, '\\$&')
        .replace(/\*/g, '.*');
      const regex = new RegExp(`^${regexPattern}$`);
      return regex.test(originBase);
    } else {
      return originBase.startsWith(pattern);
    }
  } catch (e) {
    return false;
  }
}

function checkOrigin(req) {
  const origin = req.headers.origin || req.headers.referer;

  if (!origin) {
    const host = req.headers.host;
    if (host && (host.includes('localhost') || host.includes('127.0.0.1'))) {
      return true;
    }
    return false;
  }

  return ALLOWED_ORIGINS.some(pattern => matchesOriginPattern(origin, pattern));
}

async function getClientAccessToken() {
  const clientId = process.env.CLIENT_ID;
  const clientSecret = process.env.CLIENT_SECRET;
  const scope = 'OR.Default ConversationalAgents Traces.Api';

  const params = new URLSearchParams({
    grant_type: 'client_credentials',
    client_id: clientId,
    client_secret: clientSecret,
    scope: scope
  });

  const response = await fetch('https://cloud.uipath.com/identity_/connect/token', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: params.toString()
  });

  if (!response.ok) {
    const errorText = await response.text();
    throw new Error(`Token request failed: ${response.status} ${errorText}`);
  }

  const data = await response.json();
  return data.access_token;
}

export async function token(context, req) {
  if (!checkOrigin(req)) {
    context.res = {
      status: 403,
      headers: { 'Content-Type': 'application/json' },
      body: { error: 'Origin not allowed' }
    };
    return;
  }

  try {
    const accessToken = await getClientAccessToken();
    context.res = {
      status: 200,
      headers: { 'Content-Type': 'application/json' },
      body: { access_token: accessToken }
    };
  } catch (error) {
    console.error('Error fetching access token:', error);
    context.res = {
      status: 500,
      headers: { 'Content-Type': 'application/json' },
      body: { error: 'Failed to fetch access token' }
    };
  }
}

Umgebungsvariablen

Konfigurieren Sie die folgenden Umgebungsvariablen in Ihrer serverlosen Plattform:

VariableBeschreibung
CLIENT_IDDie App-ID aus Schritt 1
CLIENT_SECRETDer geheime App-Schlüssel aus Schritt 1

Die genaue Methode zum Festlegen von Umgebungsvariablen hängt von Ihrer Hosting-Plattform ab.

Konfigurieren zulässiger Quellen

Das ALLOWED_ORIGINS -Array bietet Sicherheit, indem Token-Anforderungen von nicht autorisierten Quellen abgelehnt werden. Konfigurieren Sie diese Liste so, dass sie Folgendes enthält:

  • https://cloud.uipath.com/* (erforderlich für den eingebetteten Agent)
  • https://staging.uipath.com wenn Sie Anforderungen aus einer Staging-Umgebung zulassen müssen
  • Die Domäne(n) Ihrer Anwendung, wenn sie lokal oder in anderen Umgebungen getestet wird

Schritt 4: Einbetten des Agents mit anonymem Zugriff

Wenn der Tokenendpunkt konfiguriert ist, betten Sie den Konversations-Agent mithilfe des folgenden URL-Formats ein:

https://<cloud_env>.uipath.com/<organization>/<tenant>/autopilotforeveryone_/conversational-agents/?agentId=<agent_id>&externalAuth=true&authEndpoint=<token_endpoint_url>&externalUserId=<user_id>
https://<cloud_env>.uipath.com/<organization>/<tenant>/autopilotforeveryone_/conversational-agents/?agentId=<agent_id>&externalAuth=true&authEndpoint=<token_endpoint_url>&externalUserId=<user_id>

URL-Parameter für anonymen Zugriff

ParameterErforderlichBeschreibung
agentIdJaDie Release-ID des veröffentlichten Agents
externalAuthJaAuf true festlegen, um anonymen Zugriff zu aktivieren
authEndpointJaURL Ihres Tokenendpunkts
externalUserIdJaEindeutiger Bezeichner für den Benutzer (s. Hinweis unten)
Hinweis:

externalUserId ist ein Wert, den Sie definieren und verwalten. Sie trennt den Chatverlauf des Benutzers und ruft ihn ab. Verwenden Sie eine aussagekräftige Benutzer-ID, wenn Sie den Chatverlauf beibehalten müssen, oder eine zufällige GUID, wenn eine Persistenz des Chatverlaufs nicht erforderlich ist.

Beispiel für eine eingebettete URL

https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123
https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123

HTML-Beispiel

<iframe
  src="https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123"
  width="400"
  height="600"
  frameborder="0"
  allow="clipboard-write"
></iframe>
<iframe
  src="https://<cloud_env>.uipath.com/myorg/mytenant/autopilotforeveryone_/conversational-agents/?agentId=12345&externalAuth=true&authEndpoint=https://my-api.example.com/token&externalUserId=user-abc-123"
  width="400"
  height="600"
  frameborder="0"
  allow="clipboard-write"
></iframe>
Hinweis:

Wenn der Parameter externalAuth=true fehlt, verwendet der eingebettete Agent die Standard-Umleitung der Anmeldung anstelle von anonymem Zugriff.

Fehlersuche und ‑behebung

Tokenendpunkt gibt 403 zurück

  • Stellen Sie sicher, dass Ihre ALLOWED_ORIGINS -Liste die richtigen Domänen enthält.
  • Überprüfen Sie, ob der Ursprungs-Header der Anforderung korrekt gesendet wird.
  • Testen Sie den Endpunkt direkt, um das Problem zu isolieren.

Tokenanforderung schlägt mit Authentifizierungsfehler fehl

  • Überprüfen Sie, ob die Umgebungsvariablen CLIENT_ID und CLIENT_SECRET korrekt festgelegt sind.
  • Bestätigen Sie, dass die externe Anwendung noch im UiPath-Administrator aktiv ist.
  • Stellen Sie sicher, dass die Tokenendpunkt-URL im Code auf die richtige UiPath-Umgebung verweist.

Agent kann nicht auf Ressourcen zugreifen

  • Überprüfen Sie die zugewiesenen Rollen der externen Anwendung im Orchestrator.
  • Stellen Sie sicher, dass Berechtigungen auf Ordnerebene für alle erforderlichen Ordner konfiguriert sind.
  • Stellen Sie sicher, dass die Scopes, die der externen App hinzugefügt wurden, mit dem erforderlichen API-Zugriff übereinstimmen.

Chatverlauf wird nicht beibehalten

  • Stellen Sie sicher, dass Sie eine konsistente externalUserId für denselben Benutzer verwenden.
  • Stellen Sie sicher, dass die Benutzer-ID in der eingebetteten URL korrekt übergeben wird.

Nächste Schritte

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben