heptacom/shopware-platform-admin-open-auth

Shopware 插件,允许 OAuth 提供商提供管理员登录


README

这是 HEPTACOM 为中型和大企业提供解决方案的一部分

Shopware 插件,允许在管理中实现外部登录提供商

Packagist Version PHP from Packagist Software License GitHub code size in bytes GitHub issues GitHub forks GitHub stars GitHub watchers Packagist

GitHub contributors GitHub commit activity

此 Shopware 6 插件允许将 "登录" 功能添加到 Shopware 管理登录页面和密码确认对话框。

功能

  • 使用外部身份提供者 (IDP) 登录 Shopware 6 管理
  • 已预配置各种提供商 - 微软、谷歌、Okta、Keycloak、...
  • 支持支持 OpenID Connect 的第三方 IDP
    • 使用提供商的元数据文档(.well-known/openid-configuration)轻松设置
  • 支持支持 SAML2 的第三方 IDP
    • 使用提供商的元数据 xml 轻松设置
  • 自动将用户提升为管理员
  • 根据规则设置角色和权限

安全

Shopware 管理登录是关键部分。该部分的漏洞允许攻击者访问整个商店。

因此,我们在合并拉取请求之前对插件进行严格的潜在风险检查。

此外,我们的 OpenId Connect 实现也会在可能的情况下检查 JWT 令牌的签名。当使用预配置的 OpenID Connect 提供商或提供 OIDC 元数据文档时,JWKS 密钥将自动从 IDP 获取。

支持的提供商

我们支持多种身份提供者。如果你的身份提供者未在以下列出但提供 OpenID Connect 支持,你可以使用 OpenID Connect 提供商手动配置它。在其他情况下,请随时创建拉取请求。

⚠️ 使用 授权请求规则 支持

SAML2 - 技术要求

如果您想使用 SAML2 提供商,您的 IdP 必须满足以下要求

  • 在 SAML 响应中包含 AuthnRequest
  • 对返回的断言进行签名
  • 支持断言消费者服务 (ACS) 的 HTTP-POST 绑定
  • 将用户的电子邮件地址作为属性返回(所有其他属性都是可选的)

OpenID Connect - 认证请求规则

当使用基于 OpenID Connect 的提供商时,您可以将依赖于经过身份验证的 GET 请求(使用用户的访问令牌执行)的角色分配。这样,您可以从 IDP 获取有关您特定情况的相关任何进一步信息。对于某些提供商,已预设检索用户组的选项。

如果您想创建更复杂的规则,您可以在规则构建器中构建自己的查询。查询将指定端点返回的 JSON 作为输入。

认证请求

您的指定端点将按以下方式调用

GET https://my-company.idp.com/api/groups
Authorization: Bearer <access_token>
Accept: application/json

请求必须加密(HTTPS),并在 5 秒后超时。如果发生超时或非成功响应代码,则将条件评估为 false

如果您有多个依赖于相同端点的条件,则请求只会执行一次。响应将在规则评估期间缓存在内存中。

处理响应

然后,您可以使用 JMESPath 查询验证输入 JSON 是否匹配您的规则。

建议您的查询结果为布尔值。如果结果为其他类型,则将条件按以下方式验证

变更

查看此项目附加的变更日志文件。

贡献

感谢您考虑为此软件包做出贡献!在创建拉取请求后,请务必签署贡献者许可协议CLA assistant

许可证

版权所有 2020 HEPTACOM GmbH

根据Apache许可证第2版(“许可证”)授权;除非遵守许可证,否则不得使用此项目。您可以在https://apache.ac.cn/licenses/LICENSE-2.0 获取许可证副本,或查看本地副本

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的特定语言规定权限和限制,请参阅许可证。

商标和徽标

此项目中所有徽标均受版权保护。其中大部分也是注册商标。因此,只有在满足相应的商标/品牌指南的情况下才能使用。以下可以找到这些指南的存档链接。

Atlassian Jira

cidaas

Google

Keycloak

Microsoft Entra ID

Okta

OneLogin

The One Identity logo is a registered trademark of One Identity, Inc.

OpenID Connect