Skip to main content

Crear una aplicación de cliente externa

Nota

Nota

¿Es su idioma de aprendizaje español (LATAM)? Comience el reto en un Trailhead Playground en español (LATAM) y utilice las traducciones entre paréntesis para navegar. Copie y pegue solo los valores en inglés, ya que las validaciones del reto dependen de los datos en ese idioma. Si no aprueba el reto en su organización en español (LATAM), recomendamos que (1) cambie la configuración local a Estados Unidos, (2) cambie el idioma a inglés (según estas instrucciones) y, luego, (3) haga clic en el botón “Check Challenge” (Comprobar el reto) nuevamente.

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

Crear un proyecto de SFDX

Ahora que su entorno se encuentra configurado, es momento de crear su aplicación de cliente externa. Para hacer eso, necesita un proyecto de SFDX.

  1. Cree una carpeta llamada ECA Metadata en la computadora en la que desea crear la aplicación.
  2. Abra la carpeta en VS Code.
  3. Abra el terminal en VS Code en la carpeta que creó.
  4. Ejecute este comando en el terminal para crear un proyecto de Salesforce DX llamado ecaViaMetadata con la plantilla estándar.
sf project generate --name ecaViaMetadata --template standard

Autorizar su organización de Dev Hub

Conecte el proyecto de SFDX en su computadora con Dev Hub de Trailhead Playground mediante la aplicación conectada. Necesitará su dominio para este paso. Para buscar su dominio en Setup (Configuración), ingrese My Domain (Mi dominio) en el cuadro Quick Find (Búsqueda rápida) y, a continuación, seleccione My Domain (Mi dominio).

  1. Abra la carpeta ECA Metadata del proyecto de SFDX en VS Code.
  2. En el terminal en VS Code, ejecute este comando luego de reemplazar <my domain (mi dominio)> por el dominio de su organización.
sf org login web --set-default-dev-hub --alias ecaViaMetadata --instance-url https://<my domain>
  1. Inicie sesión con las credenciales de su Trailhead Playground en la página web que se abre.
  2. Permita el acceso a la organización.

Configurar el proyecto de SFDX para una aplicación de cliente externa

  1. Abra el archivo sfdx-project.json en VS Code.
  2. Actualice el parámetro sfdcLoginUrl con su dominio.

Para buscar su dominio en Setup (Configuración), ingrese My Domain (Mi dominio) en el cuadro Quick Find (Búsqueda rápida) y, a continuación, seleccione My Domain (Mi dominio).

  1. Expanda el directorio llamado config y abra el archivo de definición de la organización borrador, que tiene el nombre project-scratch-def.json. Agregue ExternalClientApps y ExtlClntAppSecretExposeCtl a la configuración de funciones.
	  "features": ["EnableSetPasswordInApi", "ExternalClientApps", "ExtlClntAppSecretExposeCtl"],

  1. Cree un archivo de manifiesto package.xml en el directorio del proyecto.
  2. Agregue este contenido a su archivo package.xml.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>ExternalClientApplication</name>
    </types>
    <version>61.0</version>
</Package>
  1. En el directorio force-app/main/default, cree una carpeta llamada externalClientApps.
  2. Agregue un archivo a la carpeta externalClientApps llamado ecaViaMetadata.eca-meta.xml. Este será el archivo de encabezado de su aplicación de cliente externa.

  1. Agregue este contenido a su archivo de encabezado.
<?xml version="1.0" encoding="UTF-8"?>
<ExternalClientApplication xmlns="http://soap.sforce.com/2006/04/metadata">
    <contactEmail>eca_metadata@example.com</contactEmail>
    <description>External client app Metadata API creation</description>
    <distributionState>Local</distributionState>
    <isProtected>false</isProtected>
    <label>ecaViaMetadata</label>
</ExternalClientApplication>

En este punto, su aplicación de cliente externa está técnicamente completa. Podría implementar esta configuración y se mostraría en el Gestor de aplicaciones de cliente externas de su zona de pruebas como una aplicación de cliente externa básica. Sin embargo, para hacer una aplicación útil, necesita un complemento. Configuremos un complemento de OAuth similar al que hicimos en el primer módulo. Un complemento de OAuth configurado para el flujo de servidor web de OAuth 2.0 requiere algunas modificaciones y archivos nuevos.

Habilitar y configurar el complemento de OAuth

A diferencia de las aplicaciones conectadas, que combinan todas las opciones de configuración en un único archivo, las aplicaciones de cliente externas incluyen dos archivos de configuración y un archivo de políticas. El archivo de configuración global de OAuth incluye campos confidenciales como la clave y el secreto de consumidor de OAuth que se deben proteger. El archivo de configuración de OAuth incluye todas las opciones de configuración menos confidenciales para una aplicación de cliente externa. No es necesario crear un archivo de políticas durante la configuración de una aplicación de cliente externa para el flujo del servidor web, ya que las políticas se establecen en función de los archivos de configuración. El archivo de políticas de OAuth se genera cuando se implementa la aplicación de cliente externa.

