ASP.NET OAuth Single Sign-On (SSO) usando Keycloak como provedor OAuth
O módulo ASP.NET OAuth Single Sign-On (SSO) permite habilitar o OAuth Single Sign-On para seus aplicativos ASP.NET. Com o Single Sign-On, você pode usar apenas uma senha para acessar seus aplicativos e serviços ASP.NET. Nosso módulo é compatível com todos os provedores de identidade compatíveis com OAuth. Aqui, apresentaremos um guia passo a passo para configurar o Single Sign-On (SSO) entre o ASP.NET e o Keycloak como provedor OAuth.
Para configurar o conector, extraia o
asp-net-oauth-sso-module.zip, você encontrará um arquivo DLL
miniorange-oauth-sso.dll, um arquivo de configuração
oauthsso.config e uma integração.md arquivo que contém as etapas para adicionar o módulo ao seu aplicativo.
1. Adicione o conector em seu aplicativo
Adicione miniorange-oauth-sso.dll na pasta bin (onde estão seus outros arquivos DLL) para seu aplicativo.
Registrar-se miniorangeoauthsso módulo em sua aplicação de acordo com as etapas fornecidas no integração.md arquivo.
Adicione o arquivo de configuração fornecido oauthsso.config no diretório raiz do seu aplicativo.
Após a integração, abra o navegador e navegue até o painel do conector com a URL abaixo: https:// <your-application-base-url>/?ssoaction=config
Se aparecer a página de registro ou de login, você adicionou com sucesso o conector miniOrange oauth sso para seu aplicativo.
Adicionar Realm: Agora faça login no console de administração do Keycloak e navegue até o domínio desejado. Você pode adicionar um novo domínio selecionando
Adicionar Reino opção.
Criar reino: Entrar Nome do Reino e mantenha o nome do domínio em mãos, pois será necessário posteriormente para configurar o domínio no plugin ASP.NET OAuth. Clique em CRIAR para adicionar reino.
Criar cliente OpenID: Clique no
Clientes e escolha cria Para criar um novo cliente, insira o ID do cliente e selecione o protocolo do cliente.
conexão aberta e selecione Economize.
Alterar tipo de acesso: Após a criação do cliente, altere seu tipo de acesso para confidencial.
Insira URIs de redirecionamento válidos: exemplar URL de retorno de chamada do plugin e então clique em SALVAR. Ex. -- https:///oauth/retorno de chamada
Obter segredo do cliente: Agora precisamos obter o segredo do cliente. Então selecione Clientes e selecione credenciais e copie seu segredo daqui.
Configuração do plugin: Digite copiado
Segredo do cliente para Segredo do cliente campo no plugin ASP.NET OAuth e insira o Nome do Cliente no campo ID do cliente.
Adicionar usuário: Precisamos adicionar usuários ao reino que poderão acessar os recursos do reino. Clique em Utilizadores e escolher Adicionar um novo usuário.
Configuração do usuário: Depois que o usuário for criado, a seguinte ação precisa ser executada nele.
1) Defina uma senha para ele, clique em
Credenciais
e defina uma nova senha para o usuário.
OBSERVAÇÃO: Desabilitar Temporário tornará a senha do usuário permanente.
Usuário do mapa: Precisamos mapear o usuário para uma função. Clique em
Mapeamentos de funções e atribuir ao usuário a função desejada dentre as funções disponíveis e clicar em adicionar selecionado.
Criar FUNÇÃO: A função será usada pelos seus aplicativos para definir quais usuários serão autorizados a acessar o aplicativo. Clique no botão Setores e escolha Adicionar Tipo.
Etapa 2.1: Etapas para buscar grupos Keycloak
Criar grupos: Clique no Grupos e escolher New para criar um novo grupo.
Atribuir usuário ao grupo: Selecione o usuário que deseja adicionar ao grupo. Escolha a opção "Grupos" na aba, selecione o nome do grupo e clique em juntar.
Mapeador de Grupo Keycloak: Agora, para obter os detalhes do grupo, precisamos realizar o mapeamento do cliente com a associação ao grupo, caso contrário, os detalhes do grupo não serão obtidos. Então, em Seção do cliente, selecione seu cliente e clique em mapeador->criar.
Agora selecione tipo mapeador as Membro do grupo e digite o
nome e nome da reivindicação do token ou seja, o nome do atributo correspondente aos grupos que serão buscados. Desative as opções "Caminho completo do grupo", "Adicionar ao token de ID" e "Adicionar ao token de acesso" e clique em Economize.
Observação: -- Se o caminho completo estiver no grupo, o caminho será obtido, caso contrário, o nome do grupo será obtido.
Etapa 2.2: Etapas para obter funções do Keycloak
Mapeador de funções do Keycloak: Agora, para obter os detalhes da função, precisamos realizar o mapeamento do cliente com a associação à função, caso contrário, os detalhes da função não serão obtidos. Então, em Seção do cliente, selecione seu cliente e clique em mapeador->criar.
Agora selecione tipo mapeador as Função do reino do usuário Associação e entrar no nome. e nome da reivindicação do token ou seja, o nome do atributo correspondente aos grupos que serão buscados. Selecione as opções "Adicionar ao token de ID" e "Adicionar ao token de acesso" e clique em Economize.
Adicionar Realm: Agora faça login no console de administração do Keycloak e navegue até o domínio desejado. Você pode adicionar um novo domínio selecionando
Criar reino opção.
Criar reino: Entrar Nome do Reino e mantenha o nome do domínio em mãos, pois será necessário posteriormente para configurar o domínio no plugin OAuth Client. Clique em CRIAR para adicionar reino.
Criar cliente OpenID: Clique no
Clientes e escolha Criar cliente Para criar um novo cliente, insira o ID do cliente e selecione o protocolo do cliente.
conexão aberta e clique Seguinte.
permitir que o Autenticação de cliente e Autorização alternancia.
Desloque-se até o Configurações de acesso e digite seu
URL de retorno/redirecionamento
que você obterá do seu plugin miniOrange presente no lado do cliente em URLs de retorno de chamada campo de texto.
Vou ao Credenciais guia, copie o Segredo do cliente e mantenha-o à mão, pois precisaremos dele mais tarde ao configurar o plugin ASP.NET OAuth Single Sign-On.
Configuração do plugin: Digite copiado Segredo do cliente para
Segredo do cliente campo no plugin ASP.NET OAuth e insira o
ID do cliente sob a ID do cliente campo.
Adicionar usuário: Precisamos adicionar usuários ao reino que poderão acessar os recursos do reino. Clique em Utilizadores e clique em
Criar novo usuário para adicionar um novo usuário.
Configuração do usuário: Depois que o usuário for criado, a seguinte ação precisa ser executada nele.
1) Defina uma senha para ele, clique em
Credenciais
e defina uma nova senha para o usuário.
OBSERVAÇÃO: Desabilitar Temporário tornará a senha do usuário permanente.
Usuário do mapa: Precisamos mapear o usuário para uma função. Clique em
Mapeamentos de funções e atribuir ao usuário a função desejada dentre as funções disponíveis.
Criar FUNÇÃO: A função será usada pelos seus aplicativos para definir quais usuários serão autorizados a acessar o aplicativo. Clique no botão Setores e escolha Criar papel.
3. Configurar o cliente miniOrange ASP.NET OAuth
Depois de configurar seu provedor OAuth, ele fornecerá a você
ID do cliente, segredo do cliente, endpoint de autorização, endpoint de token de acesso
e Obter ponto final de informações do usuário. Configure esses valores nos respectivos campos.
Preencha todos os detalhes necessários e clique em Salvar configuração.
4. Configuração de teste
Após salvar a configuração, clique em
Configuração de Teste botão para verificar se você configurou corretamente.
Com a configuração bem-sucedida, você obterá Nome dos atributos e
Valores de Atributo na janela Configuração de Teste. A captura de tela abaixo mostra um resultado bem-sucedido.
5. Mapeamento de Atributos
Nomes de atributos do mapa fornecidos pelo seu servidor OAuth com os atributos do seu aplicativo ASP.NET fornecidos na seção Mapeamento de atributos e clique em
Salvar mapeamento de atributos.
Observação: Todos os atributos mapeados serão armazenados na sessão para que você possa acessá-los em seu aplicativo.
6. Código de Integração
Você pode encontrar o código de integração na aba Código de Integração do conector. Basta copiar e colar esse trecho de código onde quiser para acessar os atributos do usuário.
7. Adicione o seguinte link em seu aplicativo para Single Sign-On (SSO)
Use a seguinte URL como um link no seu aplicativo de onde você deseja executar o SSO: http://base-url/?ssoaction=login
Por exemplo, você pode usá-lo como: <a href="http://base-url/?ssoaction=login”>Log in</a>"
Você pode configurar o módulo ASP.NET SAML 2.0 Single Sign-On (SSO) com qualquer provedor de identidade, como ADFS, Azure AD, Bitium, Centrify, G Suite, JBoss Keycloak, Okta, OneLogin, Salesforce, AWS Cognito, OpenAM, Oracle, PingFederate, PingOne, RSA SecureID, Shibboleth-2, Shibboleth-3, SimpleSAML, WSO2 ou até mesmo com seu próprio provedor de identidade personalizado.