1

https://example.com (SSL を使用) を保護する keycloak アダプターを備えた nodejs Express アプリケーションがあります。

私のキークローク アダプターは次のように構成 されています。両方の URLここに画像の説明を入力 に http Sがあることに注意してください。

現在、問題に直面しています。ユーザーが(keycloak経由で)正常にログインすると、「無効なパラメータ: redirect_uri」というエラー・メッセージが表示されます。

https://example.com (SSL を使用) にアクセスした後に表示されるブラウザー devtools を使用すると、ユーザーはhttps://sso.example.com/auth/realms/myrealm/protocol/openid-connect/auth?client_idにリダイレクトされます=my-client-id&state=22f41ed3-ddc6-4758-970b-d876cf631ded&redirect_uri=http%3A%2F%2Fexample.com%2F%3Fauth_callback%3D1&scope=openid&response_type=コード

そして、上のリンクの要点はredirect_uri=http%3A%2F%2Fexample.com%2F%3Fauth_callback%3D1&scope=openid&response_type=code. redirect_uriにSSL がないことがわかります。http sではなく httpです。

これは、ドメインのルートを保護する方法です。

   const server = express()
   server.set('trust proxy', 'loopback')
   server.use(keycloak.middleware({}))

   const keycloak = new Keycloak({ store: memoryStore }, KEYCLOAK_CONFIG) // KEYCLOAK_CONFIG is the json config below
   (...)
   server.get('/', keycloak.protect('private-user'), (req: Request, res: Response) => {
        // Set the cookie
        res.cookie(ConfigService.CONFIG_COOKIE_KEY, JSON.stringify(ConfigService.CONFIG), { httpOnly: false })
        res.sendFile(path.join(__dirname, 'build', 'index.html'))
        return res
    })

そして、私のキークローク構成は次のとおりです。

{
  realm: 'myrealm',
  'auth-server-url': 'https://sso.example.com/auth/',
  'ssl-required': 'external',
  resource: 'my-client-id',
  'verify-token-audience': false,
  credentials: { secret: 'super-secret-credential' },
  'use-resource-role-mappings': true,
  'confidential-port': 443,
  'bearer-only': false,
  'enable-cors': true,
  'cors-max-age': 1000,
  'enable-basic-auth': false,
  'expose-token': true,
  'disable-trust-manager': false,
  'allow-any-hostname': false,
  'token-minimum-time-to-live': 10,
  'min-time-between-jwks-requests': 10,
  'connection-pool-size': 20,
  'public-key-cache-ttl': 86400
}

redirect_uriは SSL を使用する必要があります。keycloak に、redirect_uri で http s (SSL) を強制的に使用させるにはどうすればよいですか?

http://example.com (非 SSL) を に追加することValid Redirect URIsはできません。

4

0 に答える 0