Autenticação
Escolha como os utilizadores iniciam sessão, e como a sua conta e os seus grupos levam a funções
- Métodos de início de sessão
- Como um início de sessão escolhe o método
- Alternar o início de sessão único
- Do utilizador às funções
Métodos de início de sessão
O AnsibleForms suporta quatro métodos de início de sessão, e vários podem estar ativos ao mesmo tempo:
| Método | Quando usar | Página |
|---|---|---|
| Contas locais | O admin integrado, contas de serviço, equipas pequenas, ou uma alternativa quando o diretório está em baixo. | Contas locais |
| LDAP | Os utilizadores e grupos vivem no Active Directory, no OpenLDAP ou noutro diretório LDAP. | LDAP |
| Entra ID | Os utilizadores iniciam sessão com a sua conta Microsoft 365 / Entra ID (início de sessão único). | Entra ID |
| OIDC | Início de sessão único através de outro fornecedor OpenID Connect, como o Keycloak. | OIDC |
As contas locais e o LDAP configuram-se em Acesso > Utilizadores, Grupos e LDAP; o Entra ID e o OIDC em Acesso > SSO.
Como um início de sessão escolhe o método
A página de início de sessão tem um formulário de nome de utilizador e palavra-passe, mais um botão por cada fornecedor de início de sessão único ativado:
- O nome de utilizador e a palavra-passe são verificados primeiro contra os utilizadores locais. Só quando nenhum utilizador local tem esse nome, e o LDAP está ativado, se tenta o diretório. Um utilizador local com uma palavra-passe errada é recusado sem consultar o LDAP.
- Os botões Entra ID e OpenID aparecem por baixo de Iniciar sessão quando um fornecedor desse tipo está ativado. Enviam o navegador para o fornecedor e de volta; nenhuma palavra-passe chega ao AnsibleForms.
Só um fornecedor Entra ID e um fornecedor OIDC estão ativados de cada vez: ativar um desativa os outros do mesmo tipo. Um início de sessão falhado com nome de utilizador e palavra-passe mostra sempre a mesma mensagem genérica; o motivo está no registo do servidor e no registo de auditoria.
Alternar o início de sessão único
A partir da 7.3.0, cada fornecedor em Acesso > SSO tem dois interruptores próprios, que se aplicam sem reiniciar:
| Interruptor | Efeito |
|---|---|
| Ativado | Mostra o botão do fornecedor na página de início de sessão e aceita o seu início de sessão. Ligá-lo desliga os outros fornecedores do mesmo tipo. |
| Saltar a página de início de sessão | Os utilizadores vão diretamente para este fornecedor, sem a página de início de sessão, enquanto o fornecedor estiver ativado. Ligá-lo num fornecedor desliga-o nos outros; fica a cinzento num fornecedor desativado. |
O formulário de nome de utilizador e palavra-passe continua acessível em /login?local, para o admin local ou quando o fornecedor falha, e é mostrado depois de terminar sessão e quando um início de sessão único volta com um erro.
As variáveis ENABLE_SSO e SSO_AUTO_LOGIN foram removidas na 7.3.0. O primeiro arranque da 7.3.0 lê-as uma vez, e regista um aviso em cada arranque enquanto continuarem definidas, por isso remova-as do ambiente depois da atualização:
| Variável antes da 7.3.0 | O que faz a atualização |
|---|---|
ENABLE_SSO=0 | Desativa todos os fornecedores: os fornecedores continuam configurados, sem botão na página de início de sessão |
SSO_AUTO_LOGIN=1 | Liga Saltar a página de início de sessão no fornecedor ativado, quando há exatamente um ativado e ENABLE_SSO não é 0 |
Do utilizador às funções
Cada início de sessão produz um utilizador com um tipo (local, ldap, azuread ou oidc), um nome de utilizador e uma lista de grupos. Cada grupo recebe o prefixo do seu tipo, por isso um grupo do Entra ID é guardado e mostrado como azuread/...:
| Método de início de sessão | Nome de utilizador | Grupos |
|---|---|---|
| Local | o nome de utilizador local | local/<group>, um por cada grupo local do utilizador |
LDAP, diretório main | o valor do Atributo do nome de utilizador | ldap/<cn>, o CN de cada grupo que o diretório devolve |
| LDAP, outro diretório | <directory>/<username> | ldap/<directory>/<cn>, consulte Vários diretórios |
| Entra ID | a claim upn, ou preferred_username quando o token não tem upn | azuread/<object id> e azuread/<display name> de cada grupo, lidos do Microsoft Graph |
| OIDC | a claim preferred_username | oidc/<name>, da claim groups do ID token |
As funções no config.yaml correspondem depois a estes valores: uma função aplica-se quando um dos seus groups é um dos grupos do utilizador, ou quando os seus users contêm <type>/<username>. Todos os utilizadores recebem também a função default. A partir da 7.3.0, uma função nomeia um membro do Entra ID como entraid/<group> ou entraid/<upn>, que corresponde ao valor azuread/ guardado; azuread/ numa função continua a funcionar e será removido na 8.0. O perfil e os extravars da tarefa continuam a mostrar azuread/.
roles:
- name: admin
groups:
- local/admins
- ldap/AF-Admins
- entraid/AF-Admins
- name: operator
groups:
- oidc/af-operators
users:
- ldap/jdoe
A página de perfil de um utilizador lista o tipo de início de sessão, os grupos e as funções, que é a forma mais rápida de verificar um mapeamento. A opção de função allowLogin pode recusar o início de sessão de utilizadores que não correspondem a nenhuma função: defina-a como false em default e como true nas funções que podem iniciar sessão.