# SAML Cisco Duo

## Requisitos

Linux Control Center = 2.12.X ou Superior\
Provedor de Single Sign-On (SSO) pré configurado (Cisco Duo)

## Overview

O Linux Control Center permite configurar um provedor de início de sessão único (SSO) para a Console, proporcionando um acesso seguro e prático. O LCC oferece autenticação na Console por meio de LDAP e SAML.

* Veja a imagem que representa o fluxo de autenticação.

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-fdea54e7772a5ea0c40ad60e8c46f795c7247f5a%2Ffluxo_provedor.jpg?alt=media)

## Objetivo

O objetivo deste documento é apresentar o passo a passo para configurar um provedor de acesso à Console do LCC utilizando um provedor SAML.

## Configuração do Aplicativo no Cisco Duo

1. Acesse a estrutura do Cisco Duo do seu ambiente e crie um Aplicativo com as seguintes configurações:

* *Application Type* = Generic SAML Service Provider - Single Sign-On

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-5a76e6b88058d16bbf9f966ee747242aebc84ea4%2Fsaml_type.jpg?alt=media)

### Service Provider

1. O campo *Assertion Consumer Service (ACS) URL* deve ser preenchido com o endpoint do campo **URL Assertion Consumer Service**. Esta URL é gerada após criar o item SAML no Linux Control Center. Esta é a URL em que o Cisco Duo fará a autenticaçao.

* Exemplo: <https://10.17.76.2/api/v2/authentication/saml2/acs/19>

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-a44442d62ad19978b0ba0811d245e752f785c651%2Fservice_provider.jpg?alt=media)

### SAML Response

1. Configure os campos **NameID format** e **NameID attribute**.

* Exemplo: NameID attribute <http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress>

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-899a7e1e72362d305bc7957e2dc0aa000bd9b8fd%2Fsaml_response.jpg?alt=media)

### Map attributes

1. o mapeamento de atributos *IdP Attribute*, *SAML Response Attribute* e *Attribute Name* podem ser configurados conforme a necessidade de seu ambiente.

Exemplo;

* *<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress>* - email
* *<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname>* - userid
* *<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name>* - username
* *<http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name>* - name

  ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-e43314a4da2d3cc4967f9760309e313526afe925%2Fmap_attributes.jpg?alt=media)

## Permissionamento de Usuário no LCC

* Ao utilizar o login via Cisco Duo para acessar o Linux Control Center (LCC), o usuário será automaticamente criado na console do LCC, porém sem nenhuma permissão atribuída. Para garantir o acesso adequado aos recursos, é necessário criar um Grupo na Console do LCC com as regras de acesso desejadas e associar esse grupo na configuração da integração com o Cisco Duo. Dessa forma, os usuários autenticados receberão as permissões conforme definidas no grupo vinculado.

1. Clique em **Config** no menu lateral esquerdo.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-76d7216ee8827d2c1f5960da8bf7f578f536ea98%2Fdashboard_config.png?alt=media)
2. Clique em **User Group**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-e7d8a36df8ddcae1e051febd44ecab644c2e43b9%2Fbotao_users_group.png?alt=media)
3. Clique em **Create**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-904bd7a16232c84b9aae7b79ec949f07f0bacb8b%2Fbotao_create.png?alt=media)
4. Insira um nome para o Grupo no campo **Name**

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-4dbb13a4036cc9da2dde5843ddec53336ea5a80b%2Fcampo_name.png?alt=media)
5. Clique em **Configure Permissions** e escolha as permissões em que deseja habilitar para os usuários do grupo.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-2c2628b8b92991e816d156fb244e54b89e37e6fa%2Fconfigure_permissions.png?alt=media)
6. Clique em **Save** para criar o grupo.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-7cfca61bfa1f9df03c7b66e969a2e0ea551269f8%2Fbotao_save.png?alt=media)
7. O grupo será listado na tela **User Groups**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-de480df95d0c849cfecb3f9f8ae18bc74763d3ce%2Fgrupo_listado.png?alt=media)

## Configuração do Cisco Duo no LCC

