Skip to content

Remora/Remora.OAuth2

Repository files navigation

Remora.OAuth2

Remora.OAuth2 is a C# library for interfacing with OAuth2 services. It is built to fulfill a need for robust, feature-complete, highly available and concurrent applications.

Want to chat with users and developers? Come join us!

OAuth2 Server

Table of Contents

  1. Features
    1. Support Table
  2. Goals
    1. Correctness
    2. Robustness
    3. True Asynchronicity and Concurrency
  3. Installation
  4. Usage
  5. Contributing

1. Features

  • Extensive API coverage - does anything and everything you need
  • Modern and active - uses contemporary technologies and usage patterns
  • Fully asynchronous - do many things at once at scale
  • Modular - swap parts of the library with your own implementations at will

1.1 Support Table

This table lists the various RFCs related to OAuth2 that the library supports.

RFC Name Supported
6749 OAuth 2.0 Authorization Framework API model only
7009 Token Revocation API model only
8628 Device Authorization Grant API model only

2. Goals

Remora.OAuth2 defines the following three goals that guides its development. These are shorter summaries - to read the full goal definitions and see examples, please refer to the Contributing Guidelines.

2.1 Correctness

Correctness, in the context of Remora.OAuth2, means that the API available to the end user should as faithfully and accurately represent the actual reality of data presented to or from an API; that is, no data or structure of data should meaningfully change between the library receiving it and the user accessing it.

2.2 Robustness

Robustness refers to a focus on never allowing problems originating from user data or real-life runtime conditions to bring down or otherwise corrupt the end user's application. The end user should be confident that, should an error arise, they will be aware of the fault potential before even compiling the application.

2.3 True Asynchronicity and Concurrency

Remora.OAuth2 aims to be truly asynchronous from the ground up, respecting and utilizing established best practices for C# and the TPL. Furthermore, it aims to be concurrent, allowing end users to react to and perform actions upon many tasks at once.

4. Installation

Remora.OAuth2's primary distribution format is via nuget - get it there!

If you wish to use or develop the library further, you will need to compile it from source.

git clone git@github.com:Remora/Remora.OAuth2.git
cd Remora.OAuth2
dotnet build
dotnet pack -c Release

5. Usage

Up-to-date documentation for the API, as well as a quickstart guide, is available online at the repository pages.

Each package has its own README with more detailed information regarding its purpose and use. If you want to know more about each one of these, please refer to the list below. It's roughly organized in order of importance to end users, but feel free to explore.

5.1 Versioning

A note on versioning - Remora.OAuth2 uses SEMVER 2.0.0, which, in short, means

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards compatible manner, and
  3. PATCH version when you make backwards compatible bug fixes.

5.2 Releases

Remora.OAuth2 does not follow a set release cycle, and releases new versions on a rolling basis as new features of the OAuth2 API are implemented or documented.

As a developer, you should check in every now and then to see what's changed - changelogs are released along with tags here on Github, as well as in the individual package descriptions.

Whenever a new set of packages are released, the commit the releases were built from is tagged with the year and an incremental release number - for example, 2021.1.

5.2.1 Bleeding Edge Builds

Whenever a new push to main is made, a new set of packages based on the latest commit will be published to GitHub Packages.

The URL of the NuGet source is https://nuget.pkg.github.com/Remora/index.json.
As the NuGet source requires authentication, follow GitHub's instructions: here

6. Contributing

See Contributing.

Thanks

Icon by Twemoji, licensed under CC-BY 4.0.

About

Service- and backend-agnostic implementation of OAuth2 for .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published