Enlaces de entrada en Jitterbit App Builder
Es posible que los desarrolladores necesiten enlace a App Builder desde fuentes externas como:
- Otras aplicaciones
- Mensajes de Correo
- Portales
- iframes
Estos enlaces pueden dirigir al usuario a la aplicación predeterminada o a una aplicación específica. Pueden permitirle elegir cómo autenticarse o iniciar el proceso de inicio de sesión con un proveedor de seguridad específico. El desarrollador puede controlar estos comportamientos creando los enlaces adecuadamente.
Enlaces de nivel superior
Normalmente, al vincular a App Builder, los desarrolladores crean una URL al directorio raíz de App Builder. La URL podría ser similar a esta:
https://example.com/App Builder/
Este enlace asume que App Builder está alojado en un directorio dentro del directorio raíz del sitio web. En muchos casos, App Builder estará alojado en el directorio raíz del sitio web.
Cuando un usuario sigue dicho enlace, App Builder redirigirá el navegador al formulario de inicio de sesión. Sin embargo, si se ha configurado un proveedor de autenticación externo como proveedor de autenticación predeterminado, App Builder omitirá el formulario de inicio de sesión y redirigirá el navegador al proveedor de autenticación externo.
En cualquier caso, una vez que el usuario haya iniciado sesión correctamente, App Builder determinará la aplicación predeterminada adecuada según sus privilegios. App Builder redirigirá el navegador a la página de inicio de la aplicación.
Enlaces profundos
Un " enlace profundo" es una URL que apunta a una aplicación o página específica. Un ejemplo de enlace profundo podría ser similar a esto:
https://example.com/App Builder/app/Sales/Leads
En este ejemplo, Ventas corresponde al nombre de la aplicación; Clientes potenciales, al nombre de la página. Tenga en cuenta que están codificados como URL según RFC 3986, sección 2 (https://tools.ietf.org/html/rfc3986#section-2).
App Builder admite enlaces profundos. En concreto, los desarrolladores pueden crear enlaces que apunten a una aplicación o página específica dentro de App Builder. Al igual que con los enlaces de nivel superior que apuntan a la raíz del sitio web, App Builder determinará automáticamente si el usuario necesita autenticarse, redirigiendo el navegador al formulario de inicio de sesión o a un proveedor de autenticación externo. Una vez que el usuario haya iniciado sesión correctamente, App Builder redirigirá el navegador a la URL del enlace profundo.
La forma más sencilla de crear un enlace profundo es acceder a la página de destino. La barra de direcciones del navegador contendrá una URL similar a esta:
https://example.com/App Builder/app/Sales/Leads?$activepanel=Leads&Leads.LeadId=123456
La parte de la URL que empieza con el signo de interrogación (?) es la cadena de consultar. App Builder utiliza esta consultar para rastrear los paneles y filas seleccionados, filtrar y buscar criterios, etc. Elimina la cadena de consultar para construir la URL canónica de la página.
Cadena de consulta utilizada en la URL
Al crear la URL de la página, App Builder se encarga de mantener el contexto completo de la sesión. En general, existen diferentes componentes de una página de App Builder que pueden incluirse en la cadena de consultar URL. Los componentes que aparecen en la URL pueden incluir: claves principales, nombre de la página, nombre del panel y nombre del control.
Consejos para acortar URL
En algunos casos, App Builder genera una URL muy larga para las páginas. En esta sección, te daremos algunos consejos generales para acortar la URL.
-
Define tus claves primarias. App Builder usará en la URL lo que considera claves primarias para realizar un seguimiento de los registros seleccionados. En ocasiones, App Builder usará todas o la mayoría de las columnas si se dejan implícitas en la regla. Por este motivo, asegúrate siempre de encontrar las columnas únicas necesarias para identificar tu registro.
- Si decide utilizar una cadena más larga como clave principal, tenga en cuenta que ocupará más espacio en la URL.
Mantenga los Nombres cortos para Página, Paneles y Controles. Si desea que se muestren como valores de nombre más largos, utilice el campo Etiqueta (que no se incluirá en la URL de consultar).
Además de los consejos mencionados, puede que su administrador del sistema revise la configuración de IIS. IIS limita la longitud de las URL de forma predeterminada, y algunas opciones se pueden configurar para permitir URLs más largas. Las opciones que debe revisar incluyen:
maxAllowedContentLength - Tamaño máximo de archivo para subir. El valor predeterminado es 30000000 maxUrl - Longitud máxima de URL. El valor predeterminado es 4096. maxQueryString - Longitud máxima de la cadena de consultar de URL. El valor predeterminado es 2048.
Consulte el artículo de Microsoft sobre Límites de solicitudes <requestLimits> para más información.
Advertencia
Cambiar el nombre de una aplicación o página romperá los enlaces profundos existentes.
Autenticación
Como se mencionó anteriormente, App Builder redirigirá automáticamente a los usuarios anónimos al formulario de inicio de sesión o a un proveedor de autenticación externo. En la mayoría de los casos, este es el comportamiento deseado. Sin embargo, puede haber situaciones que requieran que el usuario inicie sesión con un proveedor de seguridad específico. Algunos ejemplos son:
El enlace profundo dirige a una página que requiere una autorización específica. Por ejemplo, la página de destino podría mostrar datos obtenidos de Salesforce. En ese caso, el usuario deberá autenticarse con Salesforce antes de acceder a la página. El usuario ya se ha autenticado con un proveedor de inicio de sesión único (SSO). Por ejemplo, puede seguir un enlace dentro de un portal. Para acceder al portal, inició sesión con los Servicios de Federación de Active Directory (ADFS). Si App Builder también está configurado para autenticar usuarios mediante ADFS, el usuario puede omitir el formulario de inicio de sesión al seguir el enlace.
URLs de desafío
Para obligar a los usuarios a autenticarse con un proveedor de seguridad específico, el enlace debe estar configurado de forma que active un desafío. El siguiente ejemplo muestra un desafío para un proveedor de autenticación específico:
Para obligar a los usuarios a autenticarse con un proveedor de seguridad específico, el enlace debe estar configurado de forma que active un desafío. El siguiente ejemplo muestra un desafío para un proveedor de autenticación específico:
Nos referiremos a esto como la URL del desafío. La URL del desafío se compone de:
<vinyl-root>/service/authentication/external?provider=<provider-name>&returnUrl=<response-url>
Dónde:
- <vinyl-root> - Esta es la URL absoluta del directorio raíz de la aplicación web de App Builder. No incluye la barra diagonal final. En este ejemplo, la URL de vinilo es https://example.com/App Builder.
- <provider-name> - Este es el nombre del proveedor de seguridad, tal como se define en App Builder. En el ejemplo anterior, provider-name es SAML. Tenga en cuenta que provider-name debe estar codificado en URL.
- <response-url> - Esta es la URL de devolución de llamada de la aplicación web de App Builder. No es el enlace profundo. La URL de respuesta debe estar codificada como URL.
En el ejemplo anterior, la decodificación de la URL de respuesta produce:
https://example.com/App Builder/auth/authenticated?returnUrl=%2Fapp%2FSales%2FLeads
La URL de respuesta se compone de:
<vinyl-root>/auth/authenticated/?returnUrl=<relative-link>
Dónde:
- <vinyl-root> - URL absoluta de la raíz de la aplicación web de App Builder. Véase arriba.
- <relative-link> - Esta es la parte relativa a la raíz de la aplicación web de App Builder del enlace profundo. Está codificada como URL.
En el ejemplo anterior, el enlace relativo es:
%2Fapp%2FSales%2FLeads
Al decodificar el enlace relativo obtenemos:
/app/Sales/Leads
Como se señaló anteriormente, esto es relativo al directorio raíz de la aplicación web App Builder (es decir, vinilo-root).
Construyendo una URL de desafío
Para construir una URL de desafío, necesitamos invertir el proceso.
Paso 1) Comienza con el enlace profundo y elimina la raíz de vinilo para obtener el enlace relativo. Debe comenzar con /app. URL codificada del enlace relativo.
Paso 2) Construya la URL de respuesta a partir de:
<vinyl-root>/auth/authenticated/?returnUrl=<relative-link>
Codificación URL de respuesta-url.
Paso 3) Construya la URL del desafío a partir de:
<vinyl-root>/service/authentication/external?provider=<provider-name>&returnUrl=<response-url>
Fiddle para generar la URL del desafío
El siguiente JSFiddle se puede utilizar para generar una URL de desafío:
https://jsfiddle.net/8s8gkufh/1/
HTML
Link:<br>
<input data-bind="value: link"><br>
Provider<br>
<input data-bind="value: provider"><br>
Challenge URL:
<input data-bind="value: challenge" readonly>
JavaScript
function ViewModel() {
this.link = ko.observable("http://example.com/App Builder/app/Northwind");
this.provider = ko.observable("SAML");
var startOfRelativeLink = ko.computed(function() {
return this.link().indexOf("/app");
}, this);
var root = ko.computed(function() {
return this.link().substr(0, startOfRelativeLink());
}, this);
var relativeLink = ko.computed(function() {
return this.link().substr(startOfRelativeLink());
}, this);
var response = ko.computed(function() {
return root() + "/auth/authenticated?returnUrl=" + encodeURIComponent(relativeLink());
}, this);
this.challenge = ko.computed(function() {
return root() + "/service/authentication/external?provider=" + encodeURIComponent(this.provider()) + "&returnUrl=" + encodeURIComponent(response());
}, this);
}
ko.applyBindings(new ViewModel());