在Quarkus中并行使用两个OIDC Auth流

问题描述 投票:0回答:1

我用Quarkus创建了一个Rest-API和一个前端作为自包含系统。前端是静态提供的。

为了进行身份验证,我使用kleycloak服务器,并且与quarkus中的this指南具有几乎相同的配置。

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

使用此配置,我需要对rest-api和前端进行身份验证。这就是我想要的。如果我尝试加载index.html,则会重定向到keycloak并返回。很好用。

问题是,rest-api也会发生相同的情况。我使用“ 302 found”状态代码重定向到keycloak。在这里,我想使用承载令牌进行身份验证,并且没有重定向。 Quarkus为此具有以下配置:

quarkus.oidc.application-type=service

与前端的配置冲突。是否可以同时使用两种方法,一种用于静态文件,另一种用于rest-api?

rest single-page-application openid-connect quarkus
1个回答
0
投票

[如果我没记错的话,您正在寻找多租户的oidc设置(即使您没有设计租户)。可以找到指南和示例on the official quarkus website here。这样,您将具有类似的设置:

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

P.S,您可以用更讨人喜欢的名称替换restapi

© www.soinside.com 2019 - 2024. All rights reserved.