本文翻译自https://blog.speedle.io/?p=749
每当一个新项目发布,我们总会问市场上已经有了XXX,YYY,ZZZ产品,为什么你们还要推出新的东西呢?我想通过如下几点来回答这个问题:
1. SPDL授权策略定义语言,SPDL是Security Policy Definition Language的缩写,你也可以理解为Speedle Policy Definition Language的缩写(这样就是一个像GNU一样的递归定义了)。它是一种类自然语言的声明式策略定义语言。例如“Grant User William Borrow Book; Grant User William Role Admin;”。 你不需要解释就能理解这个策略的意思,对吧?市面上大部分其他语言则和SPDL不一样,他们基于XML、JSON、私有的格式,甚至某种编程语言。使用者必须经过学习才能掌握。如果我们只是定义几条或者几十条策略,还可以接受。如果你要定义更多的策略,你就会痛苦万分了。想象一下你要看懂用XML写的10000条授权策略,或者是编写程序来实现10000条授权策略,我们图什么啊!有人会说,不用怕,我们可以做一个很漂亮好用的策略管理系统来解决这个问题。这当然可以,但是为什么不从开始就避免这个问题呢?
2. 处理大量授权策略的能力。首先让我来问一个问题:在一个系统中会有多少条授权策略?大部分人,包括我自己,的直觉是一个系统中的授权策略不会太多。真是这样的吗?我见过一个系统创建了4百万条策略!这当然不是一个很好的设计。但是时至今日权限控制变得越来越重要,系统提供越来越多的功能,系统的用户也越来越多(特别在云计算环境下),这些用户都需要个性化的权限设置,所以授权策略也会越来越多。Speedle可以很轻松地处理百万级的授权策略。
3. REST/gRPC接口。这并不是Speedle的特有功能,通过这些接口用户可以很方便地把Speedle集成到自己的系统中去。比如在接口部分添加enforcement的逻辑。
4. 授权决策的速度。Speedle就像它的名字暗示的那样,速度很快。它可以在数毫秒的时间里作出授权决定。使用Speedle不会拖慢您的应用。
5. 可扩展性。每个Speedle ADS的实例每秒钟大致可以处理30,000到40,000次并发授权请求。如果您觉得这还不够,就再起一个实例,这样它的性能可以翻倍。还不够,再来一个,三个实例的处理能力是单个实例的三倍。Speedle ADS的处理能力随实例个数线性增长。
6. 高级功能。Speedle提供一系列高级功能让您可以扩展它的功能。它可以理解GitHub、Google、Oracle IDCS等身份提供商签发的令牌(token)。它可以处理来自不同身份提供商的身份信息...... 您可以在https://speedle.io上找到详细的说明。
7. 来自Speedle开发人员的支持。我们这个团队在权限管理领域工作了15年了,但是Speedle这个项目是个新项目。坦白地说目前外部用户还不多。我们希望这个项目能帮助更多人,您在我们社区的每个问题都会得到严肃对待和快速回复。