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 na 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 app e clique em Next.

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

  • Em General, adicione:

    • Single sign-on URL: http://<your-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 solicitação. A caixa de seleção Use this for Recipient URL and Destination URL também deve estar marcada.
    • Audience URI (SP Entity ID): zabbix
      Observe que esse valor será usado dentro da asserção SAML como um identificador exclusivo do provedor de serviços (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 for necessário um redirecionamento personalizado, ele pode ser adicionado no Zabbix em Users > Users.
    • Preencha os outros campos de acordo com suas preferências.
  • Em Attribute Statements/Group Attribute Statements, adicione:

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

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

Se quiser configurar o login SAML no Zabbix sem provisionamento de usuário JIT, então apenas o atributo de e-mail é necessário.

Se estiver planejando usar uma conexão criptografada, gere os certificados de criptografia privado e público e, em seguida, envie o certificado público para o Okta. O formulário de envio do certificado aparece quando Assertion Encryption está definido como "Encrypted" (clique em Show Advanced Settings para encontrar esse 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" da aplicação recém-criada e clique no botão Assign; em seguida, selecione Assign to People no menu suspenso.

8. Na janela pop-up que aparecer, atribua o app às pessoas que usarão SAML 2.0 para autenticar no Zabbix e, em seguida, clique em Save and go back.

9. Baixe o certificado do IdP. Defina 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 essa aba aberta enquanto configura o Zabbix.

Configuração do Zabbix

1. No Zabbix, acesse as configurações de 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 grupos 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 em zabbix.conf.php, você pode colar o texto do certificado ou enviar o arquivo do certificado no frontend durante a configuração de SAML — nenhum arquivo é necessário no sistema de arquivos.

Se $SSO['CERT_STORAGE'] = 'file' estiver definido em zabbix.conf.php, o certificado deve estar disponível no sistema de arquivos (por padrão em ui/conf/certs ou no caminho configurado em 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 tiver sido definido como "Encrypted" no Okta, a caixa de seleção "Assertions" do parâmetro Encrypt também deve ser marcada no Zabbix.

4. Clique no botão Update 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 de seleção Enable SCIM provisioning. Como resultado, uma nova aba Provisioning será exibida.

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 acrescente api_scim.php a ele, ou seja:
    https://<your-zabbix-url>/zabbix/api_scim.php
  • Unique identifier field for users: email
  • Authentication mode: HTTP header
  • Em Authorization informe um token de API válido com direitos de Super admin

Se você estiver enfrentando problemas de autenticação, consulte Authorization header forwarding.

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 de seleção:

  • Create Users
  • Update User Attributes
  • Deactivate Users

Isso garantirá que esses tipos de solicitação sejam enviados ao 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 de Display name, Variable name, External name com o nome do atributo SAML, por exemplo, user_name.

External namespace deve ser o mesmo que o 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 ter sido adicionados anteriormente em Directory -> People. Todas essas atribuições serão enviadas como solicitações ao Zabbix.

9. Adicione grupos na aba "Push Groups". O padrão de mapeamento do grupo 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 sempre que alguma alteração é feita.