Skip to content

Latest commit

 

History

297 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Segurança de API com KeyCloak

banner

Note

Docker

Docker compose

.NET 9 SDK

Warning

SonarQube Cloud

Passo a passo

1. Criação do Realm

  1. Crie um novo Realm no Keycloak.

2. Configuração de Clientes

Menu: Clients

  1. Acesse o menu Clients e realize as configurações abaixo:
    • General Settings: Preencha o campo Client ID.
    • Capability Config: Habilite a flag Client Authentication.
    • Login Settings: Não é necessário realizar configurações adicionais (n/a).

Menu: Client Scopes

  1. Crie um novo Client Scope:
    • Preencha o campo Name.
    • Marque a opção Include in token scope.
    • Clique em Save.
  2. Configure um novo Mapper:
    • Selecione o tipo Audience.
    • Preencha o campo Name.
    • No campo Include Client Audience, insira o nome do client criado no passo 2 (Menu: Clients).

Menu: Clients

  1. Selecione o cliente recém-criado.
  2. Vá até a aba Client Scopes:
    • Clique no botão Add client scope.
    • Selecione o scope criado anteriormente.
    • Clique em Add / Default para finalizar.

3. Configuração de Usuários

Menu: Users

  1. Crie um novo usuário:
    • Preencha o campo Username, Email e First Name e Last Name.
  2. Após criar o usuário:
    • Acesse a aba Credentials.
    • Defina uma senha para o usuário.
    • Certifique-se de não marcar a opção Temporary.

Teste via cURL

Note

Para obter o client_id e client_secret, acesse o menu Clients, selecione o client e copie o client_id da aba de Settings e client_secret da aba Credentials

curl --location --request POST 'http://localhost:8087/realms/<REALM_NAME>/protocol/openid-connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=' --data-urlencode 'client_secret=' --data-urlencode 'username=' --data-urlencode 'password='
curl --location --request POST 'http://localhost:8087/realms/Canal-DEPLOY/protocol/openid-connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=client-api' --data-urlencode 'client_secret=' --data-urlencode 'username=user-api' --data-urlencode 'password='
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable('token', jsonData.access_token);

Docker

imagens

https://hub.docker.com/_/postgres/
https://www.pgadmin.org/download/pgadmin-4-container/
https://hub.docker.com/r/keycloak/keycloak

Docs

Fork

Create a secrets

SONAR_TOKEN

SONAR_ORGANIZATION

SONAR_PROJECT_KEY

SONAR_PROJECT_NAME

GITLEAKS_LICENSE

SNYK_TOKEN

About

Projeto para demostração de Autenticação e Autorização utilizando KeyCloak

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages