> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Requisitos de deploy do SSO (BYOC)

> Configure o callback do Console, a rota do Auth acessível pelo navegador, a rota do Identity e a resolução do tenant para SSO no BYOC.

Esta página diz a um operador BYOC o que configurar antes que um administrador habilite o [login único](/pt/platform/access-manager/features/sso/overview).

<Note>
  Esta página vale apenas para deploys BYOC. Na Lerian Cloud, a Lerian opera essa configuração para você.
</Note>

## Definir uma URL de callback

***

Defina `PLUGIN_AUTH_SSO_CALLBACK_URL` nos serviços Auth e Identity. Use a URL pública exata de callback do Console:

```text theme={null}
https://console.example.com/signin/sso/callback
```

O Auth envia essa URL ao provedor de identidade. O Identity a inclui na configuração dos redirecionamentos permitidos.

<Warning>
  Use a mesma URL absoluta no Auth, no Identity, no Console e na aplicação do provedor de identidade. Uma diferença no esquema, no host ou no caminho faz a troca do código de autorização falhar.
</Warning>

## Configurar as rotas do Console

***

O Console precisa destas rotas:

| Variável                               | Finalidade                                                                   |
| -------------------------------------- | ---------------------------------------------------------------------------- |
| `PLUGIN_AUTH_BASE_PATH`                | URL base da API do Auth para chamadas entre servidores, incluindo `/v1`.     |
| `PLUGIN_AUTH_PUBLIC_BASE_PATH`         | URL base da API do Auth acessível pelo navegador, incluindo `/v1`.           |
| `PLUGIN_IDENTITY_BASE_PATH`            | URL base da API do Identity para chamadas entre servidores, incluindo `/v1`. |
| `NEXT_PUBLIC_PLUGIN_AUTH_ENABLED=true` | Habilita a autenticação do Access Manager no Console.                        |

Defina `PLUGIN_AUTH_PUBLIC_BASE_PATH` como um endereço HTTPS que o navegador do usuário consiga acessar. O navegador segue diretamente o redirecionamento da operação de início do SSO.

Com o chart Helm do Product Console, defina as rotas entre servidores em `configmap` e a rota acessível pelo navegador em `extraEnvVars`:

```yaml theme={null}
product-console:
  configmap:
    PLUGIN_AUTH_BASE_PATH: http://plugin-access-manager-auth.plugin-access-manager.svc.cluster.local:4000/v1
    PLUGIN_IDENTITY_BASE_PATH: http://plugin-access-manager-identity.plugin-access-manager.svc.cluster.local:4001/v1
  extraEnvVars:
    PLUGIN_AUTH_PUBLIC_BASE_PATH: https://auth.example.com/v1
```

<Warning>
  Não coloque `PLUGIN_AUTH_PUBLIC_BASE_PATH` em `configmap`. O chart aceita essa chave, mas não a renderiza. Use `extraEnvVars` para que o Console receba o valor.
</Warning>

As URLs pública e entre servidores do Auth podem apontar para o mesmo endereço. No Kubernetes, use a rota interna do serviço para chamadas entre servidores e o ingress público para redirecionamentos do navegador.

## Configurar a resolução do tenant

***

Escolha um modelo de tenant.

### Multi-tenant

Defina `MULTI_TENANT_ENABLED=true`. Configure a organização de cada tenant com uma tag usando o prefixo `domain:`, como `domain:example.com`, que o Auth deve comparar aos domínios de email dos usuários.

Não defina uma organização de SSO fixa no modo multi-tenant.

### BYOC single-tenant

Defina `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` quando todas as requisições de SSO pertencerem a uma organização fixa. O Auth usa essa organização antes da entrada, em vez de resolver uma organização por uma tag com o prefixo `domain:`, como `domain:example.com`.

<Warning>
  Não combine `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` com `MULTI_TENANT_ENABLED=true`. O Auth recusa essa configuração na inicialização.
</Warning>

## Expor o Auth ao navegador

***

O navegador precisa acessar a rota de início do SSO no Auth por HTTPS. Configure um ingress público para o Auth e permita a origem do Console conforme a política de origem cruzada do seu deploy.

O Identity pode permanecer em uma rota entre servidores quando os administradores o gerenciam apenas pelo Console.

## Configurar o provedor de identidade

***

Na aplicação do provedor:

1. Cadastre a URL de callback exata do Console.
2. Permita os escopos do OpenID Connect necessários para retornar a identidade e o email do usuário.
3. Emita um ID e um segredo do cliente para o tenant.
4. Torne o issuer e os endpoints acessíveis pelos serviços do Access Manager.

Para um provedor OpenID Connect personalizado, use um issuer que publique metadados de descoberta válidos. As integrações pela API também podem fornecer o conjunto completo de endpoints de autorização, token e informações do usuário.

## Validar o deploy

***

<Steps>
  <Step title="Abra a aba Single Sign-On">
    Confirme que o Console consegue ler do Identity o estado atual do provedor.
  </Step>

  <Step title="Rode o preflight do provedor">
    Teste a configuração candidata sem salvá-la. Corrija todas as falhas obrigatórias.
  </Step>

  <Step title="Cadastre a URL de callback">
    Compare o cadastro no provedor com `PLUGIN_AUTH_SSO_CALLBACK_URL` caractere por caractere.
  </Step>

  <Step title="Salve o provedor">
    Mantenha a entrada com senha disponível durante o primeiro teste.
  </Step>

  <Step title="Teste em uma sessão privada do navegador">
    Digite um email do tenant, conclua a entrada no provedor e confirme que o navegador volta ao Console.
  </Step>

  <Step title="Teste o isolamento do tenant">
    Tente usar um email que não pertença ao tenant. Confirme que o Auth não conclui a entrada nem revela detalhes do tenant.
  </Step>

  <Step title="Teste a continuação para a MFA">
    Entre com um usuário que tenha a MFA habilitada e confirme que o Console abre a etapa de verificação da MFA depois do SSO.
  </Step>
</Steps>

## Páginas relacionadas

***

<Columns cols={2}>
  <Card title="Configure o SSO no Console" icon="desktop" href="/pt/platform/access-manager/features/sso/console">
    Teste e salve a configuração do provedor.
  </Card>
</Columns>
