springboot oauth2客户端azure活动目录b2c颁发者URI问题

0md85ypi  于 2023-02-04  发布在  Spring
关注(0)|答案(1)|浏览(123)

我用oauth2客户端设置了spring boot,下面是我的属性:

spring:
  security:
    oauth2:
      client:
        registration:
          azuread:
            authorization-grant-type: authorization_code
            client-id: 'client id'
            client-secret: 'secret'
            provider: azuread
            scope: openid
            client-name: demo
            user-flows:
                sign-up-or-sign-in: <policy name>
        provider:
          azuread:
            issuer-uri: https://{clientId}.b2clogin.com/{clientId}.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration

当Spring启动时,它抱怨:"配置元数据中提供的颁发者与请求的颁发者不匹配"我检查了实现,发现azure b2c颁发者URI中没有策略或用户流,但我们必须在spring配置中将策略名称设置为路径变量,并且在spring rest调用https://{clientId} .b2clogin.com/{clientId}. onmicrosoft.com//v2.0/.well-known/openid-configuration后,spring将检查响应,以将其与auzre响应进行比较,其中它们不相同
应为:https://{客户端ID}. b2clogin.com/{客户端ID}.在Microsoft.com//v2.0/上
结果:
https://{客户端ID} .b2clogin.com/{客户端ID}.在微软网站上
我尝试了spring boot oauth2引用检查azure b2c AD文档和spring示例,但是我不想使用spring boot azure AD b2c启动器,只使用oauth2客户端

jk9hmnmh

jk9hmnmh1#

出现的错误是由于元数据不正确。元数据应具有tenantId而不是clientId。
它应该是https://{tenantId}.b2clogin.com/{tenantId}.onmicrosoft.com/{策略名称}/v2.0/.知名/openid-configuration,其中tenantId是你的Azure Active Directory租户的名称。

相关问题