UiPath Documentation
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 6. Apr. 2026

Einrichtung des anonymen Zugriffs

Überblick

Mit anonymem Zugriff können Sie Agents für Benutzer einbetten, die keine UiPath-Konten haben.Dies ist nützlich für kundenseitige Anwendungen, öffentliche Portale oder jedes Szenario, in dem Sie möchten, dass Benutzer mit Ihrem agent interagieren, ohne eine UiPath-Authentifizierung zu erfordern.

Anonymer Zugriff erfordert:

  1. Eine vertrauliche externe Anwendung, die in UiPath Admin konfiguriert ist.
  2. Ein Token-Endpunkt, der von Ihrer Organization gehostet wird, um die Authentifizierung zu behandeln.
  3. Eine eingebettete agent-URL, die mit den Authentifizierungsparametern konfiguriert wurde.
Warnung:

Vertrauliche externe Apps mit App-Scope ermöglichen anonymen Zugriff ohne Benutzerauthentifizierung. Konfigurieren Sie Berechtigungen sorgfältig, um unbeabsichtigten Datenzugriff zu verhindern. Wir empfehlen dringend, anonyme Agents hinter Ihrem eigenen Portal oder Ihrer Anmeldung zu schalten, um Missbrauch zu verhindern.

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

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

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

Schritt 1: Erstellen Sie die externe Anwendung.

  1. Navigieren Sie auf der UiPath-Startseite zu Admin.
  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 Typ aus.
  5. Fügen Sie die folgenden Scopes als Anwendungsbereiche 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 (eine Umleitungs-URL ist für diesen Client nicht erforderlich).
  2. Ein Popup zeigt die App-ID und das App-Geheimnis an.
Wichtig:

Kopieren Sie das App-Geheimnis und speichern Sie es sicher. Sie können es nach dem Schließen dieses Fensters nicht mehr anzeigen, und Sie benötigen es beim Erstellen des Token-Endpunkts.

Hinweis:

Das Hinzufügen von Scopes als Benutzer-Scopes anstelle von Anwendungs-Scopes führt dazu, dass die Chat-App die Benutzeranmeldung anfordert, was den Zweck des anonymen Zugriffs zunichte macht.

Schritt 2: Konfigurieren von Berechtigungen für externe Anwendungen

Konfigurieren Sie nach dem Erstellen der externen Anwendung ihre Berechtigungen, um zu kontrollieren, auf welche Ressourcen der anonyme Agent zugreifen kann.

Zugriff auf Mandantenebene zuweisen

  1. Gehen Sie zu Orchestrator.
  2. Wählen Sie oben links die Option „Mandant“ aus.
  3. Wählen Sie in der Symbolleiste die Option „Zugriff verwalten“ aus.
  4. Wählen Sie Externe Apps aus.
  5. Wählen Sie Externe App zuweisen aus.
  6. Suchen Sie nach der von Ihnen erstellten externen App und wählen Sie sie aus.
  7. Wählen Sie unter Zusätzliche Rollen die erforderlichen Rollen aus:
    • Erforderliches Minimum: Automation User.
    • Fügen Sie zusätzliche Rollen nur bei Bedarf für Ihren Anwendungsfall hinzu.
  8. Wählen Sie Zuweisen aus.

Zugriff auf Ordnerebene zuweisen

  1. Navigieren Sie zu Ordnern in Orchestrator.
  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 dem Dropdownmenü aus.
    4. Weisen Sie die erforderlichen Rollen zu.
    5. Wählen Sie Zuweisen aus.
Hinweis:

Die externe App ist 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 Conversational Agent benötigt.

Schritt 3: Erstellen Sie einen Token-Endpunkt

Ein Token-Endpunkt ist erforderlich, da der eingebettete Conversational Agent Clientgeheimnisse nicht sicher speichern kann. Ihr Token-Endpunkt authentifiziert sich mit den Client-Anmeldeinformationen bei UiPath und gibt ein Zugriffstoken an den eingebetteten Agent zurück.

