Quarkus-oidc使用Azure-AD进行后端令牌验证

问题描述

我目前正在构建一个供React前端使用的Quarkus后端应用程序。 前端在Azure中注册并具有一个客户端ID。它将针对Azure AD授权并获取一个id令牌。 该令牌将被传递到后端。

我现在的工作是验证此令牌并按用户角色限制资源。 由于我们使用的是Quarkus,因此我研究了Quarkus-OIDC扩展,并认为可以使用它。

我已经在Quarkus-oidc教程中编写了一个简单的资源,例如

@RolesAllowed("user")
@GET
@Path("/user")
@Produces(MediaType.TEXT_PLAIN)
public String testUser() {
    return "Users Login Success";
}

到目前为止,我已经将属性quarkus.oidc.auth-server-url=https://login.microsoftonline.com/common/v2.0quarkus.oidc.client-idquarkus.oidc.credentials.client-secret.value设置为可以针对Azure进行身份验证,我希望足够。

使用quarkus:dev启动Quarkus时,出现以下错误:

io.quarkus.oidc.OIDCException: OIDC server is not available at the 'quarkus.oidc.auth-server-url' URL
...
Caused by: io.vertx.core.impl.NoStackTraceThrowable: issuer validation failed: received [https://login.microsoftonline.com/{tenantid}/v2.0]

我不知道为什么它有{tenantId},因为我在auth-url中指定了common。 如果这是错误的网址,那么正确的网址是什么?

解决方法

已解决。与我们的文档中指定的不同,它不是普通租户

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...