Loading
Identificar sus usuarios y gestionar el acceso
Índice de materias
Seleccionar filtros

          No hay resultados
          No hay resultados
          Estas son algunas sugerencias de búsqueda

          Compruebe la ortografía de sus palabras clave.
          Utilice términos de búsqueda más generales.
          Seleccione menos filtros para ampliar su búsqueda.

          Buscar en toda la Ayuda de Salesforce
          API de identidad desatendida: Flujo de invitados desatendido para clientes públicos

          API de identidad desatendida: Flujo de invitados desatendido para clientes públicos

          Algunos usuarios interactúan con su aplicación de plataforma externa pero no inician sesión o se registran. Puede emitir identificadores en la forma de Id. de visitante exclusivo (UVID) para estos visitantes desconocidos con el Flujo de invitados desatendido. Si el usuario decide iniciar sesión o registrarse, puede pasar el identificador a un flujo de usuario nombrado, como un flujo de inicio de sesión desatendido. Utilice la identidad de usuario invitado como una herramienta para llevar contexto desde sesiones de usuario invitado a sesiones de usuario nombradas. Este flujo es una variación del flujo Código de autorización y credenciales.

          Ediciones necesarias

          Disponible en: Salesforce Classic (no disponible en todas las organizaciones) y Lightning Experience
          Disponible en: Enterprise Edition, Unlimited Edition y Developer Edition

          Antes de configurar este flujo, complete estos pasos.

          Por ejemplo, aloja una aplicación de comercio electrónico fuera de la plataforma Salesforce. Desea que los usuarios puedan guardar artículos en un carrito sin iniciar sesión. Puede utilizar el flujo de usuario invitado para generar un UVID para el usuario, y puede almacenar la información del carrito del usuario y vincularla al UVID. Cuando el usuario inicia sesión o se registra por última vez, pasa el UVID en un flujo de registro o inicio de sesión desatendido. Puesto que tiene el contexto del carrito desde UVID, puede guardar los artículos del usuario, proporcionando a sus usuarios una mejor experiencia.

          El ejemplo de carrito de compra es solo una de muchas posibilidades cuando se incluye el UVID y el flujo de invitado. Otras posibilidades incluyen comprender lo que hace que sus usuarios deseen inscribirse en su aplicación y recordar sus preferencias.

          El flujo de invitado y UVID solo son compatibles con tokens de acceso basados en tokens Web de JSON (JWT). Para conectar el UVID a un usuario nombrado, debe configurar el flujo de usuario nombrado para emitir tokens de acceso basados en JWT también.

          Estas instrucciones le indican cómo implementar el flujo para un cliente público, como una aplicación de una única página, que no puede mantener información confidencial privada. Los clientes públicos tienen algunas consideraciones de seguridad adicionales. Comparado con un cliente privado como una aplicación cliente-servidor, no tienen un backend privado para almacenar el secreto de consumidor, que actúa como una contraseña para proteger el intercambio de códigos. Sin ningún lugar para almacenar un secreto de consumidor, la aplicación no puede poner en peligro su filtración. Para sustituir la función del secreto de consumidor, puede utilizar la extensión Proof Key for Code Exchange (PKCE) en su lugar. Esta extensión protege su aplicación con parámetros que solo usted y Salesforce pueden verificar. Siempre recomendamos implementar PKCE para un cliente público.

          Esta es una descripción general del flujo de invitados. Estos pasos cubren el flujo hasta el punto en que se identifica el usuario invitado, pero no se inicia sesión.

          Diagrama de secuencia que muestra el flujo de usuario invitado desatendido para clientes públicos
          • El visitante desconocido llega a la aplicación o realiza una acción como hacer clic en un botón (1).
          • La aplicación busca un UVID y si no encuentra uno, genera un valor.
          • Si está utilizando la extensión Proof Key for Code Exchange (PKCE), que recomendamos encarecidamente, la aplicación genera parámetros de PKCE.
          • Para obtener un código de autorización, su aplicación envía de forma desatendida el identificador UVID al extremo de autorizaciones de Salesforce (services/oauth2/authorize) en una solicitud GET o POST.
          • Salesforce valida el UVID y devuelve un redireccionamiento 302 a una URL preconfigurada que contiene el código de autorización. El redireccionamiento se procesa dentro del navegador, y la respuesta se entrega de forma desatendida a su controlador de devolución de llamadas preconfigurado en el extremo de devolución de llamadas.
          • El extremo de devolución de llamadas extrae el código de autorización y lo devuelve a su aplicación.
          • Su aplicación recibe el código de autorización e inicia un intercambio de códigos enviando el código y otros parámetros en una solicitud POST al extremo de tokens de Salesforce (services/oauth2/token).
          • Salesforce valida la solicitud y devuelve un token de acceso basado en JWT de invitado con el UVID en la reclamación de sujeto.
          • Su aplicación procesa la respuesta y crea una sesión de invitado, manteniendo el valor UVID.
          • El usuario final ahora tiene una sesión de invitado con la clave al valor UVID devuelto en el token de acceso.

          Al igual que otras variaciones del flujo Código de autorización y credenciales, para un cliente público, este flujo requiere un extremo de devolución de llamadas que pueda gestionar el redireccionamiento 302 y devolver el código de autorización y otros parámetros a su aplicación. Si realiza el intercambio de códigos en su navegador, puede utilizar el extremo Salesforce /services/oauth2/echo. Analiza automáticamente el redireccionamiento 302, extrae los parámetros y los devuelve a su aplicación en formato JSON. Utilizamos el extremo echo en los ejemplos de código para este flujo.

          El usuario final desconocido llega a su aplicación

          El flujo se inicia cuando un usuario final visita su aplicación. También puede configurarlo para que se inicie cuando el usuario realice una acción, como por ejemplo, guardar un artículo en un carrito.

          La aplicación genera un UVID

          Su aplicación intenta encontrar un UVID asociado con este usuario. Por ejemplo, busca cookies de navegador de cualquier visita anterior a la aplicación. Si la aplicación no puede encontrar un UVID, genera uno. Salesforce no desempeña una función en la generación del UVID. Su generación, almacenamiento y mantenimiento dependen completamente de usted. El único requisito es que el UVID debe ser un identificador exclusivo universal de Versión 4 (v4 UUID).

          La aplicación genera parámetros de PKCE

          Si está utilizando PKCE, su aplicación genera parámetros de code_verifier y code_challenge.

          La especificación de la extensión PKCE definida en RFC 7636 también incluye un parámetro code_challenge_method opcional que puede enviar en la solicitud de autorización. Salesforce no tendrá en cuenta cualquier valor que se envíe en este parámetro, y establecerá SHA256 de forma predeterminada.

          La aplicación intercambia el UVID para un código de autorización

          Su aplicación envía de forma desatendida una solicitud GET o POST al extremo de autorización de Salesforce en su sitio de Experience Cloud. La solicitud contiene el UVID y otros parámetros para identificar la aplicación y especificar el tipo de solicitud.

          Tiene dos opciones para el modo en que envía el UVID en esta solicitud. Puede enviar un valor de UVID sin formato o enviar un token de acceso basado en JWT con el UVID acuñado en él. Por ejemplo, si tiene un token de acceso basado en JWT desde una sesión anterior, el envío del token al extremo de autorización es una forma sencilla de reutilizarlo sin analizarlo de forma específica para el UVID.

          Incluya estos encabezados en su solicitud.

          Solicitud de autorización: Encabezados
          Encabezado ¿Obligatorio? Descripción
          Uvid-Hint Obligatorio si no envía el UVID en el cuerpo de la solicitud. Debe incluir siempre un UVID, ya sea que se envíe en el encabezado o en el cuerpo de la solicitud.

          Contiene el UVID como un valor sin formato o un token de acceso basado en JWT con un UVID acuñado en él.

          Si envía el identificador UVID como un valor sin formato, incluya un prefijo UVID antes del valor, de modo que la solicitud tenga el formato Uvid-Hint: UVID <UVID value>.

          Si envía un token de acceso basado en JWT con un identificador UVID, incluya un prefijo JWT antes del valor, como Uvid-Hint: JWT <access token containing UVID>.

          Auth-Request-Type Sí. Especifica el tipo de solicitud que desea realizar a Salesforce. Para el inicio de sesión sin contraseña desatendido, este valor debe establecerse en guest.

          Incluya estos parámetros en el cuerpo de la solicitud.

          Solicitud de autorización: Parámetros de cuerpo
          Parámetro ¿Obligatorio? Descripción
          uvid_hint Obligatorio si no incluye el UVID en el encabezado.

          Contiene el UVID como un valor sin formato o un token de acceso basado en JWT con un UVID acuñado en él.

          Si envía el identificador UVID como un valor sin formato, incluya un prefijo UVID antes del valor, de modo que la solicitud tenga el formato uvid_hint=UVID <UVID value>.

          Si envía un token de acceso basado en JWT con un identificador UVID, incluya un prefijo JWT antes del valor, como uvid_hint=JWT <access token containing UVID>.

          client_id Sí. La clave de consumidor de la aplicación cliente externa o la aplicación conectada.
          response_type Sí. El tipo de otorgamiento de OAuth 2.0 que solicita su aplicación. Como este flujo es una variación del flujo Código de autorización y credenciales, este valor debe ser code_credentials.
          redirect_uri Sí.

          La URL donde se redirige a los usuarios después de una autenticación satisfactoria. redirect_uri debe coincidir con uno de los valores del campo "URL de devolución de llamada" de la aplicación conectada. De lo contrario, la aprobación falla. Este valor debe tener codificación de URL.

          Para este flujo, puede utilizar el extremo de eco, https://MyExperienceCloudSite.my.site.com/services/oauth2/echo, como su extremo de devolución de llamada.

          code_challenge Solo si está utilizando la extensión PKCE, que es lo recomendable, especialmente para un cliente público.

          Especifica el valor de hash SHA256 del valor code_verifier en la solicitud de token. Establezca este parámetro para ayudar a evitar los ataques de intercepción de códigos de autorización. El valor debe estar codificado con URL base 64 como se define en https://tools.ietf.org/html/rfc4648#section-5

          Si se proporciona un desafío code_challenge en la solicitud de autorización y se proporciona un verificador code_verifier en la solicitud de token, Salesforce compara ambos valores. Si code_challenge no es válido o no coincide, el inicio de sesión fallará, con el código de error invalid_request.

          Si el desafío code_challenge se proporciona en la solicitud de autorización, pero no hay verificador code_verifier en la solicitud de token, el inicio de sesión falla con el código de error invalid_grant.

          scope Sí.

          Los permisos que definen el tipo de recursos protegidos a los que la aplicación conectada o la aplicación cliente externa puede acceder. Los valores que envía en esta solicitud deben coincidir o ser un subconjunto de los ámbitos asignados a su aplicación.

          Para obtener más información acerca de cada ámbito y su finalidad, consulte Tokens y ámbitos de OAuth.

          Consulte estas solicitudes de autorización de ejemplo, que implementan PKCE.

          A continuación se incluye un ejemplo de solicitud donde el UVID se pasa como un valor sin formato en el encabezado de la solicitud.

          POST /services/oauth2/authorize? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          Uvid-Hint: UVID abcd-1234-efgh
          Auth-Request-Type: guest
          
          response_type=code_credentials&
          client_id=***********&
          redirect_uri=https://www.MyExperienceCloudSite.my.site.com/services/oauth2/echo&
          code_challenge=********&
          scope=openid
          

          En este ejemplo, el UVID se pasa en un token de acceso basado en JWT en el encabezado.

          POST /services/oauth2/authorize? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          Uvid-Hint: JWT **************
          Auth-Request-Type: guest
          
          response_type=code_credentials&
          client_id=***********&
          redirect_uri=https://www.MyExperienceCloudSite.my.site.com/services/oauth2/echo&
          code_challenge=********&
          scope=openid
          

          Este es un ejemplo donde el UVID se pasa como un valor sin formato en el cuerpo de la solicitud.

          POST /services/oauth2/authorize? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          Auth-Request-Type: guest
          
          uvid_hint=UVID abcd-1234-efgh&
          response_type=code_credentials&
          client_id=***********&
          redirect_uri=https://www.MyExperienceCloudSite.my.site.com/services/oauth2/echo&
          code_challenge=********&
          scope=openid
          

          Salesforce devuelve un redireccionamiento 302

          Salesforce valida el UVID. Si se pasó el UVID como un valor sin formato, Salesforce valida su formato. Si se pasó como un token de acceso basado en JWT, Salesforce comprueba la validez del token.

          Salesforce devuelve entonces un redireccionamiento HTTP 302 a una URL preconfigurada que contiene el código de autorización. Si el flujo se produce en el navegador, el redireccionamiento 302 se procesa en el navegador y Salesforce envía automáticamente la respuesta de redireccionamiento a la URL de redireccionamiento, que es el extremo de devolución de llamadas. Esta es una URL preconfigurada de ejemplo.

          https://www.MyDomainName.my.site.com/services/apexrest/code/exchange?code=aPrxC1*******
          &sfdc_community_url=https%3A%2F%2FMyDomainName.my.site.com&sfdc_community_id=0DBxxxxxxxxxxxx

          El extremo de devolución de llamadas envía el código de autorización a su aplicación

          El extremo de devolución de llamadas extrae el código de autorización y lo devuelve a su aplicación. En estos ejemplos de código, la dirección URL de redireccionamiento apunta al extremo de devolución de llamadas /services/oauth2/echo, en el sitio de Experience Cloud. Este extremo analiza automáticamente el redireccionamiento 302, extrae el código de autorización y otros parámetros y los devuelve a su aplicación en formato JSON.

          La aplicación inicia el intercambio de código

          Su aplicación recibe la respuesta de código con la autorización y otros parámetros. Intercambia el código por un token de acceso enviando una solicitud POST desatendida al extremo /services/oauth2/token.

          Incluya un encabezado en la solicitud.

          Intercambio de código: Encabezado
          Parámetro ¿Obligatorio? Descripción
          Auth-Request-Type Sí. Especifica el tipo de solicitud que desea realizar a Salesforce. Para el inicio de sesión sin contraseña desatendido, este valor debe establecerse en guest.
          Uvid-Hint Sí.

          Contiene el UVID como un valor sin formato o un token de acceso basado en JWT con un UVID acuñado en él.

          Para el intercambio de códigos, no incluya un prefijo para el UVID. Por ejemplo, si pasa el UVID como un valor sin formato, el encabezado es simplemente Uvid-Hint: abcd-1234-efgh. Si pasa un token de acceso basado en JWT, será Uvid-Hint: <access token containing UVID>.

          Incluya estos parámetros en el cuerpo de la solicitud.

          Intercambio de código: Parámetros de cuerpo
          Parámetro ¿Obligatorio? Descripción
          code Sí. El servidor de autorización crea un código de autorización, que es un token efímero que pasa al cliente después de una autenticación correcta. El cliente envía el código de autorización al servidor de autorización para obtener un token de acceso y, opcionalmente, un token de actualización.
          client_id Sí. La clave de consumidor de la aplicación cliente externa o la aplicación conectada.
          redirect_uri Sí.

          La URL donde se redirige a los usuarios después de una autenticación satisfactoria. redirect_URI debe coincidir con uno de los valores del campo URL de devolución de llamada de la aplicación conectada. De lo contrario, la aprobación falla. Este valor debe tener codificación de URL.

          Para este flujo, puede utilizar el extremo de eco, https://MyExperienceCloudSite.my.site.com/services/oauth2/echo, como su extremo de devolución de llamada.

          grant_type Sí. El tipo de validación que la aplicación cliente externa o la aplicación conectada puede proporcionar para probar que es un visitante seguro. Como este flujo es una variación del flujo Código de autorización y credenciales, el valor debe ser authorization_code.
          code_verifier Solo si está utilizando PKCE.

          Especifica 128 bytes de datos aleatorios con alta entropía para hacer que intentar determinar el valor del código sea difícil. Establezca este parámetro para ayudar a evitar ataques de intercepción de códigos de autorización. El valor debe ser base64url-encoded (codificado con base64url) como se define en https://datatracker.ietf.org/doc/html/rfc4648#section-5.

          Si existe un valor de verificador code_verifier en la solicitud de token y un valor de desafío code_challenge en la solicitud de autorización, Salesforce compara ambos valores. Si code_verifier no es válido o no coincide, el inicio de sesión fallará, con el código de error invalid_grant.

          Si el valor de verificador code_verifier está en la solicitud del token, pero no hay valor de desafío code_challenge en la solicitud de autorización, el inicio de sesión falla con el código de error invalid_grant.

          A continuación se incluye un ejemplo de solicitud de token que implementa PKCE. En este ejemplo, el UVID se envía como un valor sin formato.

          POST services/oauth2/token? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          Uvid-Hint: abcd-1234-efgh
          Auth-Request-Type: guest
          
          code=********&
          client_id=**********&
          redirect_uri=https://MyExperienceCloudSite.my.site.com/services/oauth2/echo&
          grant_type=authorization_code&
          code_verifier=*******

          Salesforce otorga un token de acceso basado en JWT

          Después de validar las credenciales de la aplicación. Salesforce devuelve un token de acceso basado en JWT de invitado y un estado al navegador. El token de acceso de invitado contiene el UVID en la reclamación (sub) del sujeto. Este es un fragmento de código de un token de acceso basado en JWT de ejemplo. Como recordatorio, estos tokens tienen tres componentes: un encabezado, una carga, y una firma. Este ejemplo le muestra la carga con el UVID en la reclamación sub. Como puede ver, el valor tiene uvid como prefijo.

          {
            "tnk": "example/00XXXXXX",
            "ver": "1.0",
            "kid": "CORE_ATJWT************",
            "tty": "sfdc-core-token",
            "typ": "JWT",
            "alg": "RS256"
          }
          
          {
            "scp": "open_id",
            "aud": [
              "https://example.com"
            ],
            "sub": "uvid:abcd-1234-efgh",
            "nbf": "1675197036",
            "iss": "https://MyExperienceCloudSite.my.site.com",
            "exp": "1675198836",
            "iat": "1675197036",
             jti”: xRb**********”
            "client_id": "**********"
          }

          Para obtener una explicación completa de cada reclamación en un token de acceso basado en JWT, consulte Tokens de acceso basados en JWT en la Ayuda de Salesforce.

          La aplicación crea una sesión de invitado

          Su aplicación procesa la respuesta del token de acceso y crea una sesión de invitado, manteniendo el valor UVID.

          El usuario desconocido está ahora identificado

          El usuario final desconocido ahora tiene una sesión de invitado vinculada al valor de UVID devuelto en el token de acceso basado en JWT. En este punto, depende de usted lo que desee hacer con el UVID. Para obtener información acerca de cómo pasarlo a un flujo de autorización de usuario nombrado, consulte API de Identidad desatendida: Ampliación del flujo de invitado desatendido en un flujo de usuario nombrado.

           
          Cargando
          Salesforce Help | Article