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
          OAuth 2.0 para aplicaciones de primera parte: Flujo de registro desatendido para clientes privados

          OAuth 2.0 para aplicaciones de primera parte: Flujo de registro desatendido para clientes privados

          Para configurar un proceso de registro de usuario desatendido para una aplicación sin plataforma desarrollada por su compañía, utilice este flujo, que implementa el protocolo estándar borrador de OAuth 2.0 para aplicaciones de primera parte. Este flujo solo se admite para clientes privados, como aplicaciones cliente-servidor. Con este flujo, puede controlar completamente la experiencia de registro de front-end en su aplicación de primera parte mientras Salesforce controla el trabajo de backend de autenticar usuarios y otorgar acceso a recursos protegidos. Este flujo solo se admite para clientes privados, como aplicaciones cliente-servidor, y solo se admite para usuarios externos.

          Ediciones necesarias

          Disponible en: Salesforce Classic y Lightning Experience
          Disponible en: Enterprise Edition, Unlimited Edition y Developer Edition

          Para configurar el registro desatendido para un cliente privado, también puede utilizar esta versión del flujo Código de autorización y credenciales, que implementa las API de identidad desatendida. Ambos flujos realizan el mismo caso de uso: registro para una aplicación fuera de Salesforce Platform. Pero hay algunas diferencias clave a tener en cuenta.

          OAuth para aplicaciones propias API de identidad desatendida
          Admitido solo para clientes privados. Admitido para clientes públicos y privados.
          Se ajusta al protocolo estándar borrador de OAuth 2.0 para aplicaciones de primera parte. Flujo de Salesforce patentado que está construido sobre el estándar de OAuth 2.0.
          Solo se admite para el marco de trabajo de la aplicación cliente externa Salesforce. Del mismo modo, la única forma de configurar parámetros de aplicación cliente externa para este flujo es a través de la API de metadatos. Compatible con la aplicación cliente externa Salesforce y los marcos de trabajo de aplicaciones conectadas.
          Por seguridad, este flujo siempre requiere un JWT de certificado de cliente. Salesforce utiliza el JWT de certificado de cliente para validar que la aplicación fue desarrollada por su compañía. Por seguridad, requiere autenticación o reCAPTCHA, pero no un JWT de certificado de cliente.

          Antes de configurar este flujo, complete estos pasos.

          A continuación se muestra una descripción general del funcionamiento del flujo.

          • Paso 1: Un usuario final abre su aplicación de primera parte y hace clic en Registrar.
          • Paso 2: En su aplicación, muestra de forma nativa un formulario de registro para recopilar datos de usuario. Usted diseña este formulario y personaliza la información que desea recopilar.
          • Paso 3: El usuario ingresa su información en su aplicación. Por ejemplo, ingresa su nombre de usuario, contraseña y nombre.
          • Paso 4: Su aplicación acuña un JWT de certificado de cliente. También genera parámetros para la extensión Proof Key for Code Exchange (PKCE).
          • Paso 5: Para inicializar el registro, su aplicación envía la información de usuario al extremo services/oauth2/v1/authorization_challenge en su sitio de Experience Cloud. La solicitud incluye un JWT de certificado de cliente.
          • Paso 6: Para confirmar que su aplicación externa envió la solicitud, Salesforce valida el JWT de certificado de cliente y luego valida los otros parámetros enviados en la solicitud.
          • Paso 7: Cuando la solicitud se realiza correctamente, Salesforce devuelve una respuesta con una auth_session. La respuesta indica que Salesforce inicializó el registro y envió una contraseña simultánea (OTP) al usuario.
          • Paso 8: En su aplicación, muestra de forma nativa un formulario de verificación. Selecciona cómo desea que se muestre este formulario.
          • Paso 9: El usuario recibe su OTP y la ingresa en el formulario de verificación.
          • Paso 10: Para solicitar un código de autorización, su aplicación envía otra solicitud POST al extremo services/oauth2/v1/authorization_challenge. La solicitud incluye el parámetro auth_session y la contraseña simultánea (OTP).
          • Paso 11: Si la solicitud se realiza correctamente, Salesforce devuelve un código de autorización a su aplicación y finaliza el auth_session.
          • Paso 12: Para intercambiar el código por un token de acceso, su aplicación de primera parte envía una solicitud al extremo /services/oauth2/token.
          • Paso 13: Salesforce devuelve una respuesta de token que contiene el token de acceso.
          • Paso 14: Su aplicación de primera parte procesa la respuesta del token y crea la sesión del usuario.
          • Paso 15: El usuario ahora inició sesión y realiza una acción en su aplicación que inicia una solicitud de datos de Salesforce.
          • Paso 16: Su aplicación realiza una solicitud autenticada a un extremo de Salesforce protegido, como una API de Salesforce.
          • Paso 17: El usuario ahora puede acceder a sus datos protegidos en su aplicación.

          Paso 1: El usuario abre la aplicación de primera parte y hace clic en Registrar

          Un usuario abre su aplicación de primera parte y hace clic en un vínculo de registro. O bien hacen clic en un vínculo para acceder a un recurso que requiere registro.

          Paso 2: La aplicación de primera parte muestra el formulario de registro

          En su aplicación de primera parte, muestra de forma nativa un formulario de registro para recopilar información acerca del usuario. Usted controla todo acerca de este formulario, incluyendo su aspecto, su comportamiento y la información de usuario que desea recopilar.

          Existen algunas consideraciones sobre la información que desea recopilar de usuarios. Cuando su aplicación envía información de usuario al extremo de desafío de autorización, Salesforce comprueba una dirección de email, un nombre de usuario, un apellido y una contraseña. Puede recopilar esta información a usuarios o generarla automáticamente, pero debe incluirse en su solicitud POST. Cuando decida qué información incluir, asegúrese de recopilar una dirección de email o número de teléfono de modo que el usuario pueda verificar su identidad.

          Paso 3: El usuario ingresa su información

          En el formulario de registro de su aplicación, el usuario ingresa su información.

          Paso 4: La aplicación de primera parte acuña un JWT de certificado de cliente y genera valores de code_verifier y code_challenge para PKCE

          La aplicación acuña un JWT de certificado de cliente.

          La aplicación también genera valores para los parámetros PKCE utilizados para verificar el código de autorización.

          Nota
          Nota Recomendamos encarecidamente que implemente siempre PKCE para este flujo. De lo contrario, no obtiene sus beneficios de seguridad.

          Para obtener más información sobre PKCE, consulte la especificación RFC 7636: Clave de prueba para el intercambio de códigos por clientes públicos de OAuth proporcionado por Internet Engineering Task Force (IETF).

          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.

          Paso 5: La aplicación envía una solicitud inicial al extremo de reto de autorización

          Desde el navegador, su aplicación envía una solicitud POST al extremo services/oauth2/v1/authorization_challenge en su sitio de Experience Cloud.

          Incluya este encabezado en su solicitud si es necesario.

          Solicitud de registro inicial: Encabezados
          Encabezado ¿Obligatorio? Descripción
          Authorization: Bearer Este encabezado es obligatorio si activa Requerir autenticación para acceder a esta API en la sección Inicio de sesión y registro de Experience Cloud. Contiene un token de acceso emitido a un usuario de integración interno. Para obtener el token de acceso, puede utilizar cualquier flujo de OAuth estándar que admita Salesforce. Asegúrese de asignar el ámbito user_registration_api a su aplicación conectada o aplicación cliente externa, o páselo como un parámetro durante su flujo.

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

          Solicitud de registro inicial: Parámetros de cuerpo
          Parámetro ¿Obligatorio? Descripción
          password Sí. La contraseña del usuario. La contraseña está sujeta a cualquier política de contraseña configurada para el perfil o la organización.
          userdata Sí. Incluso si no recopila esta información del usuario, la debe generar automáticamente y pasarla en el parámetro userdata.

          Contiene toda la información de usuario obligatoria. Como mínimo, Salesforce precisa de esta información en el parámetro userdata.

          • username
          • lastName
          • email address
          recaptcha

          Obligatorio si se le aplican estas condiciones:

          • Active Requerir reCAPTCHA para acceder a esta API en su configuración de Inicio de sesión y registro de Experience Cloud.
          • Está utilizando reCAPTCHA v2 o v3.
          Un token cifrado emitido por la API de reCAPTCHA de Google cuando un usuario completa un reto de reCAPTCHA.
          recaptchaevent

          Obligatorio si se le aplican estas condiciones:

          • Active Requerir reCAPTCHA para acceder a esta API en su configuración de Inicio de sesión y registro de Experience Cloud.
          • Está utilizando reCAPTCHA Enterprise.

          Un objeto JSON que contiene estos subparámetros.

          • token: Un token cifrado emitido por la API del sistema reCAPTCHA de Google cuando un usuario realiza un reto de reCAPTCHA.
          • siteKey: La clave del sitio de Google reCAPTCHA.
          • (Opcional)expectedAction: La acción que espera que el usuario realice para iniciar el sistema reCAPTCHA, como iniciar login. Este parámetro se asigna al parámetro action de Google.
          • projectId: El Id. de proyecto de Google.

          Para obtener más información, consulte la documentación reCAPTCHA de Google.

          client_assertion Sí. El JWT de certificado de cliente que generó, firmado por el certificado configurado para su aplicación cliente externa.
          login_type No. Si no incluye este parámetro, Salesforce toma como valor predeterminado la verificación de la identidad del usuario con email. El método utilizado para verificar la identidad del usuario. Salesforce admite dos valores para el método de verificación: email y sms.
          customdata No. Contiene cualquier información de usuario personalizada que recopile. Por ejemplo, puede incluir la dirección de calle del usuario.
          emailtemplate

          Se requiere especificar varias plantillas de email si se activa la lista de admisión de plantillas de email.

          Si no activó la lista de admisión de plantillas de email, no puede incluir este parámetro.

          Si no incluye este parámetro, Salesforce utiliza la plantilla de email predeterminada configurada en su configuración de Experience Cloud, independientemente de si la lista de admisión está activada. Si no hay ninguna plantilla configurada, Salesforce utiliza una plantilla de email OTP predeterminada.

          El nombre del desarrollador de la plantilla de email personalizada. Este parámetro solo puede incluir una plantilla de email desde la lista de admisión.
          code_challenge Obligatorio si requería PKCE para su aplicación cliente externa. Para que las funciones de seguridad de este flujo funcionen correctamente, recomendamos encarecidamente que siempre requiera PKCE.

          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.

          A continuación se incluye un ejemplo de solicitud de registro inicial.

          POST /services/oauth2/v1/authorization_challenge? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          {
              "userdata": {
                  "firstname": "Janice"
                  "lastname": "Edwards"
                  "email": "janice.edwards@example.com"
                  "username": "jedwards@myapp.com"
                  }
              "customdata": {
                  "mobilePhone"="<mobile phone number>"
                  }
              "password":"*********"
              "recaptcha": "*******"
              "login_type": "email"
              "emailtemplate": "unfiled$public/SalesNewCustomerEmail"
              "client_assertion": "Y2xpZW50YXNzZXJ0aW9u..."
          }

          Paso 6: Salesforce valida la solicitud

          Salesforce intenta primero validar el token JWT de certificado de cliente validando que la firma pasada en el parámetro client_asssertion coincida con la firma para el certificado configurado de la aplicación cliente externa.

          Si el JWT de certificado de cliente no es válido, Salesforce devuelve un error invalid_attestation y hay que volver a enviar la solicitud con todos los parámetros que se enviaron originalmente. A continuación se incluye un ejemplo de respuesta de error.

          Si el JWT del certificado de cliente es válido, pero hay otros problemas con la solicitud, Salesforce devuelve una respuesta de error especificando qué falla con la solicitud. La respuesta también incluye un parámetro auth_session que es válido durante 5 minutos tras su emisión. Durante el periodo de tiempo en el que la sesión auth_session es válida, la puede utilizar para volver a enviar la solicitud. En las versiones corregidas que vuelva a enviar, incluya solo los valores corregidos para los parámetros que provocaron el fallo de la solicitud. También debe volver a enviar la password con cada solicitud porque Salesforce no la almacena. Los otros parámetros que no provocaron el fallo de la solicitud se pueden excluir. Ya están representados por auth_session.

          Nota
          Nota Los parámetros del sistema reCAPTCHA no se vinculan a auth_session, pero puede volver a enviar la solicitud sin ellos, a no ser que hayan causado el fallo de la solicitud.

          Por ejemplo, si su token JWT de certificado de cliente es válido pero la solicitud falla porque el nombre de usuario no era correcto, vuelva a enviar una solicitud que incluya solo la sesión auth_session, el username y la password.

          Paso 7: Salesforce envía una OTP al usuario

          Si la solicitud se realiza correctamente, Salesforce aún devuelve una respuesta de error porque aún no puede otorgar el código de autorización. Pero esta vez, la respuesta de error indica que se inicializó el inicio de sesión y que Salesforce envió una OTP a la dirección de email o el número de teléfono del usuario. Para confirmar que la solicitud se realizó correctamente, busque el código de error login_initialized y el estado otp_sent. La respuesta también incluye un parámetro auth_session, que es importante para el siguiente paso.

          A continuación se incluye un ejemplo de respuesta.

          HTTP/1.1 403 Forbidden
          Content-Type: application/json
          Cache-Control: no-store
          
          {
            "error": "authorization_required",
            "auth_session": "uY29tL2F1dGhlbnRpY",
            "error_code": "login_initialized",
            "login_status": {
              "type": "SMS",
              "state": "otp_sent",
              "displayData": "+120******58"
             }
          }

          Paso 8: Su aplicación muestra de forma nativa un formulario de verificación

          En su aplicación de primera parte, muestra un formulario de verificación donde el usuario final puede ingresar su OTP. El aspecto de este formulario depende completamente de usted.

          Paso 9: El usuario ingresa OTP en el formulario de verificación

          El usuario recibe la OTP y la ingresa en el formulario de verificación en su aplicación de primera parte.

          Paso 10: Su aplicación solicita un código de autorización

          Para solicitar un código de autorización, su aplicación envía el parámetro auth_session y la contraseña simultánea (OTP por sus siglas en inglés) que el usuario especificó al extremo de reto de autorización utilizando otra solicitud POST a services/oauth2/v1/authorization_challenge. Esta solicitud no tiene encabezados obligatorios. Incluya estos parámetros en el cuerpo de la solicitud.

          Solicitud de código de autorización: Parámetros de cuerpo
          Parámetro ¿Obligatorio? Descripción
          auth_session Sí. Representa el intento de inicio de sesión. Utilice el valor auth_session que recibió en la respuesta desde su primera solicitud al extremo del reto de autorización. Asegúrese de utilizar el auth_session desde la solicitud que indica que se ha inicializado el inicio de sesión y se envió la contraseña simultánea OTP.
          login_otp Sí. La OTP que el usuario final ingresó en el formulario de verificación de su aplicación.

          A continuación se incluye un ejemplo de solicitud.

          POST /authorize HTTP/1.1
          Host: MyExperienceCloudSite.my.site.com
          
          auth_session=uY29tL2F1dGhlbnRpY*
          login_otp=<otp_from_sms>

          Paso 11: Salesforce devuelve un código de autorización

          Si la OTP es correcta y la solicitud auth_session es válida, Salesforce devuelve un código de autorización y finaliza la auth_session. A continuación se incluye un ejemplo de respuesta de código de autorización.

          HTTP/1.1 200 OK
          Content-Type: application/json;charset=UTF-8
          Cache-Control: no-store
          
          {
            "authorization_code": "uY29tL2F1d******"
          }

          Paso 12: Su aplicación intercambia el código de autorización por un token de acceso

          Después de obtener el código de autorización, su aplicación envía una solicitud al extremo del token de Salesforce.

          Esta solicitud no tiene encabezados. Incluya estos parámetros en el cuerpo de la solicitud.

          Solicitud de token: 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.
          client_secret Sí. El secreto de consumidor de la aplicación cliente externa. En este flujo, actúa como una contraseña que la aplicación utiliza para acceder a Salesforce.
          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 cliente externa. De lo contrario, la aprobación falla. Este valor debe tener codificación de URL.
          grant_type Sí. El tipo de validación que la aplicación puede proporcionar para probar que es un visitante seguro. Para este flujo, el valor debe ser authorization_code.
          code_verifier Obligatorio si requería PKCE para su aplicación cliente externa. Para que las funciones de seguridad de este flujo funcionen correctamente, recomendamos encarecidamente que siempre requiera 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 una solicitud de token de ejemplo.

          POST services/oauth2/token? HTTP 1.1
          Host: MyExperienceCloudSite.my.site.com
          
          code=********&
          client_id=**********&
          client_secret=*********&
          redirect_uri=<callback_URL>&
          grant_type=authorization_code&
          code_verifier=*******

          Paso 13: Salesforce otorga un token de acceso

          Después de validar las credenciales de la aplicación. Salesforce devuelve un token de acceso. A continuación se incluye un ejemplo de respuesta de token de acceso en formato JSON.

          {
          "access_token":"*******************",
          "sfdc_community_url":"https://MyDomainName.my.site.com",
          "sfdc_community_id":"0DBxxxxxxxxxxxx",
          "signature":"ts6wm/svX3jXlCGR4uu+SbA04M6qhD1SAgVTEwZ59P4=",
          "scope":"openid api",
          "id_token":"XXXXXX",
          "instance_url":"https://yourInstance.salesforce.com",
          "id":"https://yourInstance.salesforce.com/id/00Dxxxxxxxxxxxx/005xxxxxxxxxxxx",
          "token_type":"Bearer",
          "issued_at":"1667600739962"
          }

          La respuesta del token de acceso contiene estos parámetros.

          Parámetros de respuesta de token
          Parámetro ¿Obligatorio? Descripción
          access_token Sí. Token de OAuth que una aplicación cliente externa utiliza para solicitar el acceso a un recurso protegido en nombre de la aplicación cliente. Pueden acompañar permisos adicionales en la forma de ámbitos al token de acceso.
          id Sí. Una URL de identidad que se puede utilizar para identificar al usuario y para consultar con el fin de obtener más información acerca del usuario. Consulte URL de identidad.
          id_token No. Una estructura de datos firmada que contiene atributos de usuario autenticados, incluyendo un identificador único para el usuario y una marca de tiempo que indica el momento en que se emite el token. También identifica la aplicación solicitante. Consulte Especificaciones de OpenID Connect.
          instance_url Sí. Una URL que indica la instancia de la organización del usuario. Por ejemplo, https://yourInstance.salesforce.com/.
          issued_at Sí. Una marca de hora de la creación de la firma, expresada como el número de milisegundos desde 1970-01-01T0:0:0Z UTC.
          refresh_token No. Token obtenido del servidor web, usuario-agente o flujo de token de aplicación híbrida. Se trata de un valor secreto. Tome las medidas apropiadas para protegerlo. Este parámetro se devuelve únicamente si su aplicación cliente externa o aplicación conectada se configura con un ámbito refresh_token.
          signature Sí. Firma HMAC-SHA256 con codificación Base64 firmada con client_secret. La firma puede incluir el Id. concatenado y el valor de issued_at, que puede utilizar para verificar que la dirección URL de identidad no ha cambiado desde que la envió el servidor.
          sfdc_community_url Sí. La URL del sitio de Experience Cloud.
          sfdc_community_id Sí. El Id. de sitio de Experience Cloud del usuario.
          state No. El estado solicitado por el cliente. Este valor solo se proporciona si el parámetro state está incluido en la cadena de consulta original.
          token_type Sí. Un tipo de token Bearer, que se utiliza para todas las respuestas que incluyen un token de acceso.

          Paso 14: La aplicación crea la sesión del usuario

          Su aplicación procesa la respuesta del token y crea la sesión del usuario.

          Paso 15: El usuario está registrado y realiza una acción en la aplicación

          Su usuario está ahora registrado e inició sesión. Realiza una acción en su aplicación que requiere acceso a datos de Salesforce. Por ejemplo, hace clic en un botón para ver su historial de reserva de viajes, que se almacena en Salesforce.

          Nota
          Nota Cuando configura su aplicación cliente externa o aplicación conectada para el flujo Código de autorización y credenciales, establece la política Usuarios permitidos en Usuarios aprobados por el administrador se han autorizado previamente y configura qué perfiles o conjuntos de permisos pueden acceder a la aplicación. Con esta política, los usuarios acceden a la aplicación sin autorizarla, de modo que no obtienen una pantalla de autorización solicitándoles permitir a la aplicación acceder a sus datos.

          Paso 16: La aplicación realiza una llamada autenticada a un extremo de Salesforce

          Para acceder a los datos de Salesforce del usuario, su aplicación utiliza el token de acceso para realizar una llamada autenticada a un extremo de Salesforce protegido, como una API de Salesforce.

          Paso 17: El usuario puede acceder a datos de Salesforce

          El usuario puede ahora acceder a datos de Salesforce protegidos en su aplicación. Por ejemplo, puede ver su historial de reserva de viajes.

           
          Cargando
          Salesforce Help | Article