Используйте два OID C Auth параллельно в Quarkus - PullRequest
0 голосов
/ 14 апреля 2020

Я создал Rest-API и интерфейс в качестве автономной системы с Quarkus. Внешний интерфейс обслуживается статически.

Для аутентификации я использую сервер kleycloak и имею почти такую ​​же конфигурацию, как в этом руководстве от quarkus.

quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus
quarkus.oidc.client-id=frontend
quarkus.oidc.application-type=web-app
quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated

С этим конфигом мне нужно пройти аутентификацию для остальных API и внешнего интерфейса. Это то, что я хочу. Если я попытаюсь загрузить индекс. html я был перенаправлен на брелок и обратно. Это прекрасно работает.

Проблема в том, что то же самое происходит и с остальными api. Я был перенаправлен на брелок с кодом состояния «302 найдено». Здесь я хотел бы иметь аутентификацию с токеном на предъявителя и без перенаправления. Для этого Quarkus имеет следующую конфигурацию:

quarkus.oidc.application-type=service

Это противоречит конфигурации для внешнего интерфейса. Есть ли способ использовать оба, один для stati c файлов и один для остальных api?

1 Ответ

1 голос
/ 14 апреля 2020

Если я не ошибаюсь, вы ищете мультитенантную настройку oid c (даже если вы не проектируете арендаторов). Руководство и пример можно найти на официальном сайте Quarkus здесь . Таким образом, у вас будет похожая настройка:

quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus
quarkus.oidc.client-id=frontend
quarkus.oidc.application-type=web-app
quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated

quarkus.oidc.restapi.auth-server-url=http://localhost:8180/auth/your/path
quarkus.oidc.restapi.client-id=backend
quarkus.oidc.restapi.application-type=service

PS вы можете заменить restapi на более симпатичное имя.

...