Doorkeeper
OmniAuth
Doorkeeper | OmniAuth | |
---|---|---|
7 | 24 | |
5,379 | 7,957 | |
0.3% | 0.2% | |
7.9 | 3.9 | |
15 days ago | about 2 months ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Doorkeeper
-
Rails and Keycloak, Authentication Authorization, part one
You can use doorkeeper gem. Which can convert your Rails application into an identity provider. But this means that one of your applications will be the single source of truth for users management.
-
Best way for user auth with a Rails API?
The doorkeeper gem.
-
Rails Personal access tokens
Take a look at doorkeeper.
-
Zitadel: The best of Auth0 and Keycloak combined
Disclosure: I work for FusionAuth.
Depends on what you are looking for.
If you want a standalone auth server, you can use FusionAuth in docker/docker-compose: https://fusionauth.io/docs/v1/tech/installation-guide/docker
You can also package up a library; most major languages have one or more OAuth/OIDC libraries: https://github.com/doorkeeper-gem/doorkeeper for Ruby, https://spring.io/projects/spring-security for Spring/Java, https://oauth2.thephpleague.com/ for PHP, https://pypi.org/project/oauthlib/ for Python.
https://oauth.net/code/ has a further selection of libraries in a variety of languages.
-
Need help implementing PKCE flow in Doorkeeper
Are there any code examples to implement the PKCE flow in Doorkeeper? I am a bit confused on how to implement it here: https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-PKCE-flow
-
Using the same backend for both web views & mobile app
For authorization we use Doorkeeper gem with PKCE flow.
-
Authelia is an open-source authentication/authorization server with 2FA/SSO
One thing that is missing from this list is open source language specific libraries. Projects such as https://oauthlib.readthedocs.io/en/latest/oauth2/server.html and https://github.com/doorkeeper-gem/doorkeeper
Depending on your use case, for example if you only have one application, you might be better off running something embedded in your app, or independent but using the same runtime/deployment environment. Then, when you are ready to add another app or integration, you should be able to introduce a standalone auth system more easily if appropriate (because all your auth interactions should be relatively standardized). I'm a big fan of standalone auth systems as a way to simplify access control and give a single view of a user/customer, but you can also succeed using open source embedded libraries.
When the moment comes to introduce a standalone system, you should consider a few dimensions (this list pulled from a previous comment of mine: https://news.ycombinator.com/item?id=26360048 ):
* open source or not
OmniAuth
-
How to use gem omniauth and omniauth-oauth2 to implement SSO for multiple customers
Your Rails setup does not support dynamically configuring client information as described in other solutions.
-
What is the best way to implement social logins in an API-only Rails app?
I've seen the Omniauth gem. But based on this gist it seems this gem is more suitable for web apps. Here is the quote from that gist.
-
Advanced Usages of Devise for Rails
In many cases, this convenient multi-provider authentication is powered by a library called OmniAuth. OmniAuth is a flexible and powerful authentication library for Ruby that allows you to integrate with multiple external providers.
-
Implementing Devise in Your Ruby on Rails Application For Authentication
Omniauthable: adds OmniAuth support.
-
Unleash Devise-Enabling All Modules
:omniauthable is a special module in devise but it's also in charge of a very common feature: letting users log in by using a user's session from another website, e.g. Facebook, Google, Twitter, Github, etc. It's kind of delegating authentication work to those big tech companies. Nowadays, most companies follow OAuth's standards to build the authentication workflow (OAuth always means OAuth 2.0 in this article). However, each company may have different dialects when you communicate via OAuth. This module is called :omniauthable because devise has integrated with the gem omniauth, which provides a unified interface to realize the login process via OAuth.
-
Is it "safe" to link my personal GitLab.com account to my work Google account?
If you want more details, the google authentication is one of many strategies for OmniAuth.
-
Omniauth without Devise
# https://github.com/omniauth/omniauth # https://github.com/settings/applications/new # echo > config/initializers/omniauth.rb # config/initializers/omniauth.rb Rails.application.config.middleware.use OmniAuth::Builder do provider :github, "GITHUB_ID", "GITHUB_SECRET" end
-
A First Look at Hanami 2 for Ruby
In general, even though the Hanami ecosystem lacks any "plug-and-play" solutions such as Devise, you can use many existing libraries not tightly coupled to Ruby on Rails. For authentication, you can use Warden, OmniAuth or Rodauth. For uploads there is Shrine. The pagination is built into ROM. Integration with exception catchers such as Rollbar is easy.
-
Social Login in Rails with Rodauth
In this article, I show how to set up the rodauth-omniauth gem I had created in a Rails app, and customize the flow. This gem provides a much more integrated solution compared to Devise, in the sense that it implements the OmniAuth callback phase, automatically registering the user and/or logging them in, and persisting their external identities. It supports multiple providers, and essentially codifies this OmniAuth guide.
OmniAuth provides a standardized interface for authenticating with various external providers. Once the user authenticates with the provider, it's up to us developers to handle the callback and implement actual login and registration into the app. There is a wiki page laying out various scenarios that need to be handled if you want to support multiple providers, showing that it's by no means a trivial task.
What are some alternatives?
Devise - Flexible authentication solution for Rails with Warden.
OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol.
warden - General Rack Authentication Framework
JWT - A ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
Rodauth - Ruby's Most Advanced Authentication Framework