Autenticación basada en token para CLI
La autenticación basada en token para la CLI permite crear un token de sesión temporal que se puede utilizar para autenticar una solicitud de comando de la CLI. Puede generar este token con o sin un explorador web.
Requisitos
Los requisitos son los mismos que los que se muestran para la CLI en Requirements.
Creación de una sesión de CLI con un explorador
Para utilizar la autenticación basada en token para CLI en una computadora con un explorador web:
- En el terminal, ejecute el siguiente comando:
oci session authenticate
- Seleccionar una región.
- En el explorador, introduzca sus credenciales de usuario.
- Después de la autenticación correcta, cierre el explorador y siga el indicador interactivo del terminal. Se creará un archivo de configuración.
Creación de una sesión de CLI sin un explorador
Para generar un token de usuario sin un explorador, primero debe autenticarse con uno de los siguientes métodos:
-
Autenticación basada en clave de API (configuración de OCI)
-
Autenticación basada en token de sesión (oci session autenticate)
Autenticación basada en clave de API
Para utilizar la autenticación basada en token para CLI sin un explorador web, ejecute el siguiente comando:
oci session authenticate --no-browser
Este comando crea un par de claves pública/privada y actualiza la ubicación del archivo de clave privada en el archivo .config
.
Autenticación basada en token de sesión
oci session authenticate --no-browser --auth security_token
Argumentos opcionales
Para la autenticación basada en clave de API y en token de sesión, puede proporcionar una ruta de acceso a una clave pública como argumento. Proporciona un token de sesión que se puede firmar con la clave privada correspondiente mientras se utiliza el token generado.
oci session authenticate --no-browser --public-key-file-path <path-to-public-key> --profile <profile_name> --auth security_token
--session-expiration-in-minutes.
Por ejemplo:oci session authenticate --no-browser --session-expiration-in-minutes <token-persistence-time-in-minutes> --profile <profile_name> --auth security_token
Si necesita varios tokens de usuario, vuelva a ejecutar la autenticación basada en token sin explorador con
oci session authenticate --no-browser
.Validación de un token
Para verificar que un token es válido, ejecute el siguiente comando:
oci session validate --config-file <path_to_config_file> --profile <profile_name> --auth security_token
Debe utilizar
--auth security_token
o definir la variable de entorno OCI_CLI_AUTH
en security_token
para autenticar los comandos de la CLI mediante el token de sesión. Refrescamiento de un token
Para las sesiones autenticadas mediante
oci session authenticate --no-browser
, el valor máximo es 60 minutos. Para refrescar el token, ejecute el siguiente comando:
oci session refresh --profile <profile_name>
Debe utilizar
--auth security_token
o definir la variable de entorno OCI_CLI_AUTH
en security_token
para autenticar los comandos de la CLI mediante el token de sesión. Copia de un token de sesión de CLI en otra máquina
Para utilizar la autenticación basada en token para CLI en una computadora sin un explorador web, debe exportar una sesión de una computadora que tenga activada la Web y, a continuación, importarla a la computadora sin un explorador web.
Exportación desde la computadora de origen
En la computadora de origen con el explorador:
- En CLI, ejecute el siguiente comando:
oci session authenticate
- Introduzca las credenciales de usuario que desea utilizar en la computadora de destino.
- Para exportar un archivo zip, ejecute el siguiente comando:
oci session export --profile <profile_name> --output-file <output_filename>
Para verificar la exportación, consulte Validación de un token.
Importación a la computadora de destino
En la computadora de destino sin explorador, ejecute el siguiente comando en CLI:
oci session import --session-archive <path_to_exported_zip>
Puede probar la importación ejecutando lo siguiente:
oci iam region list --config-file <path_to_config_file> --profile <profile_name> --auth security_token
Debe devolver una lista de regiones. La ejecución correcta de este comando verifica que la autenticación con token funciona según lo esperado.
Ejecución de scripts en una computadora sin explorador
Después de importar la autenticación a la computadora de destino, puede ejecutar CLI y los SDK utilizando los siguientes valores.
Para CLI
Para ejecutar scripts en CLI, agregue el siguiente sufijo:
--config-file <path_to_config_file> --profile <profile_name> --auth security_token
Para SDK
Para ejecutar SDK en la computadora de destino, debe leer el archivo de token y, a continuación, utilizarlo para inicializar SecurityTokenSigner
.
Después de crear un archivo de token, como se muestra en Creación de una sesión de CLI con un explorador, use el siguiente proceso.
Este método solo funciona con los SDK de OCI para Go y Python. El siguiente ejemplo es para el SDK de Oracle Cloud Infrastructure para Python:
- Lea el archivo de token del parámetro
security_token_file
del archivo.config
.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()
- Lea la clave privada especificada por el archivo
.config
.private_key = oci.signer.load_private_key_from_file(config['key_file'])
- Cree el cliente de SDK inicial que es el destino de la región especificada por el usuario.
signer = oci.auth.signers.SecurityTokenSigner(token, private_key) client = oci.identity.IdentityClient({'region': region}, signer=signer)
- Realice la solicitud de identidad.
result = client.list_region_subscriptions(config['tenancy'])