Wir empfehlen eine serverlose Architektur für den Token-Endpunkt:

  • Niedrige Kosten: Zum Beispiel betragen die Preise für AWS Lambda für 3.000.000 Antworten/Monat ungefähr 0,40 USD.
  • Minimale Wartung: Keine zu verwaltenden Server.
  • Einfache Skalierung: Behandelt Verkehrsspitzen automatisch.

Sicherheitsüberlegungen

Warnung:

Das Clientgeheimnis ist sehr vertraulich. Wenn es unabsichtlich offengelegt wird, löschen Sie das Geheimnis sofort und generieren Sie ein neues in den Einstellungen der externen Anwendung.

Stellen Sie sicher, dass Ihre Token-Endpunktimplementierung:

  • Speichert das Clientgeheimnis sicher (Umgebungsvariablen, Umgebungs-Manager)
  • Validiert anfordern Ursprünge, um nicht autorisierten 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 zurückgeben{access_token: <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' }
    };
  }
}
// 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_SECRETDas App-Geheimnis aus Schritt 1

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

Konfigurieren erlaubter Ursprünge

Das ALLOWED_ORIGINS Array bietet Sicherheit, indem Tokenanforderungen von nicht autorisierten Quellen abgelehnt werden. Konfigurieren Sie diese Liste so, dass Folgendes aufgenommen wird:

  • https://cloud.uipath.com/* (erforderlich für den eingebetteten Agenten)
  • https://staging.uipath.com um Anforderungen aus einer Staging-Umgebung zuzulassen.
  • Domains Ihrer Anwendung, wenn Sie lokal oder in anderen Umgebungen testen.

Schritt 4: Einbetten des Agenten mit anonymer Zugriff

Betten Sie nach der Konfiguration des Token-Endpunkts den Agent mit dem folgenden URL-Format 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>

Parameter für anonyme Zugriffs-URL

ParameterErforderlichBeschreibung
agentIdJaDie Release-ID des veröffentlichten Agents
externalAuthJaAktivieren Sie trueanonymen Zugriff.
authEndpointJaURL Ihres Token-Endpunkts
externalUserIdJaEindeutiger Bezeichner für den Benutzer (siehe Hinweis unten)
Hinweis:

Das externalUserIdist ein Wert, den Sie definieren und pflegen. Es trennt und ruft den Chatverlauf des Benutzers ab. Verwenden Sie eine aussagekräftige Benutzer-ID, wenn Sie den Chatverlauf pflegen müssen, oder eine zufällige GUID, wenn keine Persistenz des Chatverlaufs erforderlich ist.

Beispiel für 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 externalAuth=true Parameter fehlt, verwendet der eingebettete Agent den Standardumleitungsflow bei der Anmeldung anstelle des anonymen Zugriffs.

Fehlersuche und ‑behebung

Token-Endpunkt gibt 403 zurück.

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

Die Anforderung schlägt mit einem Authentifizierungs-Error fehl.

  • Stellen Sie sicher, dass die ${DNT_1} CLIENT_ID und CLIENT_SECRET${DNT_2} Umgebungsvariablen korrekt festgelegt sind.
  • Bestätigen Sie im UiPath Admin, dass die externe Anwendung noch aktiv ist.
  • Prüfen Sie, ob die Token-Endpunkt-URL im Code auf die richtige UiPath-Umgebung verweist.

Agent kann nicht auf Ressourcen zugreifen

  • Überprüfen Sie die der externen Anwendung zugewiesenen Rollen in Orchestrator.
  • Stellen Sie sicher, dass Berechtigungen auf Ordnerebene für alle erforderlichen Ordner konfiguriert sind.
  • Prüfen Sie, ob die der externen App hinzugefügten Scopes dem erforderlichen API-Zugriff entsprechen.

Chatverlauf wird nicht gespeichert.

  • Stellen Sie sicher, dass Sie eine konsistente Nutzung externalUserIdfür denselben Benutzer gewährleisten.
  • 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