我目前正在构建一个供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.0
,quarkus.oidc.client-id
和quarkus.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
。
如果这是错误的网址,那么正确的网址是什么?
答案 0 :(得分:-1)
已解决。与我们的文档中指定的不同,它不是普通租户