Configuração de SAML com Okta
Esta seção fornece orientações para configurar 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. Nas 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âmetroacsnão seja removido na requisiçã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.
- Single sign-on URL:
-
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 valor do respectivo campo nas configurações SAML do Zabbix.
Se você quiser configurar o login SAML no Zabbix sem provisionamento de usuários 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, depois selecione "Assign to People" no menu suspenso.

8. Na janela pop-up que aparece, 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 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 |
|---|---|---|
| ID da entidade do IdP | Identity Provider Issuer | |
| URL do serviço SSO | Identity Provider Single Sign-On URL | |
| Atributo de nome de usuário | Attribute name | usrEmail |
| ID da entidade do SP | Audience URI | zabbix |
| Atributo de nome do grupo | Attribute name | groups |
| Atributo de nome do usuário | Attribute name | user_name |
| Atributo de sobrenome do usuário | Attribute name | user_lastname |
Também é necessário configurar o mapeamento de grupos de usuários e mídias.
2. Adicione o certificado Base64 fornecido nas instruções de configuração SAML do Okta.
Se $SSO['CERT_STORAGE'] = 'database' estiver definido no arquivo de configuração do frontend (zabbix.conf.php), você poderá colar o texto do certificado ou carregar o arquivo do certificado no frontend durante a configuração do SAML — não são necessários arquivos no sistema de arquivos.
Se $SSO['CERT_STORAGE'] = 'file' estiver definido no arquivo de configuração, o certificado deverá estar disponível no sistema de arquivos (por padrão, em ui/conf/certs ou no caminho configurado no arquivo de configuração), e o frontend não armazenará os certificados no banco de dados.
Observe que, se $SSO['CERT_STORAGE'] não estiver definido ou estiver comentado, o armazenamento em arquivo será considerado, e os certificados serão lidos de ui/conf/certs.
3. Se Assertion Encryption estiver definido como "Encrypted" no Okta, a caixa de seleção "Assertions" do parâmetro Encrypt também deverá ser marcada no Zabbix.
4. Clique no botão Update para salvar essas configurações.
Provisionamento SCIM
1. Para ativar o provisionamento SCIM, acesse 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. Acesse 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, 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, 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 também estejam definidos no SCIM. Você pode acessar o editor de perfil do aplicativo em Provisioning > To App, clicando em Go to Profile Editor.
Clique em Add Attribute.
Preencha os valores de Display name, Variable name e External name com o nome do atributo SAML, por exemplo, user_name.

External namespace deve ser igual ao esquema de usuário: urn:ietf:params:scim:schemas:core:2.0:User
6. Acesse Provisioning > To App > Attribute Mappings do seu aplicativo. Clique em Show Unmapped Attributes na parte inferior. Os atributos recém-adicionados serão exibidos.
7. Mapeie cada atributo adicionado.

8. Adicione usuários na aba "Assignments". Primeiro, os usuários precisam ser adicionados 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 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 sempre que alguma alteração é feita.