Ir para o conteúdo

Transforme as suas conexões em um bônus de fim de ano com o nosso novo Programa de Indicação de Clientes! Saiba mais

Esta documentação é para a versão 4 e posterior do App Builder, o novo nome do Vinyl. Acesse a documentação do Vinyl aqui.

Links de entrada no Jitterbit App Builder

Os desenvolvedores podem precisar vincular o App Builder a partir de fontes externas, como:

  • Outras aplicações
  • Mensagens de Email
  • Portais
  • iframes

Esses links podem direcionar o usuário para o aplicativo padrão ou para um aplicativo específico. Eles podem permitir que o usuário escolha como autenticar ou iniciar o processo de login com um provedor de segurança específico. O desenvolvedor pode controlar esses comportamentos construindo os links apropriadamente.

Normalmente, ao vincular ao App Builder, os desenvolvedores construirão uma URL para o diretório raiz do App Builder. A URL pode ser algo como isto:

https://example.com/App Builder/

Este link pressupõe que o App Builder esteja hospedado em um diretório do App Builder abaixo do diretório raiz do site. Em muitos casos, o App Builder será hospedado na raiz do site.

Quando um usuário segue tal link, o App Builder redirecionará o navegador para o formulário de login. No entanto, se um provedor de autenticação externo tiver sido configurado como o Default Authentication Provider, o App Builder ignorará o formulário de login, redirecionando o navegador para o provedor de autenticação externo.

Independentemente disso, assim que o usuário tiver feito login com sucesso, o App Builder determinará o aplicativo padrão apropriado com base nos privilégios do usuário. O App Builder então redirecionará o navegador para a página inicial do aplicativo.

Um "deep link" é uma URL que aponta para um aplicativo ou página específica. Um exemplo de um deep link pode ser algo como isto:

https://example.com/App Builder/app/Sales/Leads

