{"id":22352942,"url":"https://github.com/fschick/keycloak.aspnet.angular","last_synced_at":"2025-07-30T08:33:47.907Z","repository":{"id":81961424,"uuid":"589231431","full_name":"fschick/Keycloak.ASPNet.Angular","owner":"fschick","description":"How to: ASP.NET Core with OAuth2 (Keycloak) and Angular","archived":false,"fork":false,"pushed_at":"2025-05-08T16:01:50.000Z","size":2107,"stargazers_count":45,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-08T17:22:20.113Z","etag":null,"topics":["angular","aps-net","asp-net-core","authentication","authorization","csharp","keycloak","oauth2","openid-connect","single-sign-on"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fschick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2023-01-15T14:12:59.000Z","updated_at":"2025-05-08T16:01:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4315b73-9535-4088-aa26-1ce02f250b78","html_url":"https://github.com/fschick/Keycloak.ASPNet.Angular","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fschick/Keycloak.ASPNet.Angular","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fschick%2FKeycloak.ASPNet.Angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fschick%2FKeycloak.ASPNet.Angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fschick%2FKeycloak.ASPNet.Angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fschick%2FKeycloak.ASPNet.Angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fschick","download_url":"https://codeload.github.com/fschick/Keycloak.ASPNet.Angular/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fschick%2FKeycloak.ASPNet.Angular/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267835920,"owners_count":24151889,"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-07-30T02:00:09.044Z","response_time":70,"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":["angular","aps-net","asp-net-core","authentication","authorization","csharp","keycloak","oauth2","openid-connect","single-sign-on"],"created_at":"2024-12-04T12:31:54.077Z","updated_at":"2025-07-30T08:33:47.897Z","avatar_url":"https://github.com/fschick.png","language":"C#","readme":"# How to: Keycloak - ASP.NET Core - Angular\n\nCode to demonstrate how to use Keycloak with ASP.NET, OpenAPI UI (formerly Swagger) and Angular\n\n**HINT**: Although this repository demonstrates the use of UMA, it is not necessarily the best use case. In many scenarios, [role-based authorization](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/authorization-via-roles) may be perfectly adequate.\n\n**WARNING**: Most security features are disabled for this demo. Before using Keycloak in production, your application must be [secured](https://www.keycloak.org/docs/latest/securing_apps/index.html).\n\n## Repository\n\nThe repository contains feature commits as well as branches for the following steps:\n\n[Demo application without authentication](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/01-authentication-none)\n\n[Demo application with authentication](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/02-authentication-only)\n\n[Demo application with authorization via roles](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/03-authorization-via-roles)\n\n[Demo application with authorization via UMA (user managed access protocol), role based](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/04-authorization-via-uma-role-based)\n\n[Demo application with authorization via UMA, policy based](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/05-authorization-via-uma-policy-based)\n\n[Demo application with authorization via UMA, decision API](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/06-authorization-via-uma-decision-api)\n\n## Repository updates\n\nI will use ‘[Rewriting History](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)’ for updates. So just get the repository every time you want the latest version. A `git pull` will normally lead to conflicts.\n\n## Project structure\n\n[`slides`](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/main/slides): Slide to the talk about Keycloak with ASP.NET and Angular\n\n[`keycloak`](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/main/keycloak): Export of Keycloak realms according to the steps from above\n\n[`snippets`](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/main/snippets): Code snippets to implement step-by-step\n\n[ `source/backend`](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/main/source/backend): Source code for the back-end server (ASP.NET Core)\n\n[`source/frontend`](https://github.com/fschick/Keycloak.ASPNet.Angular/tree/main/source/frontend): Source code for the front-end (Angular)\n\n## Resources\n\n*An Illustrated Guide to OAuth and OpenID Connect*\nhttps://developer.okta.com/blog/2019/10/21/illustrated-guide-to-oauth-and-oidc\n\n*Background information to OAuth and OpenID Connect*\n[OAuth 2.0](https://ldapwiki.com/wiki/Wiki.jsp?page=OAuth 2.0#top)\n[OpenID Connect](https://ldapwiki.com/wiki/Wiki.jsp?page=OpenID Connect#top)\n\n*Use Keycloak as Identity Provider in ASP.NET Core 6*\nhttps://nikiforovall.github.io/aspnetcore/dotnet/2022/08/24/dotnet-keycloak-auth.html\n\n*Real-World Application with Keycloak*\nhttps://github.com/fschick/TimeTracking\n\n*.NET / C# REST API client for the Keycloak Admin REST API*\nhttps://github.com/fschick/Keycloak.RestApiClient","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffschick%2Fkeycloak.aspnet.angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffschick%2Fkeycloak.aspnet.angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffschick%2Fkeycloak.aspnet.angular/lists"}