{"id":15092102,"url":"https://github.com/dotnetextensions/oauth20","last_synced_at":"2026-02-07T14:03:01.913Z","repository":{"id":255999652,"uuid":"853753616","full_name":"DotNetExtensions/OAuth20","owner":"DotNetExtensions","description":"Centralized project repository for DotNetExtensions.OAuth20, providing overall project structure, documentation, CI/CD workflows, and project-wide configuration files. This repository includes guidelines for contributing, security policies, issue templates, and GitFlow branching strategy, ensuring a well-organized and secure development process.","archived":false,"fork":false,"pushed_at":"2024-09-18T13:59:38.000Z","size":1151,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-22T11:47:49.617Z","etag":null,"topics":["authentication","authorization","code-of-conduct","community","contributing","conventions","documentation","dotnet","gitflow","github-projects","issue-template","issue-tracking","oauth20","open-source","project-management","pull-request-template","readme","roadmap","security","tasklist"],"latest_commit_sha":null,"homepage":"https://dotnetextensions.com/oauth20","language":null,"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/DotNetExtensions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-07T12:49:36.000Z","updated_at":"2024-09-18T14:08:26.000Z","dependencies_parsed_at":"2024-09-25T11:00:59.463Z","dependency_job_id":null,"html_url":"https://github.com/DotNetExtensions/OAuth20","commit_stats":{"total_commits":25,"total_committers":1,"mean_commits":25.0,"dds":0.0,"last_synced_commit":"9ed19b8a15ce949c9e0b80bb8f26e6858fb645a6"},"previous_names":["dotnetextensions/oauth20.project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DotNetExtensions/OAuth20","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DotNetExtensions%2FOAuth20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DotNetExtensions%2FOAuth20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DotNetExtensions%2FOAuth20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DotNetExtensions%2FOAuth20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DotNetExtensions","download_url":"https://codeload.github.com/DotNetExtensions/OAuth20/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DotNetExtensions%2FOAuth20/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266437368,"owners_count":23928235,"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-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["authentication","authorization","code-of-conduct","community","contributing","conventions","documentation","dotnet","gitflow","github-projects","issue-template","issue-tracking","oauth20","open-source","project-management","pull-request-template","readme","roadmap","security","tasklist"],"created_at":"2024-09-25T11:00:52.835Z","updated_at":"2026-02-07T14:03:01.884Z","avatar_url":"https://github.com/DotNetExtensions.png","language":null,"readme":"# DotNetExtensions.OAuth20 - Comprehensive OAuth 2.0 Authorization Server Project\r\n\r\n\u003c!-- [![Build Status](https://github.com/DotNetExtensions/OAuth20.Server/actions/workflows/build.yml/badge.svg)](https://github.com/DotNetExtensions/OAuth20.Server/actions/workflows/build.yml) --\u003e\r\n\u003c!-- [![NuGet Version](https://img.shields.io/nuget/v/DotNetExtensions.OAuth20.Server)](https://www.nuget.org/packages/DotNetExtensions.OAuth20.Server) --\u003e\r\n[![License](https://img.shields.io/github/license/DotNetExtensions/OAuth20)](./LICENSE)\r\n[![Contributors](https://img.shields.io/github/contributors/DotNetExtensions/OAuth20)](https://github.com/DotNetExtensions/OAuth20/graphs/contributors)\r\n\r\nDotNetExtensions.OAuth20 is a modular, cross-platform solution designed to implement OAuth 2.0 authorization flows in .NET applications. This project offers reusable libraries for core OAuth 2.0 functionalities and a fully hosted ASP.NET Core web application, making it easy to deploy and integrate secure authorization services across various environments.\r\n\r\n\u003cimg src=\"./assets/oauth20-flow.gif\" width=\"768\"\u003e\r\n\r\n*Figure 1: OAuth 2.0 [Protocol Flow](https://datatracker.ietf.org/doc/html/rfc6749#section-1.2) (taken from [dev.to article (authored by \"Hem\")](https://dev.to/hem/oauth-2-0-flows-explained-in-gifs-2o7a))*\r\n\r\n## Table of Contents\r\n\r\n- [Project Overview](#project-overview)\r\n- [Key Features](#key-features)\r\n- [Getting Started](#getting-started)\r\n- [Installation](#installation)\r\n  - [Library Installation](#library-installation)\r\n    - [Using NuGet Packages](#using-nuget-packages)\r\n    - [Direct Download](#direct-download)\r\n    - [Adding Services and Middleware](#adding-services-and-middleware)\r\n  - [Hosted Application Installation](#hosted-application-installation)\r\n    - [Docker Installation](#docker-installation)\r\n    - [Kubernetes Installation](#kubernetes-installation)\r\n    - [Helm Installation](#helm-installation)\r\n    - [Windows Service or IIS Installation](#windows-service-or-iis-installation)\r\n- [Running Tests and Benchmarks](#running-tests-and-benchmarks)\r\n- [Demo Projects](#demo-projects)\r\n- [Project Structure](#project-structure)\r\n- [Development Workflow](#development-workflow)\r\n- [Roadmap](#roadmap)\r\n- [Task List](#task-list)\r\n- [Community and Support](#community-and-support)\r\n- [Contributing](#contributing)\r\n- [Security](#security)\r\n- [License](#license)\r\n- [References](#references)\r\n\r\n## Project Overview\r\n\r\nWelcome to the DotNetExtensions.OAuth20 project, a comprehensive solution for implementing OAuth 2.0 authorization flows in .NET applications. This project is divided into two main repositories, each serving a distinct purpose:\r\n\r\n1. **Library Repository:**\r\n\r\n   - Contains the core OAuth 2.0 authorization libraries, data source integration libraries, and Blazor-based UI components (Admin Panel and Personal Account).\r\n   - Distributed via NuGet packages for easy integration into .NET projects.\r\n\r\n2. **Hosted Application Repository:**\r\n\r\n   - Contains an ASP.NET Core hosted web application that provides a fully functional OAuth 2.0 Authorization Server.\r\n   - Utilizes the libraries from the Library Repository to deliver OAuth 2.0 endpoints, UI components, and data storage options.\r\n   - Supports deployment via Docker, Kubernetes, Helm, and as a Windows Service or IIS application.\r\n\r\n## Key Features\r\n\r\n- **Modular Architecture:** Separates core functionality into reusable libraries and a hosted application, allowing for flexible deployment and integration.\r\n- **Cross-Platform Compatibility:** Supports .NET 8, .NET Standard 2.0/2.1, and .NET Framework 4.8.1.\r\n- **Flexible Data Storage:** Libraries support in-memory, SQLite, MS SQL Server, PostgreSQL, MySQL, and more.\r\n- **User Interfaces:** Includes Blazor-based user-friendly Admin Panel and Personal Account UI for managing OAuth 2.0 consents and configurations.\r\n- **Security Compliance:** Adheres to the OAuth 2.0 [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749) specification with additional enhancements.\r\n- **CI/CD Integration:** Automated workflows using GitHub Actions for building, testing, and release uploading.\r\n- **Comprehensive Testing:** Includes unit, integration, and load tests, benchmarks, demo projects, and configuration samples.\r\n- **Container and Cloud Support:** Ready-to-use Docker images with Kubernetes and Helm deployment configurations.\r\n- **Windows Installation:** Install on Windows OS as a Hosted Service or an IIS application.\r\n\r\n## Getting Started\r\n\r\nTo get started with DotNetExtensions.OAuth20, follow the installation instructions below for either integrating the library into your project or deploying the hosted application.\r\n\r\n## Installation\r\n\r\n### Library Installation\r\n\r\n**Prerequisites:**\r\n\r\n- .NET SDK (version 8.0 or later)\r\n\r\n#### Using NuGet Packages\r\n\r\nThe libraries are available as NuGet packages. To install, use the following command in your package manager console:\r\n\r\n```bash\r\ndotnet add package DotNetExtensions.OAuth20.Server --version x.x.x\r\n```\r\n\r\nReplace `x.x.x` with the latest version number from the [NuGet Gallery](https://www.nuget.org/packages/DotNetExtensions.OAuth20.Server).\r\n\r\n#### Direct Download\r\n\r\nYou can also download the compiled library assemblies directly from the [GitHub Releases](https://github.com/DotNetExtensions/OAuth20.Server/releases) page and add them to your project manually.\r\n\r\n#### Adding Services and Middleware\r\n\r\nAdd the library services in your `Startup.cs` or `Program.cs` file:\r\n\r\n```csharp\r\nservices.AddOAuth20Server();\r\n```\r\n\r\nAnd use its middleware:\r\n\r\n```csharp\r\napp.UseOAuth20Server();\r\n```\r\n\r\n### Hosted Application Installation\r\n\r\n**Prerequisites:**\r\n\r\n- Docker (if using containerized deployments)\r\n- Kubernetes (for cluster-based deployments)\r\n- IIS (for IIS installations)\r\n\r\n#### Docker Installation\r\n\r\nTo run the OAuth 2.0 Server using Docker, execute:\r\n\r\n```bash\r\ndocker pull dotnetextensions/oauth20serverhost:latest\r\ndocker run -d -p 5000:80 dotnetextensions/oauth20serverhost:latest\r\n```\r\n\r\n#### Kubernetes Installation\r\n\r\nTo deploy the server on a Kubernetes cluster, use the following command:\r\n\r\n```bash\r\nkubectl apply -f https://github.com/DotNetExtensions/OAuth20.Server.Host/kubernetes-manifest.yaml\r\n```\r\n\r\n#### Helm Installation\r\n\r\nTo install using Helm, use the following command:\r\n\r\n```bash\r\nhelm repo add dotnetextensions https://dotnetextensions.com/oauth20/helm\r\nhelm install your-release-name dotnetextensions/oauth20serverhost --version x.x.x\r\n```\r\n\r\nReplace `x.x.x` with the desired version number.\r\n\r\n#### Windows Service or IIS Installation\r\n\r\nYou can install your OAuth 2.0 Server as a Windows Service or IIS website by following the instructions in the [Hosted Application Repository](https://github.com/DotNetExtensions/OAuth20.Server.Host).\r\n\r\n## Running Tests and Benchmarks\r\n\r\nTo run the unit tests included in the Library Repository, use the following command:\r\n\r\n```bash\r\ndotnet test\r\n```\r\n\r\nTo run benchmarks, navigate to the benchmarks directory and use:\r\n\r\n```bash\r\ndotnet run -c Release\r\n```\r\n\r\n## Demo Projects\r\n\r\nThis project includes several demo projects within the Library Repository to help you get started with different OAuth 2.0 flows. You can find these in the `Demos` directory. Follow the README files within each demo project for setup and usage instructions.\r\n\r\n## Project Structure\r\n\r\nThis project is divided into the following repositories:\r\n\r\n- **Project Repository:** [DotNetExtensions/OAuth20](https://github.com/DotNetExtensions/OAuth20) (Current Repository)\r\n  - Essential Project Documentation\r\n\r\n- **Library Repository:** [DotNetExtensions/OAuth20.Server](https://github.com/DotNetExtensions/OAuth20.Server)\r\n  - Core Libraries\r\n  - Data Source Libraries\r\n  - UI Libraries\r\n  - Infrastructure (tests, benchmarks, demos)\r\n  - Available via NuGet and direct download.\r\n\r\n- **Hosted Application Repository:** [DotNetExtensions/OAuth20.Server.Host](https://github.com/DotNetExtensions/OAuth20.Server.Host)\r\n  - ASP.NET Core Application\r\n  - Integration with core and UI libraries\r\n  - Infrastructure (tests, demos)\r\n  - Deployment support via Docker, Kubernetes, Helm, Windows Service, IIS.\r\n\r\n## Development Workflow\r\n\r\nWe follow the GitFlow branching strategy for managing our development and release processes. For detailed information, please refer to our [GitFlow Guide](https://github.com/DotNetExtensions/OAuth20/blob/main/GITFLOW.md).\r\n\r\n## Roadmap\r\n\r\nTo understand our future plans and milestones, please refer to our [Roadmap](https://github.com/DotNetExtensions/OAuth20/blob/main/ROADMAP.md).\r\n\r\n## Task List\r\n\r\nFor a detailed breakdown of ongoing and upcoming tasks, please refer to our [Task List](https://github.com/DotNetExtensions/OAuth20/blob/main/TASKLIST.md).\r\n\r\n## Community and Support\r\n\r\nFor discussions, support, and feedback, please visit:\r\n\r\n- [GitHub Project Page](https://github.com/orgs/DotNetExtensions/projects/17)\r\n- [Project Website](https://dotnetextensions.com/oauth20)\r\n- [Community Board](https://dotnetextensions.com/oauth20/community)\r\n- [Support Page](https://dotnetextensions.com/oauth20/support)\r\n\r\n## Contributing\r\n\r\nWe welcome contributions! Please read our [Contributing Guidelines](https://github.com/DotNetExtensions/OAuth20/blob/main/CONTRIBUTING.md) to get started.\r\n\r\nFor detailed information on coding, formatting, and contribution conventions, please refer to our [Conventions](https://github.com/DotNetExtensions/OAuth20/blob/main/CONVENTIONS.md) file.\r\n\r\nPlease note that all contributions are expected to adhere to our [Code of Conduct](https://github.com/DotNetExtensions/OAuth20/blob/main/CODE_OF_CONDUCT.md).\r\n\r\n## Security\r\n\r\nWe take the security of our project seriously. If you discover any security vulnerabilities, please report them by following the instructions in our [Security Policy](https://github.com/DotNetExtensions/OAuth20/blob/main/SECURITY.md).\r\n\r\n## License\r\n\r\nThis project is licensed under the [MIT License](https://github.com/DotNetExtensions/OAuth20/blob/main/LICENSE).\r\n\r\n## References\r\n\r\nThis project is based on the OAuth 2.0 Authorization Framework, specifically following the guidelines set forth in [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749).\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnetextensions%2Foauth20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnetextensions%2Foauth20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnetextensions%2Foauth20/lists"}