2

我使用具有此处描述的属性的范围。您是否知道如何在 Spring Boot 应用程序中实现安全配置,以实现仅提供有关范围属性的相应数据。

4

1 回答 1

0

我认为根据您的具体要求,您可以使用两种方法来实现此结果。然而,首先没有像 XSUAA 的参数化范围这样的东西。

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

  "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"
      ]
  }

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

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

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

  1. 当然,如果第一种方法还不够,您可以随时考虑实施自己的方法。在这种情况下,您的应用程序必须根据用户上下文自行建模和解决依赖关系,即,您必须创建一个将用户映射到范围和/或其他属性的数据库表,然后在运行时根据来自 Json Web Token 的信息。
于 2018-02-26T20:10:52.120 回答