多租户的Spring安全性

c3frrgcw  于 2023-11-17  发布在  Spring
关注(0)|答案(1)|浏览(142)

我有下面的属性在我的属性文件的认证服务器oauthSpring安全生成jwt令牌。

clientcredential:
  clients:
    - tenant: tenant1
      clientdetails:
        - name : service1
          scope : service1.read
          clientId: tenant1-service1-client
          clientSecret: tenant1-service1-secret
        - name : service2
            scope : service2.read
            clientId: tenant1-service2-client
            clientSecret: tenant1-service2-secret
        - name : service3
            scope : service3.read
            clientId: tenant1-service3-client
            clientSecret: tenant1-service3-secret
        - name : service4
            scope : service4.read
            clientId: tenant1-service4-client
            clientSecret: tenant1-service4-secret
    - tenant: tenant2
      clientdetails:
        - name : service1
            scope : service1.read
            clientId: tenant2-service1-client
            clientSecret: tenant2-service1-secret
        - name : service2
            scope : service2.read
            clientId: tenant2-service2-client
            clientSecret: tenant2-service2-secret
        - name : service3
            scope : service3.read
            clientId: tenant2-service3-client
            clientSecret: tenant2-service3-secret

字符串
我想验证jwt令牌,这样一个租户的令牌就不应该与另一个租户一起使用。我的请求端点为https://domain/api/v1/save/{tenant},其中tennant在每个请求的路径变量中传递。我们没有任何UI或用户配置的配置,它只是一个Sping Boot REST API项目。
我们使用内存客户端注册库来存储客户端的详细信息。

lmyy7pcs

lmyy7pcs1#

您应该确保将tenant声明放入JWT访问令牌中。当您验证请求时,您可以通过path参数验证tenant声明是否等于tenant
您可以在访问令牌中放置任何声明,然后使用它们进行适当的授权决策。

相关问题