Как реализовать безопасность при весенней загрузке, если мы используем области с атрибутами

Я использую области с атрибутами, как описано здесь. Знаете ли вы, как реализовать конфигурацию безопасности в приложении с весенней загрузкой, чтобы обеспечить обслуживание только соответствующих данных, относящихся к атрибуту области.

1 ответ

Решение

Я думаю, что есть два подхода, которые вы можете использовать для достижения этого результата, в зависимости от ваших конкретных требований. Однако, во-первых, в 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"
      ]
  }

Затем вам нужно пересоздать свой экземпляр XSUAA в CloudFoundry с cf create-service xsuaa application <serviceinstance> -c xs-security.json, Примечание. Невозможно обновить привязку, если ранее у вас были другие определения шаблонов ролей.

Исходя из этого, подписчик приложения может создавать экземпляры ролей во время выполнения, предоставляя атрибут вместе с областью OAuth.

У этого подхода есть недостаток, заключающийся в том, что потребителю приложения может потребоваться создать множество ролей в зависимости от возможных комбинаций областей и атрибутов.

  1. Конечно, вы всегда можете рассмотреть возможность реализации собственного подхода, если первого подхода недостаточно. В этом случае ваше приложение должно самостоятельно моделировать и разрешать зависимости в зависимости от контекста пользователя, т. Е. Вы должны создать таблицу базы данных, которая отображает пользователей в области и / или дополнительные атрибуты, а затем вы просматриваете во время выполнения свойства на основе информация из веб-токена Json.
Другие вопросы по тегам