Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

13 Configuração do SAML com Okta

Esta seção fornece diretrizes para configurar o Okta para habilitar a autenticação SAML 2.0 e o provisionamento de usuários para o Zabbix.

Configuração do Okta

1. Acesse https://developer.okta.com/signup/ e registre-se/entre em sua conta.

2. Na interface web do Okta, navegue até Applications → Applications.

3. Clique em Create App Integration.

Selecione "SAML 2.0" como método de login e clique em Next.

4. Em configurações gerais, preencha o nome do aplicativo e clique em Next.

5. Na configuração SAML, insira os valores fornecidos abaixo e clique em Next.

  • Em General adicione:
    • Single sign-on URL: http://<seu-zabbix-url>/zabbix/index_sso.php?acs
      Observe o uso de "http", e não "https", para que o parâmetro acs não seja removido da requisição. A caixa Use this for Recipient URL and Destination URL também deve ser marcada.
    • Audience URI (SP Entity ID): zabbix
      Observe que este valor será usado dentro da asserção SAML como um identificador único do provedor de serviço (se não corresponder, a operação será rejeitada). É possível especificar uma URL ou qualquer string de dados neste campo.
    • Default RelayState:
      Deixe este campo em branco; se um redirecionamento personalizado for necessário, ele pode ser adicionado no Zabbix nas configurações Usuários > Usuários.
    • Preencha outros campos de acordo com suas preferências.
  • Em Attribute Statements/Group Attribute Statements adicione:

Essas declarações de atributos são inseridas nas asserções SAML compartilhadas com o Zabbix.

Os nomes dos atributos usados aqui são exemplos arbitrários. Você pode usar nomes de atributos diferentes, no entanto, é necessário que eles correspondam ao valor do campo respectivo nas configurações SAML do Zabbix.

Se você deseja configurar o login SAML no Zabbix sem provisionamento de usuário JIT, apenas o atributo de e-mail é necessário.

Se planeja usar uma conexão criptografada, gere os certificados de criptografia privados e públicos e faça upload do certificado público no Okta. O formulário de upload do certificado aparece quando Assertion Encryption está definido como "Encrypted" (clique em Show Advanced Settings para encontrar este parâmetro).

6. Na próxima aba, selecione "I'm a software vendor. I'd like to integrate my app with Okta" e clique em Finish.

7. Navegue até a aba "Assignments" do aplicativo recém-criado e clique no botão Assign, depois selecione "Assign to People" no menu suspenso.

8. Em um popup que aparece, atribua o aplicativo às pessoas que usarão o SAML 2.0 para autenticar no Zabbix e clique em Save and go back.

9. Baixe o certificado IdP. Defina as permissões 644 para ele executando:

chmod 644 idp.crt

10. Navegue até a aba "Sign On" e clique no botão View Setup Instructions.

As instruções de configuração serão abertas em uma nova aba; mantenha esta aba aberta enquanto configura o Zabbix.

Configuração do Zabbix

1. No Zabbix, acesse as configurações SAML e preencha as opções de configuração com base nas instruções de configuração do Okta:

Campo do Zabbix Campo de configuração no Okta Valor de exemplo
IdP entity ID Identity Provider Issuer
SSO service URL Identity Provider Single Sign-On URL
Username attribute Attribute name usrEmail
SP entity ID Audience URI zabbix
Group name attribute Attribute name groups
User name attribute Attribute name user_name
User last name attribute Attribute name user_lastname

Também é necessário configurar o mapeamento de grupo de usuários e de mídia.

2. Adicione o certificado Base64 fornecido nas instruções de configuração SAML do Okta.

Se $SSO['CERT_STORAGE'] = 'database' estiver definido no zabbix.conf.php, você pode colar o texto do certificado ou fazer upload do arquivo do certificado no frontend durante a configuração do SAML — nenhum arquivo é necessário no sistema de arquivos.

Se $SSO['CERT_STORAGE'] = 'file' estiver definido no zabbix.conf.php, o certificado deve estar disponível no sistema de arquivos (por padrão em ui/conf/certs ou no caminho configurado no zabbix.conf.php) e o frontend não armazenará certificados no banco de dados. Observe que se $SSO['CERT_STORAGE'] não estiver definido ou estiver comentado, o armazenamento em arquivo será assumido e os certificados serão lidos de ui/conf/certs.

3. Se Assertion Encryption foi definido como "Encrypted" no Okta, a caixa de seleção "Assertions" do parâmetro Encrypt também deve ser marcada no Zabbix.

4. Pressione o botão Atualizar para salvar essas configurações.

Provisionamento SCIM

1. Para ativar o provisionamento SCIM, vá para "General" -> "App Settings" do aplicativo no Okta.

Marque a caixa Enable SCIM provisioning. Como resultado, uma nova aba Provisioning aparecerá.

2. Vá para a aba "Provisioning" para configurar uma conexão SCIM:

  • Em SCIM connector base URL especifique o caminho para o frontend do Zabbix e adicione api_scim.php ao final, ou seja:
    https://<your-zabbix-url>/zabbix/api_scim.php
  • Unique identifier field for users: email
  • Authentication mode: HTTP header
  • Em Authorization insira um token de API válido com direitos de Super admin

Se você estiver enfrentando problemas de autenticação, veja Encaminhamento do cabeçalho de autorização.

3. Clique em Test Connector Configuration para testar a conexão. Se tudo estiver correto, uma mensagem de sucesso será exibida.

4. Em "Provisioning" -> "To App", certifique-se de marcar as seguintes caixas:

  • Create Users
  • Update User Attributes
  • Deactivate Users

Isso garantirá que esses tipos de requisições sejam enviados para o Zabbix.

5. Certifique-se de que todos os atributos definidos no SAML estejam definidos no SCIM. Você pode acessar o editor de perfil do seu aplicativo em "Provisioning" -> "To App", clicando em Go to Profile Editor.

Clique em Add Attribute. Preencha os valores para Display name, Variable name, External name com o nome do atributo SAML, por exemplo, user_name.

External namespace deve ser o mesmo do esquema de usuário: urn:ietf:params:scim:schemas:core:2.0:User

6. Vá para "Provisioning" -> "To App" -> "Attribute Mappings" do seu aplicativo. Clique em Show Unmapped Attributes na parte inferior. Os atributos recém-adicionados aparecerão.

7. Mapeie cada atributo adicionado.

8. Adicione usuários na aba "Assignments". Os usuários precisam ser previamente adicionados em Directory -> People. Todas essas atribuições serão enviadas como requisições para o Zabbix.

9. Adicione grupos na aba "Push Groups". O padrão de mapeamento de grupos de usuários nas configurações SAML do Zabbix deve corresponder a um grupo especificado aqui. Se não houver correspondência, o usuário não poderá ser criado no Zabbix.

As informações sobre os membros do grupo são enviadas toda vez que alguma alteração é feita.