Diese Dokumentation gilt für die föderalen Deployments von Devin. Zurück zur Devin-Dokumentation
Auth-Datei erstellen
Die Datei legt genau einen Modus fest. Ist die Datei nicht vorhanden, verhält sich das Produkt so, als enthielte sie
"mode": "license".
/etc/devin/auth.json
Unbekannte Felder werden abgelehnt. Im Modus
license sind nur schema_version und mode zulässig.
Client bei Ihrem IdP registrieren
Die CLI führt den OIDC-Authorization-Code-Flow mit PKCE (S256) als öffentlicher Client aus; ein Client-Secret gibt es nicht. Der Client, den Sie registrieren, muss folgende Anforderungen erfüllen:- Ein öffentlicher Client (ohne Client-Secret) mit der ID, die Sie in
client_idangeben, zum Beispieldevin-cli, mit aktiviertem Authorization-Code-Grant und der PKCE-MethodeS256. http://127.0.0.1/callbackmuss als gültige Weiterleitungs-URI registriert sein. Für den Browser-Flow lauscht die CLI auf einem zufälligen Loopback-Port (http://127.0.0.1:<port>/callback), für den manuellen Flow verwendet sie die feste Adressehttp://127.0.0.1/callback. Gemäß RFC 8252 sollte der IdP den Loopback-Port ignorieren; falls Ihr IdP dies nicht tut, registrieren Sie eine passende Wildcard.- Wenn Sie
required_groupverwenden möchten, muss das ID-Token den ingroups_claimangegebenen Claim für die Gruppenmitgliedschaft enthalten (standardmäßiggroups). - Der IdP muss beim Refresh ein ID-Token zurückgeben (was die meisten tun, wenn der Geltungsbereich
openidgewährt wurde), und die Gültigkeitsdauer des ID-Tokens für diesen Client muss kurz sein. Die Gründe dafür finden Sie unter Wie sich ein Entzug auswirkt.
Anmelden
Melden Sie sich über ein Terminal auf der Workstation an:127.0.0.1-URL weitergeleitet, die sich nicht laden lässt. Kopieren Sie diese vollständige URL (einschließlich der Query-Parameter) und fügen Sie sie anschließend im Terminal ein.
Status prüfen und abmelden
Status: not logged in (<reason>), gefolgt von Run \devin auth login` to sign in.`
Was die CLI validiert
Das ID-Token wird lokal validiert: die Signatur anhand des JWKS des IdP,iss, aud, der Ablaufzeitpunkt (mit einer Toleranz von 120 Sekunden für Uhrenabweichungen), die Login-nonce sowie die Gruppenprüfung. Das ID-Token und das Aktualisierungstoken werden im lokalen Anmeldedatenspeicher mit Berechtigungen ausschließlich für den Eigentümer (0600) zwischengespeichert und im Hintergrund über den IdP aktualisiert.
Wenn SSO konfiguriert ist, keine gültige Anmeldung vorliegt und auch die Aktualisierung im Hintergrund fehlschlägt, bricht die CLI beim Start mit einer Fehlermeldung ab, die den Nutzer auffordert, devin auth login auszuführen.
Die CLI folgt grundsätzlich keinen HTTP-Weiterleitungen des IdP: Liefert der Discovery-, JWKS- oder Token-Endpunkt einen 3xx-Status, schlägt die Anmeldung mit einer Fehlermeldung fehl, die den betreffenden Endpunkt nennt. issuer muss daher auf die URLs verweisen, die der IdP tatsächlich bereitstellt.
Per automatischer Erkennung ermittelte Endpunkte müssen auf dem Issuer liegen
Die per automatischer Erkennung ermittelten Werteauthorization_endpoint, token_endpoint und jwks_uri müssen dasselbe Schema, denselben Host und denselben Port wie issuer haben (Standard-Ports gelten als gleichwertig). Ein Endpunkt auf einem anderen Host wird abgelehnt, und die Anmeldung schlägt mit einer Fehlermeldung wie dieser fehl:
hostname-backchannel-dynamic=true: Hier werden token_endpoint und jwks_uri auf den internen hostname umgeschrieben, über den die CLI die Verbindung hergestellt hat. Fügen Sie den zusätzlichen Host nur dann hinzu, wenn Sie anhand der Konfiguration des IdP selbst bestätigt haben, dass er beabsichtigt ist:
host (beliebiger Port) oder host:port und werden ohne Berücksichtigung der Groß-/Kleinschreibung abgeglichen. Es gibt keine Platzhalter und keine Möglichkeit, die Prüfung zu deaktivieren. Die Positivliste lockert die TLS-Anforderungen nie: Ein http://-Endpunkt wird unter einem https://-Issuer weiterhin abgelehnt. Fügen Sie einen Host nicht nur deshalb hinzu, weil er in einer Fehlermeldung bei der Anmeldung genannt wird – der Fehler zeigt, dass die Prüfung funktioniert.
Wie sich ein Entzug auswirkt
Die Gruppenprüfung erfolgt anhand des zwischengespeicherten ID-Tokens. Wenn Sie einen Nutzer beim IdP ausrequired_group entfernen (oder den Nutzer deaktivieren), greift dies daher erst bei der nächsten Token-Aktualisierung – spätestens, wenn das aktuelle ID-Token abläuft, zuzüglich einer Toleranz von 120 Sekunden für Zeitabweichungen. Wählen Sie für diesen Client eine kurze Gültigkeitsdauer des ID-Tokens, wenn ein schneller Entzug wichtig ist.
Enthält eine Aktualisierungsantwort kein neues ID-Token, wird weiterhin das zwischengespeicherte ID-Token verwendet, allerdings höchstens 24 Stunden über dessen exp hinaus. Danach muss sich der Nutzer erneut anmelden, selbst wenn der IdP das Aktualisierungstoken noch akzeptiert.
Erneute Validierung in laufenden Sitzungen
Während Devin Desktop (oder ein anderer Client des mitgelieferten Agents) läuft, prüft der Agent die Anmeldung alle 60 Sekunden erneut und erzwingt mindestens alle 15 Minuten eine Token-Aktualisierung beim IdP. Schlägt eine Prüfung fehl, protokolliert der Agent einsso_revalidation_failed-Audit-Ereignis mit dem Code IDP, nimmt keine neuen Aufgaben mehr an und beendet sich. Der Nutzer muss sich dann erneut anmelden und den Client neu starten.
Was protokolliert wird
SSO-Aktivitäten werden alsauth-Ereignisse in das lokale Audit-Protokoll geschrieben. Jedes Ereignis, für das ein validiertes token vorliegt, enthält die SSO-Identität in actor (sso_issuer, sso_subject, sso_user, sso_groups).
IDP-Fehlercodes
Der vollständige Katalog befindet sich auf der Seite Fehlercodes.

