{"id":24203369,"url":"https://github.com/fosouzadev-public/webapi-rest-keycloak","last_synced_at":"2025-10-10T21:08:02.015Z","repository":{"id":259435571,"uuid":"877834609","full_name":"fosouzadev-public/webapi-rest-keycloak","owner":"fosouzadev-public","description":"Web Api Rest simples para validar um token de usuário gerado pelo Keycloak","archived":false,"fork":false,"pushed_at":"2024-10-25T22:58:52.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T14:46:11.247Z","etag":null,"topics":["authorization","csharp","keycloak","rest-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fosouzadev-public.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T10:22:19.000Z","updated_at":"2024-11-26T00:01:14.000Z","dependencies_parsed_at":"2024-10-25T11:12:27.474Z","dependency_job_id":"b8874d7d-9221-49d1-83ba-437f14cab378","html_url":"https://github.com/fosouzadev-public/webapi-rest-keycloak","commit_stats":null,"previous_names":["fosouzadev/webapi-rest-keycloak","fosouzadev-public/webapi-rest-keycloak"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fosouzadev-public/webapi-rest-keycloak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fosouzadev-public%2Fwebapi-rest-keycloak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fosouzadev-public%2Fwebapi-rest-keycloak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fosouzadev-public%2Fwebapi-rest-keycloak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fosouzadev-public%2Fwebapi-rest-keycloak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fosouzadev-public","download_url":"https://codeload.github.com/fosouzadev-public/webapi-rest-keycloak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fosouzadev-public%2Fwebapi-rest-keycloak/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005407,"owners_count":26083883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authorization","csharp","keycloak","rest-api"],"created_at":"2025-01-13T22:34:43.789Z","updated_at":"2025-10-10T21:08:01.987Z","avatar_url":"https://github.com/fosouzadev-public.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web Api Rest Keycloak\nWeb Api Rest simples para validar um token de usuário gerado pelo Keycloak\n\n## Comandos utilizados para criação do projeto\n```csharp\ndotnet new sln -n WebApiRestKeycloak\ndotnet new webapi --use-controllers -n WebApiServer\ndotnet sln add ./WebApiServer\ndotnet add package Microsoft.AspNetCore.Authentication.JwtBearer\n```\n\n## Keycloak\nDocumentação para criar [container do Keycloak](https://www.keycloak.org/getting-started/getting-started-docker), criar um usuário básico e gerar um token JWT para teste.\n\n## Configurações do Keycloak\nAlgumas das etapas abaixo possuem detalhes na [documentação](https://www.keycloak.org/getting-started/getting-started-docker) que não serão mencionados aqui.\n\nCrie um novo `Realm`, e entre em suas configurações.\n\nEm `Realm roles`, crie as roles desejadas, exemplo: `admin`, `manager`, `user`, etc.\n\nEm `Groups`, crie os grupos para agrupar as roles conforme desejado, exemplo: um grupo `administrators` pode agrupar as roles `admin` e `manager`. Nas configurações do grupo, utilize a aba `Role mapping` para adicionar as roles.\n\nEm `Users`, crie um novo usuário, e faça as seguintes configurações:\n* Na aba `Credentials`, defina uma senha para o usuário;\n* Na aba `Groups`, associe o(s) grupo(s) criado(s).\n\nEm `Clients`, crie um novo cliente para representar a aplicação que o usuário utilizará para fazer login. Nas configurações do cliente, na aba `Client scopes`, faça as seguintes configurações:\n* Exclua todos os escopos que são adicionados por padrão;\n* Adicione o escopo `basic`, ele é responsável por adicionar o id do usuário no token com a nomenclatura `sub`;\n* Entre no escopo `{ClientName}-dedicated` e faça as seguintes configurações:\n    * Adicione um novo `mapper` do tipo `By configuration` chamado `Audience`. Defina um nome e selecione sua aplicação no campo `Included Client Audience`, verifique se está marcado `On` para adicionar no token;\n    * Adicione um novo `mapper` do tipo `By configuration` chamado `User Realm Role`. Defina um nome, coloque o valor `roles` no campo `Token Claim Name` e verifique se está marcado `On` para adicionar no token;\n    * Na aba `Scope`, coloque `Off` na chave `Full scope allowed` e adicione as roles que criou anteriormente.\n\n## Configurações da aplicação\nNo arquivo `appsettings.json`, informe os valores para `{RealmName}`, `{Audience}` e `{PublicKey}`.\n\nNos `controllers`, configure as roles criadas.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffosouzadev-public%2Fwebapi-rest-keycloak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffosouzadev-public%2Fwebapi-rest-keycloak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffosouzadev-public%2Fwebapi-rest-keycloak/lists"}