INVALID_LOGIN in Salesforce-Deployments beheben

Die Anmeldedaten oder Sitzung, die eine CI-Pipeline zur Authentifizierung bei Salesforce verwendet, wurden abgelehnt, bevor das Deployment überhaupt starten konnte.

Tritt auf bei: Authentifizierung, bevor jegliche Deploy- oder DML-Logik läuft

Was das bedeutet

INVALID_LOGIN ist ein Authentifizierungsfehler, kein Metadatenfehler: Salesforce hat den Anmeldeversuch selbst abgelehnt, sodass keinerlei Deployment-Logik ausgeführt wurde. In einem CI/CD-Kontext bedeutet dies fast immer eine abgelaufene Sitzung, eine widerrufene Connected App oder eine IP-Beschränkung, die die Anmeldeanfrage der Pipeline blockiert.

Da die Authentifizierung vor allem anderen erfolgt, sagt dieser Fehler nichts über den Inhalt des Deployments aus, ein Paket, das noch nie ein echtes Deployment zum Scheitern gebracht hat, kann trotzdem INVALID_LOGIN auslösen, wenn die Anmeldedaten zur Verbindung mit der Org ungültig sind.

Diagnose

Häufige Ursachen

Abgelaufenes oder widerrufenes OAuth-Token oder abgelaufene Sitzung
Ein Refresh-Token, eine Connected-App-Autorisierung oder eine gespeicherte Sitzung, die von der Pipeline verwendet wird, ist abgelaufen oder wurde in der Ziel-Org manuell widerrufen.
IP-Beschränkungen blockieren den CI-Runner
Die Anmelde-IP-Bereiche der Org oder die IP-Beschränkungen der Connected App enthalten nicht die aktuelle IP-Adresse des CI/CD-Runners.
Passwort oder Sicherheitstoken geändert
Das Passwort oder Sicherheitstoken des Integrationsbenutzers wurde zurückgesetzt, aber die gespeicherten Anmeldedaten der CI-Pipeline wurden nicht entsprechend aktualisiert.

Die Lösung

  1. Erneut authentifizieren und gespeicherte Anmeldedaten aktualisieren
    Verbinden Sie die OAuth-Autorisierung der CI-Pipeline neu oder generieren Sie eine neue Sitzung für den Integrationsbenutzer.
    sf org login jwt --client-id $CONSUMER_KEY --jwt-key-file server.key --username [email protected] --instance-url https://login.salesforce.com
  2. IP-Bereich des CI-Runners zu vertrauenswürdigen IPs hinzufügen
    Aktualisieren Sie die Netzwerkzugriffseinstellungen der Org oder die IP-Lockerungsrichtlinie der Connected App, um den IP-Bereich der Pipeline zuzulassen.
  3. Anmeldedaten in der Pipeline am selben Tag rotieren, an dem sie sich in Salesforce ändern
    Aktualisieren Sie den CI-Secret-Store sofort, sobald das Passwort, Token oder die Connected App des Integrationsbenutzers geändert wird.
In der Praxis

Wie Serpent das verhindert

Serpent verwaltet Org-Verbindungen und Re-Authentifizierung für seine eigenen Pipelines, sodass eine abgelaufene Sitzung als klare Aufforderung zur erneuten Verbindung auf der Org erscheint, statt als kryptischer Anmeldefehler tief in CI-Logs. Siehe die Bibliothek der Salesforce-Deploymentfehler.

Org- und Git-Verbindungseinstellungen in Serpent

Prävention

JWT-Bearer-Flow statt gespeichertem Benutzernamen und Passwort verwenden
Authentifizieren Sie CI mit dem zertifikatsbasierten JWT-Bearer-Flow einer Connected App, der nicht abläuft wie ein Sitzungstoken oder ein fest codiertes Passwort.
IP-Lockerung der Connected App für bekannte Automatisierung konfigurieren
Konfigurieren Sie die IP-Lockerung passend für die von CI verwendete Connected App, statt IP-Beschränkungen mit einer fest codierten, rotierenden Allowlist zu bekämpfen.
Bei Anmeldedaten-Rotation alarmieren, nicht erst bei Pipeline-Fehlern
Verknüpfen Sie Passwort- oder Sicherheitstoken-Zurücksetzungen in Salesforce mit einer Benachrichtigung, die das Team daran erinnert, CI-Secrets am selben Tag zu aktualisieren, bevor der nächste geplante Lauf fehlschlägt.
Häufige Fragen

INVALID_LOGIN, erklärt

Warum tritt INVALID_LOGIN nur in CI auf, nicht wenn ich mich manuell anmelde?
Manuelle Anmeldungen durchlaufen den vollständigen Browser-MFA- und Sitzungsablauf, während CI-Pipelines sich mit einem gespeicherten Token oder einer Sitzung authentifizieren, die stillschweigend ablaufen, widerrufen werden oder außerhalb einer IP-Beschränkung fallen kann, ohne dass es jemand bemerkt, bis zum nächsten automatisierten Lauf.
Bricht die Aktivierung von MFA für den Integrationsbenutzer die CI-Anmeldungen?
Das kann passieren, wenn die Pipeline eine Benutzername-Passwort-Authentifizierung verwendet, da MFA-Abfragen nicht skriptfähig sind. JWT-Bearer-Flow und zertifikatsbasierte Authentifizierung vermeiden dies vollständig, da sie nicht über den interaktiven Anmeldebildschirm laufen.
Sagt mir dieser Fehler genau, ob es sich um ein Anmeldedaten- oder ein IP-Problem handelt?
Nicht immer präzise. Der Meldungstext deutet oft darauf hin, aber im Zweifel prüfen Sie zuerst die Anmeldehistorie der Connected App und die IP-Beschränkungseinstellungen der Org, da sich beides schnell ausschließen lässt.

Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.

In unter 15 Minuten eingerichtet. Keine DevOps-Einstellung nötig.

Neugierig auf schnelleres Shipping, bevor Sie einsteigen? Sprechen wir

Unverbindlich.