Method: accounts.createAuthUri

Si se especifica un identificador de correo electrónico, comprueba y muestra si hay alguna cuenta de usuario registrada con el correo electrónico. Si hay una cuenta registrada, recupera todos los proveedores asociados con el correo electrónico de la cuenta.

Si se especifica el ID del proveedor de un proveedor de identidad (IdP), se crea un URI de autorización para el IdP. Se puede dirigir al usuario a este URI para que acceda con el IdP.

Se requiere una clave de API en la solicitud para identificar el proyecto de Google Cloud.

Solicitud HTTP

POST https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "identifier": string,
  "continueUri": string,
  "openidRealm": string,
  "providerId": string,
  "oauthConsumerKey": string,
  "oauthScope": string,
  "context": string,
  "otaApp": string,
  "appId": string,
  "hostedDomain": string,
  "sessionId": string,
  "authFlowType": string,
  "customParameter": {
    string: string,
    ...
  },
  "tenantId": string
}
Campos
identifier

string

Es el identificador de correo electrónico de la cuenta de usuario para la que se recuperarán los proveedores asociados. Se debe establecer al menos uno de los campos identifier y providerId.

La longitud de la dirección de correo electrónico debe ser inferior a 256 caracteres y debe tener el formato name@domain.tld. La dirección de correo electrónico también debe coincidir con la producción de addr-spec de la RFC 822.

continueUri

string

Es una URL válida a la que el IdP redireccionará al usuario. La URL no puede contener fragmentos ni el parámetro de consulta state reservado.

openidRealm
(deprecated)

string

providerId

string

El ID del proveedor del IdP con el que el usuario accederá Debe ser un ID de proveedor habilitado para el acceso, que puede ser de la lista de IdPs compatibles predeterminados o del formato oidc.* o saml.*. Algunos ejemplos son google.com, facebook.com, oidc.testapp y saml.testapp. Se debe establecer al menos uno de los campos identifier y providerId.

oauthConsumerKey
(deprecated)

string

oauthScope

string

Alcances de OAuth 2.0 adicionales delimitados por espacios que especifican el alcance de la solicitud de autenticación con el IdP. Se usa para los proveedores de identidades de OAuth 2.0.

En el caso del proveedor de Google, se usará el flujo de código de autorización si se configura este campo.

context

string

Es una cadena opaca que se usa para mantener la información contextual entre la solicitud de autenticación y la devolución de llamada del IdP.

otaApp
(deprecated)

string

appId
(deprecated)

string

hostedDomain

string

Se usa para el proveedor de Google. El dominio alojado de G Suite del usuario para restringir el acceso de los usuarios a ese dominio

sessionId

string

Un ID de sesión que se puede verificar en accounts.signInWithIdp para evitar ataques de fijación de sesión. Si no se incluye, se generará una cadena aleatoria y se mostrará como el ID de sesión.

authFlowType

string

Se usa para el proveedor de Google. Es el tipo de flujo de autenticación que se usará. Si está presente, debe ser CODE_FLOW para especificar el flujo de código de autorización. De lo contrario, se usará el flujo de token de ID predeterminado.

customParameter

map (key: string, value: string)

Son parámetros de consulta personalizados adicionales que se agregarán al URI de autorización. Los siguientes parámetros están reservados y no se pueden agregar: clientId, responseType, scope, redirectUri y state.

En el caso del proveedor de Microsoft, el usuario de Azure AD al que se accede se puede especificar en el parámetro personalizado tenant.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

tenantId

string

El ID del usuario de Identity Platform para crear un URI de autorización o buscar un identificador de correo electrónico Si no se establece, la operación se realizará en la instancia predeterminada de Identity Platform en el proyecto.

Cuerpo de la respuesta

Mensaje de respuesta para accounts.createAuthUri.

Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "kind": string,
  "authUri": string,
  "allProviders": [
    string
  ],
  "registered": boolean,
  "providerId": string,
  "forExistingProvider": boolean,
  "captchaRequired": boolean,
  "sessionId": string,
  "signinMethods": [
    string
  ]
}
Campos
kind
(deprecated)

string

authUri

string

El URI de autorización para el proveedor solicitado. Solo está presente cuando se establece un ID de proveedor en la solicitud.

allProviders[]
(deprecated)

string

registered

boolean

Indica si el identificador de correo electrónico representa una cuenta existente. Solo está presente cuando se establece un identificador de correo electrónico en la solicitud.

providerId

string

El ID del proveedor de la solicitud, si se proporciona

forExistingProvider

boolean

Indica si el usuario accedió anteriormente con el ID del proveedor en la solicitud. Solo está presente cuando se establece un identificador de correo electrónico registrado en la solicitud.

captchaRequired

boolean

Si se necesita un CAPTCHA porque el usuario realizó demasiados intentos de acceso fallidos Solo está presente cuando se establece un identificador de correo electrónico registrado en la solicitud.

sessionId

string

El ID de sesión de la solicitud o una cadena aleatoria generada por accounts.createAuthUri si no está presente. Se usa para evitar ataques de fijación de sesión.

signinMethods[]

string

La lista de métodos de acceso que el usuario usó anteriormente. Cada elemento es uno de password, emailLink o el ID del proveedor de un IdP. Solo está presente cuando se establece un identificador de correo electrónico registrado en la solicitud. Si la protección de enumeración de correo electrónico está habilitada, este método muestra una lista vacía.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulta Authentication Overview.