如果我们使用具有属性的范围,则如何在Spring引导中实现安全性



i使用与此处所述的属性范围。您知道如何在Spring Boot应用中实现安全配置以实现仅提供有关范围属性的相应数据。

我认为,根据您的具体要求,可以使用两种方法来完成此结果。但是,首先没有XSUAA的参数范围之类的东西。

  1. 可以将其他属性建模到XSUAA的角色模板中,例如,在 xs-security.json

    中类似的 Country属性
  "attributes": [ 
  { 
    "name" : "Country", 
    "description" : "Country parameter for the Role", 
    "valueType" : "string" 
  }],
  "role-templates": [
  {
    "name": "BusinessPartnerViewer",
    "description": "Role to view business addresses",
      "scope-references" : [
        "$XSAPPNAME.ViewAddresses"
      ],
      "attribute-references": [
        "Country"
      ]
  }

然后,您需要使用cf create-service xsuaa application <serviceinstance> -c xs-security.json在CloudFoundry中重新创建XSUAA实例。注意:先前有其他角色模板定义时,您无法更新绑定。

基于此,该应用程序的订阅者可以在运行时实例化角色,该属性与OAuth范围一起提供属性。

这种方法的缺点是,该应用程序的消费者可能必须根据范围和属性的可能排列来创建许多角色。

  1. 当然,如果第一种方法不够,您总是可以考虑实施自己的方法。在这种情况下,您的应用程序必须根据用户上下文来建模和解决依赖关系,即,您必须创建一个数据库表,该表将用户映射到范围和/或其他属性,然后您在运行时查找基于属性的属性来自JSON Web令牌的信息。

最新更新