2015-01-20 5 views
0

Мы работаем над приложением, в котором мы будем создавать и хранить политики XACML на сервере WSO2 для авторизации.Кэширование уровня приложения XACML Сведения о авторизации от WSO2 IDP

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

Один из способов, с которым мы можем иметь дело, заключается в том, когда пользователь пытается войти в систему, в то время получить все данные от IDP, чтобы мы могли кэшировать его на уровне приложения, и нам не нужно каждый раз совершать поездки в wso2 idp пользователь выполняет любое действие. Это может привести к медленному входу в систему, но оттуда другие приложения будут быстрыми.

Мы просто хотели подтвердить, что это правильный подход? Есть ли какие-либо проблемы с этим дизайном или есть ли лучший способ использования?

ответ

1

Я думаю, что это не правильный подход, особенно когда речь идет об управлении доступом на основе атрибутов (ABAC) и когда атрибуты требуют частое изменение.

Кроме того, когда вы проводите оценку политики, лучше всего использовать PIP-атрибуты вместо приложения, отправляющего все атрибуты, и, кроме того, вы можете использовать кеширование на стороне WSO2 IS также для решения или атрибутов политики XACML.

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

Я не рекомендовал бы кэширование на стороне приложения из-за следующих причин:

  1. Вы должны сделать круглую поездку для оценки политики, даже если вы кэшировать атрибуты локально в приложении.

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

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

  4. Кэширование может выполняться централизованно на сервере WSO2 IS, вместо этого применяя кэш на каждом уровне приложения.

P.S. - Это мои личные взгляды и мнения, и это может быть не идеально или лучше всего подходит в соответствии с различными требованиями и потребностями бизнеса.

+0

Hi Yusuf! Большое спасибо за ответ! Я хотел бы узнать больше о вашей реализации, чтобы мы могли лучше использовать технологии open source. Можете ли вы поделиться своей электронной почтой или связаться, чтобы мы могли поговорить. - Еще раз спасибо за ответ. – Budhh

+0

Привет, Будда, я достигнут на [email protected] –

+0

Я нашел кэширование WSO2 IS для XACML довольно раздражающим. Если я включу кеширование с тайм-аутом в 60 секунд, это никогда не приведет к недействительности начала оценки политики кэширования и XACML, как ненормально, например правила, которые должны фактически оценивать разрешение, оценивается как Deny или somtimes logs, просто говорит, что «ERROR {org.wso2.balana .finder.AttributeFinder} - Не удалось разрешить любые значения для http://abcd.com/my-customid – swapy