12 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 da 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 este valor será usado dentro da asserção SAML como um identificador exclusivo 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 for necessário um redirecionamento personalizado, ele pode ser adicionado no Zabbix em Users → Users. - Preencha os demais campos de acordo com sua preferência.
- 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á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 é 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 pressione "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 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. 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. Baixe o certificado fornecido nas instruções de configuração de SAML do Okta para a pasta ui/conf/certs como idp.crt.
Defina permissões 644 para ele executando:
chmod 644 idp.crt
3. Se Assertion Encryption tiver sido definido como "Encrypted" no Okta, a caixa de seleção "Assertions" do parâmetro Encrypt também deve estar marcada no Zabbix.
4. Pressione o 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.phpa 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 em SAML estejam definidos em 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 e 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 adicionados recentemente 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 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.