Rails Devise Omniauth omniauth_openid_connect проблема;Всегда получаю `Не найдено.Аутентификация passthru` - PullRequest
0 голосов
/ 11 апреля 2019

извините, если мне не хватает чего-то очень простого, но я думаю, что мне нужна помощь в настройке omniauth_openid_connect gem (https://github.com/m0n9oose/omniauth_openid_connect/) с устройством devise в моем приложении; я всегда получаю Not found. Authentication passthru. Error;

URL-адрес, который создается после нажатия кнопки «Войти через OpenIdConnect», выглядит следующим образом: https://myapp.com/users/auth/openid_connect

Моя конфигурация выглядит следующим образом в config/initializers/devise.rb:

config.omniauth :openid_connect, 
{ 
    name: :openid_connect,
    scope: [:openid],
    response_type: :code,
    client_options:
    {
    port: 443,
    scheme: "https",
    host: "staging-oauth.provider.com",
    issuer: "https://staging-oauth.provider.com",
    authorization_endpoint: "/oauth2/auth", 
    token_endpoint: "/oauth2/token", 
    identifier: 'CLIENT_ID', 
    secret: 'CLIENT_SECRET', 
    redirect_uri: "https://myapp.com/users/auth/openid_connect/callback", 
    }, 
    }

Я знаю, что яя добавил в него дополнительные параметры, но это потому, что я не уверен, что именно требуется; я также не вижу никаких журналов на сервере, так что это означает, что я не получаю правильную конечную точку или что-то еще

У меня естьдоступны следующие URL-адреса от поставщика

конечная точка эмитента (https://staging -oauth.provider.com )

конечная точка авторизации (https://staging -oauth.provider.com / oauth2 / auth )

конечная точка токена (https://staging -oauth.provider.com / oauth2 / token )

также у меня есть идентификатор клиентаи секрет

Любая помощь в этом отношении будет принята с благодарностью !!

1 Ответ

0 голосов
/ 16 апреля 2019

Правильный конфиг:

config.omniauth :openid_connect, 
{ 
    name: :openid_connect,
    scope: [:openid],
    issuer: "https://staging-oauth.provider.com/"
    response_type: :code,
    discovery: :true,
    client_options:
    {
    port: 443,
    scheme: "https",
    host: "staging-oauth.provider.com",
    authorization_endpoint: "/oauth2/auth", 
    token_endpoint: "/oauth2/token", 
    identifier: 'CLIENT_ID', 
    secret: 'CLIENT_SECRET', 
    redirect_uri: "https://myapp.com/users/auth/openid_connect/callback", 
    }, 
  }
...