Tokenbasierte Authentifizierung für die CLI
Mit der tokenbasierten Authentifizierung für die CLI können Sie ein temporäres Sessiontoken erstellen, das zur Authentifizierung einer CLI-Befehlsanforderung verwendet werden kann. Sie können dieses Token mit oder ohne Webbrowser generieren.
Anforderungen
Die Anforderungen entsprechen denen, die für die CLI unter Anforderungen aufgeführt werden.
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 im Terminal den folgenden Befehl 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-Sitzungen ohne Browser erstellen
Um ein Benutzertoken ohne Browser zu generieren, müssen Sie sich zunächst mit einer der folgenden Methoden authentifizieren:
-
API-Schlüsselbasierte Authentifizierung (oci setup config)
-
Sessiontoken-basierte 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 wird ein Public/Private-Key-Paar erstellt und der Speicherort der Private-Key-Datei in der Datei .config
aktualisiert.
Auf Sessiontoken basierende Authentifizierung
oci session authenticate --no-browser --auth security_token
Optionale Argumente
Bei der schlüsselbasierten und sessiontokenbasierten Authentifizierung können Sie einen Pfad zu einem Public Key als Argument angeben. Dadurch wird ein Sessiontoken bereitgestellt, das mit dem entsprechenden Private Key signiert werden kann, während das generierte Token verwendet wird.
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 erneut mit
oci session authenticate --no-browser
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 Computer 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, führen Sie den folgenden Prozess aus.
Diese Methode funktioniert nur für die OCI-SDKs für Go und Python. Das folgende Beispiel gilt für 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'])