Tokenbasierte Authentifizierung für die CLI
Mit der tokenbasierten Authentifizierung für die CLI können Sie ein temporäres Sessiontoken erstellen, mit dem eine CLI-Befehlsanforderung authentifiziert werden kann. Sie können dieses Token mit oder ohne Verwendung eines Webbrowsers generieren.
Anforderungen
Die Anforderungen entsprechen den Anforderungen, die für die CLI unter Anforderungen aufgeführt sind.
CLI-Session mit einem Browser erstellen
So verwenden Sie die tokenbasierte Authentifizierung für die CLI auf einem Rechner mit einem Webbrowser:
- Führen Sie den folgenden Befehl im Terminal aus:
oci session authenticate
- Region auswählen.
- Geben Sie im Browser Ihre Benutzerzugangsdaten ein.
- Schließen Sie nach erfolgreicher Authentifizierung den Browser, und folgen Sie der interaktiven Eingabeaufforderung auf dem Terminal. Es wird eine Konfigurationsdatei erstellt.
CLI-Session ohne Browser erstellen
Um ein Benutzertoken ohne Browser zu generieren, müssen Sie sich zunächst mit einer der folgenden Methoden authentifizieren:
-
Auf API-Schlüssel basierende Authentifizierung (OCKS-Setupkonfiguration)
-
Auf Sessiontoken basierende Authentifizierung (oci session authenticate)
Auf API-Schlüssel basierende Authentifizierung
Um die tokenbasierte Authentifizierung für die CLI ohne Webbrowser zu verwenden, führen Sie den folgenden Befehl aus:
oci session authenticate --no-browser
Mit diesem Befehl erstellen Sie ein Public/Private-Key-Paar, und aktualisieren den Speicherort der Private-Key-Datei in der Datei .config
.
Auf Sessiontoken basierende Authentifizierung
oci session authenticate --no-browser --auth security_token
Optionale Argumente
Bei der API-Schlüssel- und Sessiontoken-basierten Authentifizierung können Sie einen Pfad zu einem Public Key als Argument angeben. Dadurch wird ein Sessiontoken bereitgestellt, das mit dem entsprechenden Private Key bei Verwendung des generierten Tokens signiert werden kann.
oci session authenticate --no-browser --public-key-file-path <path-to-public-key> --profile <profile_name> --auth security_token
--session-expiration-in-minutes.
Beispiel:oci session authenticate --no-browser --session-expiration-in-minutes <token-persistence-time-in-minutes> --profile <profile_name> --auth security_token
Wenn Sie mehrere Benutzertoken benötigen, führen Sie die tokenbasierte Authentifizierung ohne Browser mit
oci session authenticate --no-browser
erneut aus.Token validieren
Um zu prüfen, ob ein Token gültig ist, führen Sie den folgenden Befehl aus:
oci session validate --config-file <path_to_config_file> --profile <profile_name> --auth security_token
Sie müssen
--auth security_token
verwenden oder die Umgebungsvariable OCI_CLI_AUTH
mit security_token
belegen, um CLI-Befehle mit dem Sessiontoken zu authentifizieren. Token aktualisieren
Bei Sessions, die mit
oci session authenticate --no-browser
authentifiziert wurden, beträgt der Höchstwert 60 Minuten. Um das Token zu aktualisieren, führen Sie den folgenden Befehl aus:
oci session refresh --profile <profile_name>
Sie müssen
--auth security_token
verwenden oder die Umgebungsvariable OCI_CLI_AUTH
mit security_token
belegen, um CLI-Befehle mit dem Sessiontoken zu authentifizieren. CLI-Sitzungstoken auf einen anderen Rechner kopieren
Um die tokenbasierte Authentifizierung für die CLI auf einem Rechner ohne Webbrowser zu verwenden, müssen Sie eine Session von einem webfähigen Rechner exportieren und sie dann auf dem Rechner ohne Webbrowser importieren.
Vom Quellrechner exportieren
Gehen Sie auf dem Quellrechner mit dem Browser wie folgt vor:
- Führen Sie den folgenden Befehl in der CLI aus:
oci session authenticate
- Geben Sie die Benutzerzugangsdaten ein, die Sie auf dem Zielrechner verwenden möchten.
- Um eine ZIP-Datei zu exportieren, führen Sie den folgenden Befehl aus:
oci session export --profile <profile_name> --output-file <output_filename>
Informationen zum Prüfen des Exports finden Sie unter Token validieren.
Auf Zielrechner importieren
Führen Sie auf dem Zielrechner ohne den Browser den folgenden Befehl in der CLI aus:
oci session import --session-archive <path_to_exported_zip>
Sie können den Import testen, indem Sie Folgendes ausführen:
oci iam region list --config-file <path_to_config_file> --profile <profile_name> --auth security_token
Es sollte eine Liste mit Regionen zurückgeben werden. Die erfolgreiche Ausführung dieses Befehls verifiziert, dass die Tokenauthentifizierung wie erwartet funktioniert.
Skripte auf einem Rechner ohne Browser ausführen
Nach dem Importieren der Authentifizierung auf dem Zielrechner können Sie die CLI und die SDKs mit den folgenden Einstellungen ausführen.
Für die CLI
Um Skripte in der CLI auszuführen, hängen Sie das folgende Suffix an:
--config-file <path_to_config_file> --profile <profile_name> --auth security_token
Für SDKs
Um SDKs auf dem Zielrechner auszuführen, müssen Sie die Tokendatei lesen und dann zur Initialisierung von SecurityTokenSigner
verwenden.
Nachdem Sie eine Tokendatei erstellt haben, wie unter CLI-Session mit einem Browser erstellen gezeigt, verwenden Sie den folgenden Prozess.
Diese Methode funktioniert nur für die OCI-SDKs für Go und Python. Das folgende Beispiel bezieht sich auf das Oracle Cloud Infrastructure-SDK für Python:
- Lesen Sie die Tokendatei aus dem Parameter
security_token_file
der.config
-Datei.config = oci.config.from_file(profile_name='TokenDemo') token_file = config['security_token_file'] token = None with open(token_file, 'r') as f: token = f.read()
- Lesen Sie den Private Key, der von der
.config
-Datei angegeben wird.private_key = oci.signer.load_private_key_from_file(config['key_file'])
- Erstellen Sie den ersten SDK-Client mit der vom Benutzer angegebene Region als Ziel.
signer = oci.auth.signers.SecurityTokenSigner(token, private_key) client = oci.identity.IdentityClient({'region': region}, signer=signer)
- Erstellen Sie die Identitätsanforderung.
result = client.list_region_subscriptions(config['tenancy'])