我们正在开发应用程序,我们将在WSO2服务器中创建和存储XACML策略以进行授权。
我们正在寻找在用户尝试访问应用程序中的任何内容时授权用户的最佳方法。现在我们不确定这种方法将会产生多少性能问题?
我们可以解决这个问题的一种方法是当用户尝试登录时,从IDP获取所有详细信息,以便我们可以在应用程序级别缓存它,而且每次用户都不必访问wso2 idp正在执行任何行动。它可能导致登录速度慢,但从那里开始其他应用程序的经验会很快。
我们只想确认这是正确的方法吗?这个设计有什么问题,还是有更好的方法可以使用?
答案 0 :(得分:1)
我认为这不是正确的方法,特别是当我们谈论基于属性的访问控制(ABAC)以及属性需要经常更改时。
此外,当您进行策略评估时,最好让PIP获取所需属性而不是应用程序发送所有属性,此外,您还可以使用WSO2 IS端的缓存来进行XACML策略决策或属性。
除了更好的性能,您可以将PEP实现为基于节俭的。我们做了相同的实现,并为最常用的应用程序之一进行了成功的负载测试。
由于以下原因,我不建议在应用程序端进行缓存:
即使您在应用程序中本地缓存属性,也必须进行政策评估的往返。
如果将来其他应用程序使用相同的策略,应用程序内部缓存属性将无法实现目的。
建议允许PIP在WSO2端获取所需的属性,因为它可以简化新的应用程序集成,您无需担心为所有新的应用程序集成获取属性。
缓存可以在WSO2 IS服务器上集中完成,而不是在每个应用程序级别应用缓存。
P.S。 - 这些是我个人的观点和意见,根据不同的要求和业务需求可能不完美或最合适。