Federação de Usuários com Keycloak (SAML 2.0)

V1.0 – Outubro 2024

Versão Autor Descrição
V1.0 – 2024-10-25 Diogo Hatz d50037923 Versão Inicial
V1.0 – 2024-10-25 Wisley da Silva Paulo 00830850 Revisão do Documento

Objetivo

Este documento objetiva apresentar os procedimentos necessários para a efetivação da configuração de federação de identidade na Huawei Cloud (Service Provider) através de um provedor de identidade (IdP), como o RedHat SSO ou Keycloak. Neste exemplo, o protocolo utilizado para a federação de identidade será o SAML 2.0, mapeando os usuários do provedor de identidade para usuários IAM na Huawei Cloud.

No diagrama abaixo, é possível visualizar o fluxo do processo de autenticação na Huawei Cloud utilizando um IdP.

Keycloak Endpoint

Para realizar a integração da Huawei Cloud com um Identity Provider, primeiramente se faz necessário obter o arquivo de configurações XML relativo ao protocolo a ser utilizado do Identity Provider.

Acesse o portal do Keycloak e navegue até a seção de “Realm Settings”. Clique em “SAML 2.0 Identity Provider Metadata”, na subseção de “Endpoints”, e salve localmente a página web aberta como um arquivo XML.

IIC

External Identity Provider

Acesse o serviço IIC no console da Huawei Cloud e navegue até a seção “Settings”. Clique em “Change to external identity provider” para criar uma configuração de federação de identidade.

Clique em “Download Metadata File” para baixar o arquivo de configurações XML do protocolo a ser utilizado (SAML 2.0) do Service Provider.

Clique em “Select File” na subseção “Identity Provider Details” e selecione o arquivo XML baixado no item 2.0 deste documento.

Feito isso, basta clicar em “Next” seguido por “OK” para finalizar a configuração.

Nota: As próximas três subseções (3.2, 3.3 e 3.4) são relativas a configurações de usuários, grupos, permission sets e contas do Organizations. Caso essas configurações já estejam feitas, ignore as subseções supracitadas.

Users and Groups

Para realizar a federação de identidade utilizando um Identity Provider, faz-se necessário que usuários e grupos de usuários sejam criados no Service Provider. Para isso, selecione a seção de “Groups” e clique em “Create Group” para criar um grupo de usuários.

Dê um nome ao grupo e selecione “OK” para finalizar a criação do grupo de usuários.

Para criar os usuários, acesse a seção “Users” e clique em “Create User”.

Preencha as informações pertinentes ao usuário, como username e e-mail, e clique em “Next” para avançar.

Selecione um grupo de usuários no qual o usuário pertencerá e clique em “Next” seguido por “OK” para finalizar a criação do usuário.

Permission Sets

Além dos usuários e grupos, também se faz necessário a presença de permission sets para delegar permissões aos usuários criados. Para isso, navegue até a subseção “Permission Sets” na seção “Multi-Account Permissions”, e clique em “Create Permission Set”.

Preencha os campos relativos ao tempo de sessão do usuário e o nome do permission set e clique em “Next” para avançar.

Selecione as permissões que o permission set irá possuir e selecione “Next” seguido por “OK” para finalizar a criação do permission set.

Accounts

Por fim, será necessário configurar uma tripla para o usuário, permission set e conta, afim de delegar permissões a usuários a contas específicas do Organizations. Para isso, navegue até a subseção “Accounts” na seção “Multi-Account Permissions”, e clique em “Assign User/Group” na conta desejada.

Selecione os usuários que terão acesso à conta selecionada e clique em “Next” para avançar.

Selecione os permission sets que os usuários supracitados terão acesso na conta selecionada e clique em “Next” seguido por “OK” para finalizar a delegação de permissões a usuários.

Keycloak Client

Para realizar a integração da Huawei Cloud com o Keycloack, faz-se necessário, primeiramente, criar um Client no IdP. Para isso, acesse a página de configurações do IdP (Keycloak) e navegue até a seção “Clients”. Clique em “Create” para criar um novo cliente.

Clique em “Select file” para importar o arquivo de configurações XML da Huawei Cloud, salvo no item 3.1 deste documento, e clique em “Save”.

Navegue até o cliente da Huawei Cloud criado e clique em “Edit” para editar as configurações do cliente.

Desligue a opção “Client Signature Required”, habilite a opção “Force Name ID Format”, selecione o campo “Name ID Format” como sendo “username” e clique em “Save” para salvar as modificações feitas.

Navegue até a seção de “Mappers”, ainda nas configurações do cliente da Huawei Cloud, e clique em “Create” para criar um mapper para o username.

Selecione o “Mapper Type” como de tipo “User Property” e preencha os campos conforme a imagem abaixo.

Navegue mais uma vez até a seção de “Mappers”, ainda nas configurações do cliente da Huawei Cloud, e clique em “Create” para criar um mapper para o group.

Selecione o “Mapper Type” como de tipo “Group list” e preencha os campos conforme a imagem abaixo.

Nota: Para realizar a federação de usuários da Huawei Cloud, faz-se necessária a existência de usuários primeiramente. Caso não exista nenhum usuário criado no Keycloak, crie um usuário.

Exemplo

A seguir segue um exemplo de validação do login no console da Huawei Cloud por meio da federação de identidade.

Acessando o hyperlink do portal do IAM Identity Center.

Redirecionamento para a página de login do Identity Provider.

Redirecionamento para a o console da Huawei Cloud após a autenticação ser bem-sucedida.

Clique em “Access Console” ao lado do permission set desejado para realizar login na conta desejada.

Referências