Add openid connect support using doorkeeper-openid_connect gem

... as discussed in [Issue 507](https://github.com/openstreetmap/operations/issues/507)
and described by @mmd-osm.

To activate, set the value of `doorkeeper_signing_key` to RSA private key.

Allows using openstreetmap as an identity provider.

Adds `openid` scope to OAuth2 authorizations, required to login to OSM.

Currently, the only claims returned are:
 - "openid" scope: "sub" and "preferred_username"
 - "read_email" scope: "email"
This commit is contained in:
Milan Cvetkovic 2023-08-30 12:36:55 +00:00 committed by Tom Hughes
parent e996ee5dbc
commit 64bcf7652b
8 changed files with 31 additions and 54 deletions

View file

@ -1,11 +1,12 @@
OpenStreetMap::Application.routes.draw do
use_doorkeeper_openid_connect
use_doorkeeper :scope => "oauth2" do
controllers :authorizations => "oauth2_authorizations",
:applications => "oauth2_applications",
:authorized_applications => "oauth2_authorized_applications"
end
use_doorkeeper_openid_connect :scope => "oauth2" if Settings.key?(:doorkeeper_signing_key)
# API
namespace :api do
get "capabilities" => "capabilities#show" # Deprecated, remove when 0.6 support is removed