[comment]: # ({2b789eb7-e09cf279})
# 12 Configuração de SAML com Okta

Esta seção fornece orientações para configurar [Okta](https://okta.com) para habilitar a autenticação SAML 2.0 e o provisionamento de usuários para o Zabbix.

[comment]: # ({/2b789eb7-e09cf279})

[comment]: # ({9295c91d-c8df5f13})
#### 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*.

![](../../../../assets/en/manual/appendix/install/okta_app_create.png){width="600"}

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*.

![](../../../../assets/en/manual/appendix/install/okta_app_conf.png){width="600"}

-   Em **General**, adicione:
    -   *Single sign-on URL*:
        `http://<your-zabbix-url>/zabbix/index_sso.php?acs`<br>
        Observe o uso de "http", e não "https", para que o parâmetro `acs` nã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`<br>
        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*:<br>
        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.

-   Em **Attribute Statements/Group Attribute Statements**, adicione:

![](../../../../assets/en/manual/appendix/install/okta_app_conf2.png){width="600"}

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.

::: noteclassic
 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.

![](../../../../assets/en/manual/appendix/install/okta_app_assign.png)

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.

[comment]: # ({/9295c91d-c8df5f13})

[comment]: # ({940784da-bdad4ea8})
#### Configuração do Zabbix

1\. No Zabbix, acesse as [configurações de SAML](/manual/web_interface/frontend_sections/users/authentication/saml#setting-up-zabbix) 
e preencha as opções de configuração com base nas instruções de configuração do Okta:

![](../../../../assets/en/manual/appendix/install/okta_zabbix_saml.png){width="600"}

|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.

[comment]: # ({/940784da-bdad4ea8})

[comment]: # ({87d78e73-ff17ddca})
#### 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:<br>
    `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

![](../../../../assets/en/manual/appendix/install/okta_scim_conn.png){width="600"}

::: noteimportant
Se você estiver enfrentando problemas de autenticação, consulte [Authorization header forwarding](/manual/installation/known_issues#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`.

![](../../../../assets/en/manual/appendix/install/okta_add_attr.png)

*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.

![](../../../../assets/en/manual/appendix/install/okta_map_attr.png)

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.

[comment]: # ({/87d78e73-ff17ddca})
