Как реализовать безопасность при весенней загрузке, если мы используем области с атрибутами
Я использую области с атрибутами, как описано здесь. Знаете ли вы, как реализовать конфигурацию безопасности в приложении с весенней загрузкой, чтобы обеспечить обслуживание только соответствующих данных, относящихся к атрибуту области.
1 ответ
Я думаю, что есть два подхода, которые вы можете использовать для достижения этого результата, в зависимости от ваших конкретных требований. Однако, во-первых, в XSUAA нет такой вещи, как параметризованная область видимости.
- Можно моделировать дополнительные атрибуты в шаблонах ролей 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.
У этого подхода есть недостаток, заключающийся в том, что потребителю приложения может потребоваться создать множество ролей в зависимости от возможных комбинаций областей и атрибутов.
- Конечно, вы всегда можете рассмотреть возможность реализации собственного подхода, если первого подхода недостаточно. В этом случае ваше приложение должно самостоятельно моделировать и разрешать зависимости в зависимости от контекста пользователя, т. Е. Вы должны создать таблицу базы данных, которая отображает пользователей в области и / или дополнительные атрибуты, а затем вы просматриваете во время выполнения свойства на основе информация из веб-токена Json.