Authentifizierungsreferenz authentication-reference
Auf dieser Seite können Sie Authentifizierungsfelder und Verträge nachschlagen. Anweisungen zum Einrichten finden Sie unter Endbenutzer bei Ihrem eigenen Identitätsanbieter authentifizieren.
Authentifizierungseinstellungen authentication-settings
Öffnen Sie Einstellungen > Authentifizierung. Jede Umgebung speichert ihre eigenen Einstellungen. Wählen Sie mit der Workspace-Auswahl die zu bearbeitende Umgebung aus. Das Speichern der Einstellungen wirkt sich nicht auf die andere Umgebung aus.
iss. Muss HTTPS sein. Wird auch als Autorisierungs-Server dieser App veröffentlicht. Ein Identitätsanbieter pro AppValidierungsregeln
offline_access wird in Unterstützte Bereiche oder in einer Aktion aufgeführtoffline_access fordert ein Aktualisierungs-Token von Ihrem Autorisierungs-Server an, anstatt Zugriff auf diese App zu gewähren, sodass es sich nicht um einen Bereich handelt, für den diese App wirbt. Sie müssen sie nicht auflisten - die LLM-Plattform fordert sie direkt von Ihrem Autorisierungs-Server anNachfolgende Schrägstriche bei Aussteller werden normalisiert. Der iss toleriert den Unterschied, sodass Token eines Anbieters, die immer einen Schrägstrich enthalten, weiterhin validiert werden.
Authentifizierungsmodi auth-modes
Festgelegt pro Aktion unter Konfiguration pro Aktion.
noauthoauth2noauth und oauth2Der Handler einer Erforderlich-Aktion wird nie ohne ein gültiges Token mit korrektem Bereich ausgeführt. Der Handler einer Optional-Aktion wird immer ausgeführt und kann die Anmeldung selbst mit extra.challengeAuth() anfordern.
Erforderlich ist daher der einzige Modus, der nicht authentifizierte Aufrufer zurückweist. Eine App lehnt alle anonymen Aufrufe nur ab, wenn jede Aktion Erforderlich ist. Wenn eine Aktion Keine oder Optional ist, verwendet die App eine gemischte Authentifizierung, da mindestens eine Aktion anonyme Aufrufe akzeptiert.
Authentifizierungsmodi werden nur wirksam, wenn Authentifizierung aktivieren aktiviert ist. Änderungen werden bei der nächsten Bereitstellung der App wirksam.
Durch das Ändern des Authentifizierungsschalters werden auch die Modi für die einzelnen Aktionen neu geschrieben:
Beim Wechsel zu Workspace werden Modi nie neu geschrieben. Die Auswahl lädt die gespeicherte Konfiguration der anderen Umgebung, ohne sie zu ändern.
Wenn Authentifizierung aktivieren und jede Aktion auf Keine festgelegt ist, erfordert die App keine Authentifizierung, veröffentlicht aber dennoch ihren Autorisierungs-Server zur Erkennung. Um die App vollständig öffentlich zu machen, schalten Sie sie aus.
Eine App kann für einzelne Aktionen verschiedene Authentifizierungsmodi verwenden. Siehe LLM-Plattformverhalten, wie sie von den einzelnen Plattformen angewendet werden.
Token-Anforderungen token-requirements
Ihr Identitätsanbieter muss Zugriffstoken ausgeben, die alle folgenden Anforderungen erfüllen. Die Laufzeit behandelt ein Token, das bei jeder Überprüfung als fehlend fehlschlägt: Der Aufrufer ist nicht authentifiziert, und eine Aktion Erforderlich fordert den Aufrufer zur Anmeldung auf.
RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384 oder PS512. HMAC-Algorithmen wie HS256 werden abgelehntissaudexpscope oder scpscope Zeichenfolge oder greift auf ein Array von Zeichenfolgen in scp zurück. Verwenden Sie eine dieser Formen für Bereiche, die anhand der Anforderungen jeder Aktion überprüft werdensubgetAuthenticatedUserAuthorization: Bearer <token>-HeaderAlle zusätzlichen flachen Ansprüche, die Ihr Anbieter enthält - z. B. tenant oder email -, werden an Ihren Handler weitergeleitet. Verschachtelte Objekte werden entfernt, und lange Zeichenfolgenwerte werden abgeschnitten.
Identitätsanbietererkennung discovery
Ihre App veröffentlicht ihre eigenen RFC 9728 geschützten Ressourcenmetadaten, damit LLM-Plattformen Ihren Autorisierungs-Server finden können. Die geschützten Ressourcenmetadaten müssen nicht erstellt, gehostet oder konfiguriert werden.
Ihr Identitätsanbieter muss die folgenden Erkennungsinformationen bereitstellen:
jwks_uri zu finden. Sie fällt nicht auf den OIDC-Erkennungspfad zurückhttps://auth.example.com/oauth2/default stellt seine Metadaten unter https://auth.example.com/.well-known/oauth-authorization-server/oauth2/default bereitHandler-Authentifizierungs-API handler-auth-api
Das Paket @adobe/llm-apps-runtime exportiert die folgenden Helper. Jeder Helper akzeptiert extra, das zweite Argument, das Ihr Handler erhält.
getAuthenticatedUser(extra)sub Anspruch des angemeldeten Benutzers oder der undefined, wenn der Aufruf nicht authentifiziert wirdhasScope(extra, scope)true, wenn das Token des Aufrufers scope enthältDie verifizierten Token-Informationen sind in extra.authInfo verfügbar, das für einen nicht authentifizierten Aufruf undefined wird.
authInfo.tokenauthInfo.clientIdclient_id oder azp Forderung oder unknownauthInfo.scopesauthInfo.expiresAtexp behauptetauthInfo.resourceauthInfo.extrasub plus alle anderen Pauschalansprüche, die Ihr Identitätsanbieter beinhaltetextra.challengeAuth(options) ist nur für optionale Aktionen verfügbar. Geben Sie das Ergebnis von Ihrem Handler zurück, um den Benutzer zu bitten, sich anzumelden, anstatt Inhalte zurückzugeben.
Der Helper gibt eine Tool-Ergebnisaufgabe für ChatGPT zurück. Claude erfordert eine HTTP-Herausforderung auf Transportebene. Die Laufzeit stellt diese Herausforderung für erforderliche Aktionen bereit, jedoch nicht über den optionalen Handler-Helper.
errorinvalid_token, insufficient_scope oder invalid_request. Standardwert ist insufficient_scopeerrorDescriptionscopeerror. Verwenden Sie invalid_token für einen Aufrufer ohne gültige Sitzung und insufficient_scope nur für einen Aufrufer, dessen Token gültig ist, aber keinen erforderlichen Gültigkeitsbereich hat. Die Laufzeit übergibt den Wert an die LLM-Plattform, die den Wortlaut der Anmeldeaufforderung auswählt. Senden Sie mit Ihrer bevorzugten Eingabeaufforderung den Code, der die Bedingung genau beschreibt, anstatt den Code.LLM-Plattformverhalten platform-behavior
Beide Plattformen unterstützen öffentliche und geschützte Aktionen in derselben App, aber ihre Anmelde-Trigger unterscheiden sich.
extra.challengeAuth()Siehe Claude-LazyAuthentifizierung und ChatGPT- für aktuelles Client-Verhalten. Die Connector-Benutzeroberfläche und -Richtlinie können je nach Konto und Organisation variieren.