sesion integrar inicio how google developer con authenticator apis google-api google-compute-engine google-api-php-client google-api-client

google-api - inicio - integrar login google en mi web



Error de alcance de autenticación insuficiente con la API de Google (2)

Resultó que tenía que habilitar el alcance de acceso de la API de nube para los servicios en Google Cloud Console para detalles de la instancia de VM: https://console.cloud.google.com/compute/instances

Lamentablemente, no pude cambiarlo porque Google Cloud no lo admite por ahora. Tuve que iniciar una nueva instancia para habilitar el acceso a la API de un servicio. https://googlecloudplatform.uservoice.com/forums/302595-compute-engine/suggestions/13101552-ability-to-change-cloud-api-access-scopes-on-launc

Configuré Google SDK para usar la API de Google con credenciales predeterminadas de la aplicación . Para mi máquina local, creé un archivo json de credenciales y establecí su ruta como GOOGLE_APPLICATION_CREDENTIALS como variable de entorno. Esto funciona como se espera sin problema.

Sin embargo, cuando la aplicación se implementa en Google Cloud VM, arroja el siguiente error:

[Google_Service_Exception] { "error": { "code": 403, "message": "Request had insufficient authentication scopes.", "errors": [ { "message": "Request had insufficient authentication scopes.", "domain": "global", "reason": "forbidden" } ], "status": "PERMISSION_DENIED" } }

De acuerdo con la documentación , la cuenta de servicio integrada debe estar asociada a la instancia de la máquina virtual. Para que funcione, traté de usar credenciales json como lo hice en la máquina local (que funcionó bien) pero tampoco funcionó.

Para tener en cuenta, el mensaje de error es acerca de los ámbitos pero no del problema de autenticación. ¿Qué hacer para que funcione en la instancia de VM de Compute Engine?

Para dar el código de inicialización del cliente:

$client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->addScope(Google_Service_Pubsub::PUBSUB);


Es posible ahora. Su instancia debe ser detenida y luego puede ser su lista de alcance modificada desde la consola en la página editar vm, o en el SDK usando:

gcloud compute instances stop [vmname] gcloud beta compute instances set-scopes [vmname] --scopes="[scopes list]"

Solo tenga en cuenta que con el modo SDK, el segundo comando se restablecerá con los ámbitos de la lista. Actualmente no está disponible la capacidad de agregar solo un nuevo alcance.