Neste exemplo, Sales corresponde ao nome do aplicativo; Leads, ao nome da página. Observe que eles são codificados em URL conforme RFC 3986, seção 2 (https://tools.ietf.org/html/rfc3986#section-2).

O App Builder suporta deep linking. Especificamente, os desenvolvedores podem construir links que apontam para um aplicativo ou página específica dentro do App Builder. Assim como os links de nível superior que apontam para a raiz do site, o App Builder determinará automaticamente se o usuário precisa se autenticar, redirecionando o navegador para o formulário de login ou provedor de autenticação externo. Depois que o usuário fizer login com sucesso, o App Builder redirecionará o navegador para a URL do deep link.

A maneira mais simples de construir um deep link é navegar até a página de destino. A barra de endereços do navegador conterá uma URL que se parece com isso:

https://example.com/App Builder/app/Sales/Leads?$activepanel=Leads&Leads.LeadId=123456

A parte da URL que começa com o ponto de interrogação (?) é a string de consultar. O App Builder usa a string de consultar para rastrear painéis e linhas selecionados, filtrar e pesquisar critérios, etc. Remova a string de consultar para construir a URL canônica para a página.

Cadeia de consulta usada na URL

Ao construir a URL exata da página, o App Builder faz o que precisa para manter todo o contexto da sua sessão. Em geral, há diferentes componentes de uma determinada página do App Builder que podem acabar incluídos como parte da URL da string de consultar. Os componentes que terminam na URL podem incluir: Chaves primárias, Nome da página, Nome do painel e Nome do controle.

Dicas para encurtar URL

Há casos em que o App Builder gera uma URL muito longa para Pages. Nesta seção, forneceremos algumas dicas gerais a serem consideradas para ajudar a encurtar a URL.

  • Defina suas Chaves Primárias. O App Builder usará na URL o que ele vê como PKs para manter o controle dos registros selecionados e, às vezes, o App Builder usará todas ou a maioria das colunas se deixadas implícitas na regra. Por esse motivo, sempre certifique-se de encontrar as colunas exclusivas reais necessárias para identificar seu registro.

    • Se você decidir usar uma string mais longa como sua Chave Primária, saiba que isso ocupará mais espaço na URL
  • Mantenha seus Nomes curtos para Página, Painéis e Controles. Se você precisar que eles sejam exibidos como valores de nome mais longos, use o campo Rótulo (que não será incluído como parte da URL da consultar)

Além das dicas listadas, as configurações do IIS podem valer a pena serem revisadas pelo seu Administrador do Sistema. O IIS coloca algumas limitações no comprimento de URL por padrão, e algumas configurações são configuráveis para permitir URLs mais longas. As configurações a serem revisadas incluem:

  • maxAllowedContentLength - Tamanho máximo de upload de arquivo. O padrão é 30000000
  • maxUrl - Comprimento máximo de URL. O padrão é 4096
  • maxQueryString - Comprimento máximo da string de consultar de URL. O padrão é 2048

Consulte o artigo da Microsoft sobre Limites de solicitação <requestLimits> para mais informações.

Aviso

Alterar um nome de aplicativo ou página quebrará os deep links existentes.

Autenticação

Conforme observado acima, o App Builder redirecionará automaticamente usuários anônimos para o formulário de login ou para um provedor de autenticação externo. Na maioria dos cenários, esse é o comportamento desejado. No entanto, pode haver situações que exijam que o usuário faça login com um provedor de segurança específico. Exemplos incluem:

  • O deep link aponta para uma página que requer uma autorização específica. Por exemplo, a página de destino pode exibir dados recuperados do Salesforce. Nesse caso, o usuário precisará autenticar-se com o Salesforce antes de acessar a página.
  • O usuário já foi autenticado com um provedor de logon único (SSO). Por exemplo, o usuário pode seguir um link dentro de um portal. Para acessar o portal, o usuário fez login com o Active Directory Federation Services (ADFS). Supondo que o App Builder também esteja configurado para autenticar usuários via ADFS, o usuário pode efetivamente ignorar o formulário de login ao seguir o link.

URLs de desafio

Para forçar os usuários a se autenticarem com um provedor de segurança específico, o link deve ser construído de forma a acionar um desafio. O exemplo a seguir demonstra um desafio para um provedor de autenticação específico:

Para forçar os usuários a se autenticarem com um provedor de segurança específico, o link deve ser construído de forma a acionar um desafio. O exemplo a seguir demonstra um desafio para um provedor de autenticação específico:

Vamos nos referir a isso como challenge-url. O challenge-url é construído de:

<vinyl-root>/service/authentication/external?provider=<provider-name>&returnUrl=<response-url>

Onde:

  • <vinyl-root> - Esta é a URL absoluta para o diretório raiz do aplicativo web do App Builder. Não inclui a barra final. Neste exemplo, vinyl-root é https://example.com/App Builder.
  • <provider-name> - Este é o nome do provedor de segurança conforme definido no App Builder. No exemplo acima, provider-name é SAML. Observe que provider-name deve ser codificado em URL.
  • <response-url> - Esta é a URL de retorno de chamada do aplicativo da web do App Builder. Não é o deep link. A response-url precisa ser codificada em URL.

No exemplo acima, decodificar o response-url produz:

https://example.com/App Builder/auth/authenticated?returnUrl=%2Fapp%2FSales%2FLeads

A response-url é composta de:

<vinyl-root>/auth/authenticated/?returnUrl=<relative-link>

Onde:

  • <vinyl-root> - URL absoluta da raiz do aplicativo web do App Builder. Veja acima.
  • <relative-link> - Esta é a parte relativa à raiz do aplicativo web App Builder do deep link. É codificado em URL.

No exemplo acima, o link relativo é:

%2Fapp%2FSales%2FLeads

A decodificação do link relativo nos dá:

/app/Sales/Leads

Conforme observado acima, isso é relativo ao diretório raiz do aplicativo web App Builder (ou seja, vinyl-root).

Construindo uma URL de desafio

Para construir uma URL de desafio, precisamos reverter o processo.

Etapa 1) Comece com o deep link e remova o vinyl-root para obter o relative-link. Ele deve começar com /app. URL codificou o relative-link.

Etapa 2) Construa a response-url a partir de:

<vinyl-root>/auth/authenticated/?returnUrl=<relative-link>

Codificação de URL response-url.

Etapa 3) Construa a URL do desafio a partir de:

<vinyl-root>/service/authentication/external?provider=<provider-name>&returnUrl=<response-url>

Fiddle para gerar a URL do desafio

O seguinte JSFiddle pode ser usado para gerar uma URL de desafio:

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());