newridetech/laroak

此包已废弃,不再维护。作者建议使用newridetech/silicon包代替。

Laravel + Keycloak 框架。

安装: 36

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

类型:项目


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 访问令牌来检索。

将不同的角色分配给每个包是良好的实践,以便轻松构建和维护模块化应用程序。例如,如果您的应用程序包含博客和商店,您可以有 shopblog 两个扩展,以及 view-shopview-blog 角色分别。扩展入口点应进行一到两次通用检查,以完全切断对扩展的访问。更具体的权限、访问控制列表等应移至 Laravel 的安全策略

在这样的基本代码组织下,您的应用程序不会存储任何个人数据,并将被划分为具有多层灵活安全检查的模块。