Autentica a desarrolladores

Además de las acciones administrativas, como crear, actualizar y borrar servicios, los desarrolladores quieren probar los servicios de forma privada antes de publicarlos.

Antes de comenzar

Asegúrate de otorgar permisos para acceder a los servicios a los que te autenticas. Debes otorgar la función de invocador de Cloud Run al desarrollador o al grupo de desarrolladores:

IU de Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud Console

  2. Selecciona el servicio.

  3. Haz clic en Mostrar panel de información, en la esquina superior derecha, para que aparezca la pestaña Permisos.

  4. Haz clic en Agregar miembros.

  5. En el campo Agregar miembros, ingresa el correo electrónico de la cuenta del desarrollador.

  6. Selecciona la función de Cloud Run Invoker en el menú desplegable Seleccionar una función.

  7. Haz clic en Guardar.

gcloud

Usa el comando gcloud run services add-iam-policy-binding:

gcloud run services add-iam-policy-binding SERVICE \
  --member='USER:EMAIL' \
  --role='roles/run.invoker'

En el ejemplo anterior, se ilustra lo siguiente:

  • SERVICE es el nombre del servicio.
  • USER es el valor user o group, según si autorizas a un solo desarrollador o a un grupo.
  • EMAIL es la cuenta de correo electrónico.

    Por ejemplo:

    gcloud run services add-iam-policy-binding myservice \
    --member='user:test-user@gmail.com' \
    --role='roles/run.invoker'
    

Prueba tu servicio privado

La manera más fácil de probar un servicio que requiere autenticación es usar una herramienta como curl y pasar un token de autenticación en el encabezado Authorization:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

A fin de que el comando curl funcione, debes pasar un token de identidad válido para un usuario con el permiso run.routes.invoke, como administrador de Cloud Run o invocador de Cloud Run. Consulta las funciones de IAM de Cloud Run para ver la lista completa de las funciones y los permisos asociados con estas.

Como se muestra en el ejemplo, a fin de obtener un token de identidad válido para la identidad que accedió a gcloud y se encuentra activa, puedes usar gcloud auth print-identity-token. Ten en cuenta que los tokens de ID generados con el comando gcloud solo deben usarse en una configuración de desarrollo porque no requiere especificar un "público". Exigir audience reduce el riesgo de ataques de repetición. Por el contrario, audience es obligatorio cuando se generan tokens desde cuentas de servicio.

Para que la reutilización sea conveniente, puedes crear un alias de línea de comandos en tu perfil de shell de macOS o Linux:

alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-identity-token)"'

Úsalo para realizar solicitudes a tus servicios:

gcurl OPTIONAL_CURL_FLAGS SERVICE_URL

Para probar un sitio web o una API en el navegador, puedes usar las extensiones del navegador que modifican los encabezados de solicitud HTTP.