Ir para o conteúdo

Autenticação do Cliente

App Builder pode operar como um servidor de autorização OpenID Connect (OIDC). O servidor de autorização permite que aplicativos clientes, incluindo outras instâncias de App Builder, para autenticar usuários. O processo de login do OIDC produz um token de acesso que permite que o aplicativo cliente acesse recursos protegidos em nome do usuário. Os recursos protegidos incluem App Builder- APIs REST e Webhook hospedadas, bem como App Builder fontes de dados do conector.

Suporte de Protocolo

O protocolo OIDC é definido pelo padrão OpenID Connect Core 1.0. OIDC é uma camada de identidade construída sobre a estrutura de autorização OAuth 2.0, que é definida por RFC-6749. Juntos, esses padrões descrevem:

  • Fluxos - Um fluxo é um processo pelo qual o cliente recupera tokens de identidade e acesso. Por esse motivo, os fluxos também são chamados de concessões.
  • Endpoints - Cada fluxo envolve uma ou mais solicitações HTTP para URLs conhecidas.
  • Escopos - Os aplicativos cliente podem solicitar um ou mais escopos. Os escopos determinam quais tokens são emitidos (identidade, atualização), o que está incluído nesses tokens (reivindicações) e quais APIs podem ser acessadas com esses tokens.
  • Reivindicações - Conforme descrito pelo padrão, o token de identidade é fundamentalmente um JSON Web Token (JWT). JWTs são baseados em declarações. O escopo solicitado determina quais declarações são incluídas no token de identidade.

Fluxos Suportados

O App Builder o servidor de autorização suporta os seguintes fluxos básicos do OAuth 2.0:

  • Código de Autorização. O fluxo Código de Autorização permite que o cliente adquira um token de acesso, que permite que o cliente acesse recursos protegidos em nome do usuário. O fluxo Código de Autorização é um fluxo interativo: um usuário deve estar presente para iniciar o fluxo Código de Autorização.
  • Credenciais do Cliente. O fluxo Credenciais do Cliente permite que o aplicativo cliente adquira um token de acesso em seu próprio nome. Este é um fluxo de servidor para servidor, normalmente operando como uma conta de serviço.
  • Token de Atualização. O fluxo Token de Atualização permite que o cliente solicite um novo token de acesso quando o token atual expirar. Isso às vezes é chamado de "acesso offline". O fluxo Token de Atualização pode ser usado em combinação com os fluxos Código de Autorização ou Credenciais do Cliente. O escopo offline_access habilita o fluxo Token de Atualização (veja abaixo).

Conforme observado acima, o OIDC é construído na estrutura de autorização do OAuth 2.0. O OIDC aproveita os fluxos do OAuth 2.0, usando o parâmetro scope para optar pela funcionalidade específica do OIDC. App Builder o servidor de autorização suporta os seguintes fluxos OIDC:

  • Código de Autorização. Quando o escopo openid é especificado, o fluxo Código de Autorização permite que o cliente autentique um usuário retornando um token de identidade adicional. Escopos adicionais determinam quais declarações são incluídas no token.
  • Token de Atualização. O fluxo Token de Atualização opera da mesma forma no OIDC como no OAuth 2.0.

O servidor de autorização não suporta os fluxos OIDC Implícito ou Híbrido. O fluxo Credenciais do Cliente OAuth 2.0 não é um fluxo OIDC.

O fluxo Código de Autorização pode ser usado com ou sem a extensão Proof Key for Code Exchange (PKCE), conforme definido por RFC-7636.

Endpoints Suportados

O App Builder o servidor de autorização publica os seguintes endpoints:

Endpoint Padrão Descrição
/conectar/autorizar RFC-6749 Emite um código de autorização.
/conectar/token RFC-6749 Emite um token de acesso.
/conectar/introspecção RFC-7662 Introspecção do token de acesso.
/connect/userinfo Núcleo OIDC Introspecção de token de identidade.
/.well-known/openid-configuration Descoberta OIDC Configuração do provedor OpenID Connect.