Crear un archivo de configuración global de OAuth

  1. En el directorio force-app/main/default, cree una carpeta llamada extlClntAppGlobalOauthSets.
  2. Agregue un archivo a la carpeta extlClntAppGlobalOauthSets llamado ecaViaMetadataGlblOAuth.ecaGlblOauth-meta.xml.

  1. Abra ecaViaMetadataGlblOAuth.ecaGlblOauth-meta.xml en VS Code y agregue allí el siguiente contenido.
<?xml version="1.0" encoding="UTF-8"?>
<ExtlClntAppGlobalOauthSettings xmlns="http://soap.sforce.com/2006/04/metadata">
    <callbackUrl>https://openidconnect.herokuapp.com/callback</callbackUrl>
    <externalClientApplication>ecaViaMetadata</externalClientApplication>
    <isConsumerSecretOptional>false</isConsumerSecretOptional>
    <isIntrospectAllTokens>false</isIntrospectAllTokens>
    <isPkceRequired>false</isPkceRequired>
    <isSecretRequiredForRefreshToken>true</isSecretRequiredForRefreshToken>
    <label>ecaViaMetadataglobalset</label>
    <shouldRotateConsumerKey>false</shouldRotateConsumerKey>
    <shouldRotateConsumerSecret>false</shouldRotateConsumerSecret>
</ExtlClntAppGlobalOauthSettings>
  1. Guarde el archivo de configuración global de OAuth.

Crear un archivo de configuración de OAuth

  1. En el directorio force-app/main/default, cree una carpeta llamada extlClntAppOauthSettings.
  2. Agregue un archivo a la carpeta extlClntAppOauthSettings llamado ecaViaMetadataSettings.ecaOauth-meta.xml.

  1. Abra ecaViaMetadataSettings.ecaOauth-meta.xml en VS Code y agregue allí el siguiente contenido.
<?xml version="1.0" encoding="UTF-8"?>
<ExtlClntAppOauthSettings xmlns="http://soap.sforce.com/2006/04/metadata">
    <commaSeparatedOauthScopes>Api, Web, OpenID</commaSeparatedOauthScopes>
   <externalClientApplication>ecaViaMetadata</externalClientApplication>
    <label>ECA via Metadata Oauth Settings</label>
</ExtlClntAppOauthSettings>
  1. Guarde el archivo de configuración de OAuth.

Hacer referencia a los archivos de configuración en el archivo de encabezado

Ahora que creó los dos archivos de configuración, necesita incorporarlos en la aplicación de cliente externa. El archivo de encabezado es una lista de todos los archivos que componen la aplicación de cliente externa.

  1. Abra el archivo de manifiesto package.xml.
  2. Agregue una entrada por cada uno de los tres archivos de OAuth.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>ExternalClientApplication</name>
    </types>
    <types>
        <members>*</members>
        <name>ExtlClntAppOauthSettings</name>
    </types>
    <types>
        <members>*</members>
        <name>ExtlClntAppGlobalOauthSettings</name>
    </types>
    <types>
        <members>*</members>
        <name>ExtlClntAppOauthConfigurablePolicies</name>
    </types>
    <version>61.0</version>
</Package>
  1. Guarde el archivo de manifiesto package.xml.

Implementar su aplicación de cliente externa

Ahora que la aplicación de cliente externa se configuró de forma adecuada, impleméntela. El archivo de políticas se crea en la implementación, por lo que, luego de la ejecución, recupere la aplicación de cliente externa para incorporar el archivo generado al proyecto de SFDX.

  1. Ejecute este comando para implementar la aplicación de cliente externa. Reemplace <username> por el nombre de usuario que utilizó para iniciar sesión cuando autorizó Dev Hub.
sf project deploy start --manifest package.xml --target-org <Username>
  1. Recupere la aplicación de cliente externa de su Trailhead Playground. Reemplace <username> por el nombre de usuario que utilizó para iniciar sesión cuando autorizó Dev Hub.
sf project retrieve start --manifest package.xml --target-org <username>

Verificar su aplicación

Luego de implementar y recuperar correctamente la aplicación de cliente externa, debería ver un archivo de políticas en el proyecto de SFDX que no se encontraba allí antes.

Además, puede abrir el Gestor de aplicaciones de cliente externas y ver una nueva aplicación de cliente externa llamada ecaViaMetadata. Si le gusta explorar, puede recopilar la clave y el secreto de consumidor de My Domain (Mi dominio) y OAuth, y conectar todo en la zona de pruebas de OpenID Connect para explorar el flujo del servidor web de OAuth.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios