Попытка подключить приложение Spring-Boot к Keycloak с помощью SSL

Я работаю над сценарием Katacoda, в котором я подключаю приложение с весенней загрузкой к KeyCloak. Я хотел сделать его минимальным, поэтому вот мои конфигурации:

pom.xml

    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-starter</artifactId>
        <version>10.0.1</version>
    </dependency>
    </dependencies>

Свойства приложения

#Keycloak Properties
#Katcoda Url
keycloak.auth-server-url=https://2886795315-8444-ollie02.environments.katacoda.com/auth
keycloak.realm=todoRealm
#Client
keycloak.resource=openid-login-client
keycloak.public-client=true

Моя проблема в том, что когда я попадаю в конечную точку своего приложения, она правильно перенаправляется на страницу входа. Но проблема в том, чтоredirect_uri он проходит не по SSL, поэтому http://2886795315-8080-ollie02.environments.katacoda.com/v1/todos что вызывает проблему с COR.

Я добавил это свойство, чтобы попытаться принудительно использовать https:

keycloak.ssl-required=all

Но тогда это меняет redirect_uri param он передается в логин keycloak, чтобы https://2886795315-8080-ollie02.environments.katacoda.com:0/v1/todos

Кто-нибудь знает, почему путь URL-адреса :0 добавлен на передний план?

1 ответ

Это может быть дубликат этого ответа.

Это часть настроек безопасности Keycloak по умолчанию, которые продвигают использование нестандартного порта для SSL-соединения. Это можно установить в среде Keycloak с помощьюKEYCLOAK_HTTPS_PORT=4443 например.

Затем для приложения (клиента) может потребоваться это (например, когда ssl-required=all установлен), приложению необходимо знать этот порт (т.е. независимо от KEYCLOAK_HTTPS_PORTустановлен как). Чтобы явно установить этот порт в приложении, чтобы он не по умолчанию:0 использовать keycloak.confidential-port=4443 свойство.

Поскольку вы используете nginx, это, конечно, может быть обработано директивой proxy pass, и в этом случае просто установить keycloak.confidential-port свойство к стандарту 443 для SSL.

Чтобы не усложнять ситуацию, вы, конечно, можете использовать отдельную директиву proxy-pass для нестандартного порта в NginX, который будет обрабатывать клиентские SSL-соединения с серверной частью Keycloak.

(напомните мне найти ссылки на документацию для этого ответа)... У меня сейчас нет времени.

Другие вопросы по тегам