Escopos Suportados

O App Builder o servidor de autorização suporta os seguintes escopos:

Escopo Descrição
openid Emite um token de identidade OIDC.
profile Inclui declarações de perfil de usuário no token de identidade.
* email* Inclui declarações de endereço email no token de identidade.
telefone Inclui declarações de número de telefone no token de identidade.
offline_access Emite um token de atualização para uso no fluxo de Token de Atualização.
* Não disponível para clientes públicos
api Autoriza acesso App Builder-REST hospedado, Webhook e App Builder aPIs de conectores.

Reivindicações Suportadas

Conforme observado acima, o token de identidade é um token JWT baseado em declarações. O cliente pode determinar quais declarações são incluídas no token de identidade especificando escopos.

Escopo Declarações
identificação aberta sub
perfil nome, apelido, localidade e zoneinfo
* email* * email* e email_verified
telefone número_de_telefone e número_de_telefone_verificado

Para uma descrição de cada uma dessas reivindicações, veja a seção 5.1 Reivindicações Padrão do padrão OIDC. Qualquer reivindicação padrão não listada explicitamente acima não é suportada.

Configuração

Para fazer uso do servidor de autorização, o App Builder o administrador deve primeiro:

  1. Habilitar o servidor de autorização.
  2. Registrar um aplicativo cliente.
  3. Configurar o aplicativo cliente.

Habilitar o Servidor de Autorização

Para habilitar o servidor de autorização, comece fazendo login em App Builder como administrador:

  1. Clique no link IDE.
  2. Clique no botão Provedores de Segurança.
  3. No painel Autenticação do Usuário, localize o provedor de segurança Servidor de Autorização e clique no ícone Detalhes (Chevron).
  4. Clique no botão Editar.
  5. Marque a opção Habilitado.
  6. Clique no botão Salvar.

Registrar um Aplicativo Cliente

Cada aplicativo cliente que pretende autenticar usuários ou acessar recursos protegidos deve ser registrado. Para registrar um aplicativo cliente, comece fazendo login em App Builder como administrador, siga estas etapas:

  1. Clique no link IDE.
  2. Clique no botão Gerenciamento de usuários.
  3. Clique no botão Clientes.
  4. Clique no botão +Cliente para registrar um novo aplicativo cliente.
  5. Forneça o seguinte:

    • Nome: Um nome descritivo e amigável para o aplicativo cliente.
    • Descrição: Uma descrição opcional.
    • Usuário: Selecione a conta de usuário do serviço. Obrigatório para o fluxo de Credenciais do cliente. Caso contrário, deixe em branco.
    • Provedor de autenticação: Selecione um provedor ou deixe em branco.
    • Habilitado: Habilite ou desabilite o aplicativo cliente.
  6. Clique no botão Salvar.

  7. (Opcional) Clique Mais, então Avançado. A caixa de diálogo Configurações avançadas é aberta. Ela contém duas guias:

    • Propriedades: Defina as seguintes configurações, conforme necessário:

      • Requer PKCE: Quando selecionado, o cliente deve usar a extensão PKCE. Isso se aplica apenas ao fluxo do Código de autorização e é necessário para clientes públicos.

      • Público: Quando selecionado, o cliente é público e os segredos não podem ser armazenados com segurança. Quando desmarcado, o cliente é confidencial e pode armazenar segredos com segurança.

    • Vida útil do token: Insira valores para os seguintes campos, conforme necessário:

      • Token de acesso: Tempo de expiração do token de acesso, em minutos. Padrão: 60.

      • Token de atualização: Tempo de expiração do token de atualização, em minutos. Padrão: 20160 (14 dias).

      • Token de identidade: Tempo de expiração do token de identidade, em minutos. Padrão: 20.

      • Código de autorização: Tempo de expiração do código de autorização, em minutos. Padrão: 5.

Gerar um Segredo do Cliente

