Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

Crear una aplicaciĆ³n de cliente externo

Nota

Nota

ĀæSu idioma de aprendizaje es espaƱol? Comience el reto en un Trailhead Playground en espaƱol y utilice las traducciones proporcionadas entre parĆ©ntesis para navegar. Copie y pegue solo los valores en inglĆ©s, ya que las validaciones del reto se basan en los datos en inglĆ©s. Si no aprueba el reto en su organizaciĆ³n en espaƱol, le recomendamos que (1) cambie la configuraciĆ³n regional a Estados Unidos, (2) cambie el idioma a inglĆ©s, siga las instrucciones descritas aquĆ­ y, a continuaciĆ³n, (3) vuelva a hacer clic en el botĆ³n Check Challenge (Comprobar el reto).

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

Con el entorno configurado, ya podemos crear la aplicaciĆ³n de cliente externo. Para ello, necesita un proyecto de SFDX.

  1. Cree una carpeta con el nombre ECA Metadata en el ordenador donde quiera crear la aplicaciĆ³n.
  2. Abra la carpeta en Visual Studio Code.
  3. Abra el terminal en Visual Studio Code en la carpeta que ha creado.
  4. Ejecute este comando en el terminal para crear un proyecto de Salesforce DX con el nombre ecaViaMetadata y la plantilla estƔndar.
sf project generate --name ecaViaMetadata --template standard

Autorizar la organizaciĆ³n de Dev Hub

Conecte el proyecto de SFDX de su ordenador con el Dev Hub del Trailhead Playground mediante la aplicaciĆ³n conectada. Para este paso, necesita su dominio. Para encontrar su dominio en Setup (ConfiguraciĆ³n), introduzca My Domain (Mi dominio) en el cuadro Quick Find (BĆŗsqueda rĆ”pida) y, a continuaciĆ³n, haga clic en My Domain (Mi dominio).

  1. Abra la carpeta "ECA Metadata" del proyecto de SFDX en Visual Studio Code.
  2. En el terminal de Visual Studio Code, ejecute este comando despuĆ©s de sustituir <my domain> 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 externo

  1. Abra el archivo sfdx-project.json en Visual Studio Code.
  2. Cambie el parƔmetro sfdcLoginUrl a su dominio.

Para encontrar su dominio en Setup (ConfiguraciĆ³n), introduzca My Domain (Mi dominio) en el cuadro Quick Find (BĆŗsqueda rĆ”pida) y, a continuaciĆ³n, haga clic en My Domain (Mi dominio).

  1. Expanda el directorio con el nombre config y abra el archivo de definiciĆ³n de la organizaciĆ³n borrador, que se llama project-scratch-def.json. Agregue ExternalClientApps y ExtlClntAppSecretExposeCtl al ajuste "features" (funciones).
	  "features": ["EnableSetPasswordInApi", "ExternalClientApps", "ExtlClntAppSecretExposeCtl"],

  1. Cree un archivo de manifiesto package.xml en el directorio del proyecto.
  2. Agregue el contenido al 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 directory, cree una carpeta con el nombre externalClientApps.
  2. Agregue un archivo a la carpeta externalClientApps con el nombre ecaViaMetadata.eca-meta.xml. Este serĆ” el archivo de encabezado de la aplicaciĆ³n de cliente externo.

  1. Agregue el contenido al 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>

Llegados a este punto, la aplicaciĆ³n de cliente externo estĆ” tĆ©cnicamente lista. PodrĆ­a implementar esta configuraciĆ³n y aparecerĆ­a en el gestor de aplicaciones de cliente externo de su Playground como una aplicaciĆ³n de cliente externo bĆ”sica. Sin embargo, para que sea Ćŗtil, necesita un complemento. Vamos a configurar un complemento de OAuth similar al que creamos en el primer mĆ³dulo. Un complemento de OAuth configurado para el flujo de OAuth 2.0 Web Server necesita un par de modificaciones y un par de archivos nuevos.

Activar y configurar el complemento de OAuth

A diferencia de las aplicaciones conectadas, que combinan todas las configuraciones en un archivo, las aplicaciones de cliente externo incluye dos archivos de configuraciĆ³n y un archivo de polĆ­ticas. El archivo Global OAuth Settings incluye campos confidenciales, como la clave de consumidor y el secreto de consumidor de OAuth, que deben protegerse. El archivo OAuth Settings incluye todas las configuraciones de menor confidencialidad de una aplicaciĆ³n de cliente externo. No hay necesidad de crear un archivo de polĆ­ticas durante la configuraciĆ³n de una aplicaciĆ³n de cliente externo para el flujo del servidor web, ya que las polĆ­ticas se configuran en base a los archivos de configuraciĆ³n. El archivo OAuth Policies se genera al implementar la aplicaciĆ³n de cliente externo.

Crear un archivo Global OAuth Settings

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

  1. Abra el archivo ecaViaMetadataGlblOAuth.ecaGlblOauth-meta.xml en VS Code y agregue 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 Global OAuth Settings.

Crear un archivo OAuth Settings

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

  1. Abra el archivo ecaViaMetadataSettings.ecaOauth-meta.xml en VS Code y agregue 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 OAuth Settings.

Hacer referencia a los archivos de configuraciĆ³n (Settings) en el archivo de encabezado

Ahora que ha creado los dos archivos de configuraciĆ³n, debe incorporarlos a la aplicaciĆ³n de cliente externo. El archivo Header (Encabezado) es una lista de todos los archivos que componen la aplicaciĆ³n de cliente externo.

  1. Abra el archivo de manifiesto package.xml.
  2. Agregue una entrada para 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 externo

Ahora que ha configurado correctamente la aplicaciĆ³n de cliente externo, puede implementarla. El archivo de polĆ­ticas se crea durante la implementaciĆ³n, asĆ­ que, despuĆ©s, puede recuperar la aplicaciĆ³n de cliente externo para extraer el archivo generado en su proyecto de SFDX.

  1. Ejecute este comando para implementar la aplicaciĆ³n de cliente externo. Sustituya <username> por el nombre de usuario que utilizĆ³ para iniciar sesiĆ³n al autorizar el Dev Hub.
sf project deploy start --manifest package.xml --target-org <Username>
  1. Recupere la aplicaciĆ³n de cliente externo desde el Trailhead Playground. Sustituya <username> por el nombre de usuario que utilizĆ³ para iniciar sesiĆ³n al autorizar el Dev Hub.
sf project retrieve start --manifest package.xml --target-org <username>

Verificar la aplicaciĆ³n

DespuĆ©s de implementar y recuperar la aplicaciĆ³n de cliente externo, deberĆ­a haber un archivo de polĆ­ticas en su proyecto de SFDX, donde antes no habĆ­a ninguno.

AdemĆ”s, puede abrir el gestor de aplicaciones de cliente externo para ver una nueva aplicaciĆ³n llamada ecaViaMetadata. Si se siente con ganas de aventura, puede incluso recopilar el valor de My Domain (Mi dominio) y la clave y el secreto de consumidor de OAuth, y conectarlo todo al Playground de OpenID Connect para hacer un recorrido por el flujo de OAuth Web Server.

Recursos

Verificar paso

+100 puntos

CompletarĆ” esta/este proyecto en su propia organizaciĆ³n de prĆ”cticas. Haga clic en Iniciar para empezar a trabajar o haga clic en el nombre de su organizaciĆ³n para seleccionar otro diferente.

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantarĆ­a conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

MĆ”s informaciĆ³n Continuar para compartir comentarios