1. Clique em **Config** no menu lateral esquerdo do LCC.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-76d7216ee8827d2c1f5960da8bf7f578f536ea98%2Fdashboard_config.png?alt=media)
2. Clique em **Provider**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-1fda6171584c70078f6a582640e204d462ba347c%2Fbotao_provedores.jpg?alt=media)
3. Clique em **SAML**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-d69922c64bf1157c96bd67e9910b384d4b941af7%2Fbotao_saml.jpg?alt=media)
4. Clique em **Create**

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-319970183908a15a4700d1650895c0801c19afea%2Fbotao_create.jpg?alt=media)
5. Acesse o Cisco Duo do seu ambiente e insira os dados do *Aplicativo* nos campos conforme orientação abaixo:

   * **Name:** Este campo será o nome do botão na tela de Login com a logo do Cisco Duo.
   * **Entity ID:** Insira o ID da entidade do *Aplicativo* configurado no Cisco Duo.
   * **IDP Metadata URL:** Insira a URL de metadados do seu Provedor de Identidade.
   * **Certificate:** Insira o certificado do Aplicativo configurado no Cisco Duo.
   * **LCC Groups:** Escolha o *Grupo de Permissões* que será atribuído aos usuários que acessarem a Console por meio desta integração com o Cisco Duo.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-13c3435cc5f252b134f47954ffd4eba2c9505c0c%2Fcampos_vazios.jpg?alt=media)
6. Clique no botão **Select an Icon** e selecione o ícone *Cisco Duo* para definir o botão de Login na Console do LCC.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-8fe5f6f36bc96c4bfc548183429a3051c53499ac%2Fcampo_icone.jpg?alt=media)

### Attribute Map

1. Clique em **Next** para acessar a as configurações de Attribute Map.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-b6afcbbb8a8e34cb5b82cf8d04fcb4606b403fea%2Fbotao_next.jpg?alt=media)
2. Preencha o campo *User Identifier Attribute*. Este campo define o usuário do Provedor de Identidade que será responsável por validar a autenticação. É possível definir uma chave para validar a resposta do IDP.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-662c6f417dfd59a40d7040c63c09649d11d7e2ac%2Fattribute_map.jpg?alt=media)
3. Clique em **Next** novamente e marque as opções conforme necessidade.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-945d50b02a9912ec4cdea4daa2d6f1a02a05f3d5%2Fnext_2.jpg?alt=media)
4. Clique em **Salvar** para criar o provedor na Console do LCC.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-5e25868bbffa80b6092e72496d6aab655a5dfc56%2Fbotao_save.jpg?alt=media)

### Cadastro do Endpoint no IDP

{% hint style="warning" %}
Esta etapa é crucial na configuração de um provedor de identidade, é necessário cadastrar o Endpoint do LCC no seu *Provedor de Identidade* para que o LCC tenha permissão para realizar as consultas.
{% endhint %}

1. Clique no Provedor de Identidade criado e copie os valores dos campos *URL Assertion Consumer Service* e *URL Single Logout Service* e registre-os no seu Provedor de Identidade.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-d986c1f61d60410899f9f8e570bc9d5c154b379c%2Fsaml_criado.jpg?alt=media)

### Permissão para o Provedor

1. Clique em **Config** no menu lateral esquerdo.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-6d80a46d4b182dcc1947e6dde46daf56b842c194%2Fbotao_config_ciscoduo.jpg?alt=media)
2. Clique em **Authentication**

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-124e19e69b92b45599bb757eb183239c778b24d4%2Fbotao_authentication.jpg?alt=media)
3. Clique na Aba **Providers**, selecione o provedor e mova-o para a tabela do lado direito.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-17a989a7a0c0317cea196d1b5f9e5e406a1a3baa%2Fadicionar-ciscoduo-provedores.jpg?alt=media)
4. Clique em **Save** para definir o Provedor Cisco Duo como um método de autenticação válido.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-46f8663b330582876df50e27defa9f02c58386aa%2Fciscoduo_adicionado.jpg?alt=media)

## Acesso com Provedor de Identidade

1. Faça logout com o usuário atual e clique no botão do Provedor de Identidade criado e o LCC fará a consulta e a leitura da resposta do SAML para validar o acesso à Console.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-c540efb491659ef04992bff8b1dc4221231b4808%2Fbotao_login.jpg?alt=media)