O aplicativo cliente deve fornecer suas próprias credenciais ao solicitar um token de acesso. As credenciais do cliente consistem no ID do cliente e em um segredo do cliente. Os segredos do cliente só podem ser gerados para clientes confidenciais. O painel Segredos ficará oculto para clientes públicos.

Para gerar um segredo do cliente:

  1. No painel Segredos, clique no botão +Segredo.
  2. Forneça o seguinte:

    • Descrição: Descrição opcional do segredo do cliente.
    • Expira em: Se o segredo expirar, defina a data e a hora de expiração. Caso contrário, deixe este campo em branco.
  3. Clique no botão Salvar.

  4. Copie o ID do cliente e o Segredo do cliente.

AVISO: Este é o único momento em que o segredo ficará visível.

Registrar URI de Redirecionamento do Cliente

Conforme observado acima, o fluxo do Código de Autorização é um fluxo interativo. Durante esse fluxo, o usuário é redirecionado para o endpoint de autorização. Depois que o usuário é autenticado, ele é redirecionado de volta para o aplicativo cliente.

O URL de retorno de chamada do aplicativo cliente é chamado de "URI de redirecionamento". Cada URI de redirecionamento deve ser registrado. Os URIs de redirecionamento do cliente devem aderir às seguintes restrições:

  • O URL de redirecionamento do cliente deve ser um URL absoluto.
  • A URL de redirecionamento do cliente deve usar o protocolo HTTPS. No entanto, a URL de redirecionamento do cliente pode usar o protocolo HTTP ao redirecionar para localhost.
  • O URL de redirecionamento do cliente pode conter uma string de consultar.
  • O URL de redirecionamento do cliente não deve conter um fragmento.

Para registrar um URI de redirecionamento de cliente:

  1. No painel Redirecionamentos, clique no botão + URL.
  2. Forneça o URL.
  3. Clique no botão Salvar.

Configurar o Aplicativo Cliente

Qualquer aplicativo cliente OIDC ou OAuth 2.0 compatível com os padrões que oferece suporte aos fluxos de Código de Autorização ou Credenciais do Cliente pode utilizar o App Builder servidor de autorização. Isso inclui App Builder em si: é possível configurar uma segunda instância de App Builder como um cliente.

Para configurar o App Builder cliente, você precisará de:

  • App Builder uRL raiz do servidor de autorização, por exemplo https://example.com/App Builder.
  • ID do cliente e segredo (veja acima)

Comece fazendo login na instância do cliente de App Builder como administrador:

  1. Clique no link IDE.
  2. Clique no botão Provedores de Segurança.
  3. No painel Autenticação do Usuário, clique no botão +Autenticação do Usuário.
  4. Forneça o seguinte:

    • Nome: Nome do provedor de segurança, por exemplo App Builder.
    • Tipo: App Builder / Conexão OpenID
    • Mostrar no formulário de login: marque esta opção para exibir a opção de login no formulário de login.
    • Provisionamento de usuários: marque esta opção para habilitar o provisionamento de usuários.
  5. Clique no botão Salvar.

  6. No painel Endpoints, clique no botão + Endpoint.
  7. Forneça o seguinte:

    • Tipo de Endpoint: Emissor OpenID Connect
    • URL. O App Builder uRL raiz do servidor de autorização.
  8. Clique no botão Salvar.

  9. No painel Credenciais, clique no botão +Credencial.
  10. Forneça o seguinte:

    • Tipo: Cliente
    • Nome de usuário: O ID do cliente (veja acima).
    • Senha: O segredo do cliente (veja acima).
  11. Clique no botão Salvar.

  12. No painel Provedor, clique no botão Editar.
  13. Marque a opção Ativado.
  14. Clique no botão Salvar.

Após a conclusão, os usuários poderão fazer login no cliente App Builder instância usando o App Builder servidor de autorização.

Limitações Conhecidas

O App Builder o servidor de autorização não suporta o seguinte

  • Consentimento do usuário.
  • Fluxos implícitos ou híbridos OIDC