1

私はトラブルKeycloakサーバとCouchbaseの同期ゲートウェイ間のOpenID Connectのフックを持っています。私の設定は次の通りです。SSL終了とリバースプロキシをKeycloakとSync Gatewayに提供しているnginxがあります。Keycloak無効なリダイレクトURI

:私はセットアップは認証コードとそれのためのリダイレクトURLとkeycloakにおける機密クライアントである必要があり

https://sg.domain.com/sync_gateway 

:だから私keycloak認証アドレスは次のようである:

https://auth.domain.com 

そして、私の同期ゲートウェイバケットであります

https://sg.domain.com/sync_gateway/_oidc_callback 

私はCouchbase Lite for .NETでOpenIDConnectAuthenticatorを使用しています。私のアプリはKeycloakログインページにユーザーを取るとき、私は取得しています:

Invalid parameter: redirect_uri 

私のアプリに渡さ渡されるログインURLは次のとおりです。

https://auth.domain.com/auth/realms/realm/protocol/openid-connect/auth?access_type=offline&client_id=couchbase-sync-gateway&prompt=consent&redirect_uri=http%3A%2F%2Fsg.domain.com%2Fsync_gateway%2F_oidc_callback&response_type=code&scope=openid+email&state=

いる私が見ることができますredirect_uriはhttpです。 httpsにする必要があります。

マイシンクゲートウェイの設定は次のとおりです。

{ 
    "log": ["*"], 
    "databases": { 
    "sync_gateway": { 
     "server": "http://cbserver:8091", 
     "bucket": "sync_gateway", 
     "users": { "GUEST": { "disabled": true, "admin_channels": ["*"] } }, 
     "oidc": { 
     "providers": { 
      "keycloakauthcode": { 
      "issuer":"https://auth.domain.com/auth/realms/realm", 
      "client_id":"couchbase-sync-gateway", 
      "validation_key":"myclientid", 
      "register":true 
      } 
     } 
     } 
    } 
    } 
} 

私のnginxの設定は次のとおりです。

events { 
    worker_connections 768; 
    multi_accept on; 
} 
http { 
    proxy_buffer_size 128k; 
    proxy_buffers 4 256k; 
    proxy_busy_buffers_size 256k; 
    large_client_header_buffers 4 32k;   

    upstream auth_backend { 
     server server1:port1; 
    } 
    upstream cb_sync_gateway { 
     server server2:port2; 
    } 
    server { # AUTH 

     listen 443 ssl; 
     server_name auth.domain.com; 

     ssl on; 
     ssl_certificate /local/ssl/domain_com.crt; 
     ssl_certificate_key /local/ssl/domain_com.key; 

     add_header Content-Security-Policy upgrade-insecure-requests; 

     location/{ 
      proxy_http_version 1.1; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Proto https; 

      proxy_pass  http://auth_backend; 
     } 
    } 

    server { 
     listen 443 ssl; 
     server_name sg.domain.com; 

     ssl on; 
     ssl_certificate /local/ssl/domain_com.crt; 
     ssl_certificate_key /local/ssl/domain_com.key; 

     add_header Content-Security-Policy upgrade-insecure-requests; 

     location/{ 
      proxy_http_version 1.1; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Proto https; 

      proxy_pass  http://cb_sync_gateway; 
     } 
    } 
} 

Keycloakスタンドアロン-ha.xmlプロキシ設定などごとに持っている:私はありませんhttps://github.com/ak1394/keycloak-dockerfiles

これがnginxの設定かkeycloakの設定と関係しているかどうか確かめてください。

アイデア?

答えて

1

私はこの問題を解決することができました。おそらく最善の方法ではないが、今のところ働いている。私はまた、nginxの設定ファイルに設定するために必要な:

proxy_redirect http:// https:// 

とKeycloakで、次の有効なリダイレクトURLを置く:

http://sg.domain.com/sync_gateway/_oidc_callback 

、誰もが安全でない有効なリダイレクトをせずにこれを行う方法を見つけた場合、私は考え私はこれが推奨されていないことを知っているので、非常に熱心である。

EDIT:

私はCouchbase Forumsに掲載している、それはCouchbaseのモバイル(Coucbaseライトまたはシンクゲートウェイ)のバグかもしれないように思えます。彼らは、.NET用のCouchbase Liteでticketを提出しました。

関連する問題