newridetech / laroak
Requires
- php: ^7.1.3
- alsofronie/eloquent-uuid: ^1.0
- doctrine/dbal: ^2.7
- erusev/parsedown: ^1.7
- felixkiss/uniquewith-validator: ^3.1
- fideloper/proxy: ^4.0
- laravel/framework: 5.7.*
- laravel/tinker: ^1.0
- laravelcollective/html: ^5.6
- leafo/scssphp: ^0.7.6
- league/oauth2-client: ^2.3
- league/uri: ^5.3
- newridetech/laravel-scss: ^1.2
- newridetech/php-classnames: ^1.2
- pviojo/oauth2-keycloak: ^2.0
- watson/validating: ^3.1
- webmozart/assert: ^1.3
- webmozart/glob: ^4.1
- wikimedia/composer-merge-plugin: ^1.4
Requires (Dev)
- filp/whoops: ^2.0
- fzaninotto/faker: ^1.4
- mockery/mockery: ^1.0
- nunomaduro/collision: ^2.0
- phpunit/phpunit: ^7.0
This package is not auto-updated.
Last update: 2019-02-20 19:24:31 UTC
README
在法规不断增多、隐私意识和安全限制日益严格的今天,我们认为引入新的、负责任的方法来处理敏感数据,同时开发定制化解决方案是个好时机。我们的目标是实现良好的安全和隐私管理实践,以简化应用开发和维护,而不是使其变得更复杂。
Silicon 可以视为 Laravel 和 Keycloak 之间的粘合层。这些技术结合提供了处理应用安全、身份管理和开发便利性的所有必要方面。开发新功能和维护应用都很简单,Silicon 很可能提升您的性能,但它并不针对所有人,尤其是编程初学者。
Silicon 并不重新发明概念,它只是站在巨人的肩膀上。它提供的是关注点的分离和模块化的 Laravel 代码,这些代码被设计为包含安全和身份管理概念。虽然可能需要一些努力(尽管是可能的)才能将 Silicon 集成到现有项目中,但如果您正在考虑创建新的代码库或新的 API/web 应用程序版本,它可能是一个值得考虑的选择。
核心优势
- GDPR 友好(以及可能的其他法规)
- 当正确使用时,它通过将所有内容卸载到 Keycloak 并提供与 Laravel 辅助功能和特性的完全集成来简化用户、角色和身份管理
- 不是重新发明轮子,它使用现有技术,并添加了最小必需的代码,以使它们协同工作并获得更大的好处(我们相信当结合良好的解决方案时,2 + 2 = 5)
注意事项
- 需要高级/中级技能才能正确理解和使用 Silicon,尽管在有指导的情况下,可以将初级程序员引入开发功能
- 无法在不重构的情况下集成到现有的 Laravel 项目中(尽管它可以轻松移除并留下模块化代码)
工作原理
Silicon 提供了几个内置服务,将面向安全的代码包引入 Laravel。概念与 Symfony 绑定系统 类似。在 Symfony 世界中,这些被认为是过时的功能(有很好的理由),但在 Silicon 中,它们扮演着比仅仅关注点分离更重要的角色,因此仍然相关且创新。
每个包(或称为硅谷世界的 extensions
)除了服务提供商外,还提供扩展 Newride\Silicon\bundles\extensions\Extension
的入口类。本质上,包是自动注册的带有内置额外硅谷功能的 Laravel 包。扩展是注册 Laravel 策略并提供简单入口以检查用户是否有足够权限使用整个包的地方。用户不会被存储在应用程序数据库中,而是通过使用 Keycloak 的 OAuth 访问令牌来检索。
将不同的角色分配给每个包是良好的实践,以便轻松构建和维护模块化应用程序。例如,如果您的应用程序包含博客和商店,您可以有 shop
和 blog
两个扩展,以及 view-shop
、view-blog
角色分别。扩展入口点应进行一到两次通用检查,以完全切断对扩展的访问。更具体的权限、访问控制列表等应移至 Laravel 的安全策略。
在这样的基本代码组织下,您的应用程序不会存储任何个人数据,并将被划分为具有多层灵活安全检查的模块。