{"id":19055731,"url":"https://github.com/xabaril/balea","last_synced_at":"2025-05-16T05:07:01.610Z","repository":{"id":43483235,"uuid":"227327169","full_name":"Xabaril/Balea","owner":"Xabaril","description":"Balea is an authorization framework for ASP.NET Core developers.","archived":false,"fork":false,"pushed_at":"2024-09-11T09:29:27.000Z","size":29478,"stargazers_count":248,"open_issues_count":6,"forks_count":36,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-05-16T05:06:55.640Z","etag":null,"topics":["asp-net-core","authorization"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xabaril.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}},"created_at":"2019-12-11T09:32:07.000Z","updated_at":"2025-05-02T13:03:50.000Z","dependencies_parsed_at":"2024-09-11T11:35:33.196Z","dependency_job_id":"03a5a586-ca42-47bd-a078-420cafc17e43","html_url":"https://github.com/Xabaril/Balea","commit_stats":{"total_commits":124,"total_committers":14,"mean_commits":8.857142857142858,"dds":0.3467741935483871,"last_synced_commit":"fee10c46c2b6ab033735ee03b36e1522775b671f"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FBalea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FBalea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FBalea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FBalea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xabaril","download_url":"https://codeload.github.com/Xabaril/Balea/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471060,"owners_count":22076585,"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","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":["asp-net-core","authorization"],"created_at":"2024-11-08T23:46:49.020Z","updated_at":"2025-05-16T05:06:56.582Z","avatar_url":"https://github.com/Xabaril.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Balea CI](https://github.com/Xabaril/Balea/workflows/Balea%20CI/badge.svg) [![Documentation Status](https://readthedocs.org/projects/balea/badge/?version=latest)](https://balea.readthedocs.io/en/latest/?badge=latest)\n\n[![Nuget](https://img.shields.io/nuget/v/balea?label=balea)](https://www.nuget.org/packages/Balea/) [![Nuget](https://img.shields.io/nuget/v/balea.configuration.store?label=baleaconfigurationstore)](https://www.nuget.org/packages/Balea.Configuration.Store/) [![Nuget](https://img.shields.io/nuget/v/balea.entityframeworkcore.store?label=baleaefcorestore)](https://www.nuget.org/packages/Balea.EntityFrameworkCore.Store/)\n\n[![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/balea?color=yellow\u0026label=balea%20preview)](https://www.nuget.org/packages/Balea/1.0.0-preview53023997) [![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/balea.configuration.store?color=yellow\u0026label=baleaconfigurationstore%20preview)](https://www.nuget.org/packages/Balea.Configuration.Store/1.0.0-preview53023997) [![Nuget (with prereleases)](https://img.shields.io/nuget/vpre/balea.entityframeworkcore.store?color=yellow\u0026label=baleaefcorestore%20preview)](https://www.nuget.org/packages/Balea.EntityFrameworkCore.Store/1.0.0-preview53023997)\n\n# Authentication != Authorization\n\nAuthentication and authorization might sound similar, but both are distinct security processes in the world of identity and access management and understanding the difference between these two concepts is the key to successfully implementing a good IAM solution.\n\nWhile authentication is the act of verifying oneself, authorization is the process of verifying what you have access to, so coupling identity and access management in a single solution is not considered a good approach. Authentication is really good to provide a common identity across all applications while authorization is something that varies in each application, for these reasons we should treat them independently.\n\nIt is very common to see how people misuse OIDC servers by adding permissions into tokens and there are many reasons why this approach is a wrong solution:\n\n- Permissions are something that depends on each application and sometimes depends on complex business rules.\n- Permissions could change during the user session, so if you are using JWT tokens, you must wait until the lifetime of the token expires to retrieve a new token with the permissions up to date.\n- You should keep your tokens small because we have some well-known restrictions such as URL Path Length Restrictions, bandwidth...\n\n# What is Balea?\n\nBalea is an authorization framework for ASP.NET Core developers that aims to help us decoupling authentication and authorization in our web applications.\n\nFor project documentation, please visit [readthedocs](https://balea.readthedocs.io).\n\n## How to build\n\nBalea is built against the latest NET Core 6 and .Net Core 8.\n\n- [Install](https://www.microsoft.com/net/download/core#/current) the [required](https://github.com/Xabaril/Balea/blob/master/global.json) .NET Core SDK\n- Run [build.ps1](https://github.com/Xabaril/Balea/blob/master/build.ps1) in the root of the repo.\n\n## Kudos\nThis project was inspired by Dominick Baier's \u0026 Brock Allen PolicyServer (local version) https://github.com/PolicyServer/PolicyServer.Local Thank you to all who have contributed in the project!\n\n## Acknowledgements\n\nBalea is built using the following great open source projects and free services:\n\n- [ASP.NET Core](https://github.com/aspnet)\n- [XUnit](https://xunit.github.io/)\n- [Fluent Assertions](http://www.fluentassertions.com/)\n\n..and last but not least a big thanks to all our [contributors](https://github.com/Xabaril/Balea/graphs/contributors)!\n\n## Code of conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxabaril%2Fbalea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxabaril%2Fbalea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxabaril%2Fbalea/lists"}