heptacom / shopware-platform-admin-open-auth
Shopware 插件,允许 OAuth 提供商提供管理员登录
Requires
- php: >=8.2.0
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-zlib: *
- composer/composer: ^2.7
- doctrine/dbal: ^3.8
- guzzlehttp/guzzle: ^7.5
- guzzlehttp/psr7: ^2.4
- league/oauth2-client: ^2.0
- league/oauth2-server: ^8.5
- mrjoops/oauth2-jira: ^0.2.4
- mtdowling/jmespath.php: ^2.7
- nyholm/psr7: ^1.5
- onelogin/php-saml: ^4.1.0
- psr/cache: ^3.0
- psr/http-client: ^1.0
- psr/http-message: ^2.0
- psr/log: ^3
- shopware/core: ^6.6.0
- web-token/jwt-core: ^3.2
- web-token/jwt-signature: ^3.2
- web-token/jwt-signature-algorithm-ecdsa: ^3.2
- web-token/jwt-signature-algorithm-rsa: ^3.2
Requires (Dev)
- shopware/administration: ~6.6.0
- dev-master
- dev-main
- 7.0.1-rc.1
- 7.0.0
- 7.0.0-rc1
- 6.0.3
- 6.0.2
- 6.0.2-rc.1
- 6.0.1
- 6.0.1-rc.1
- 6.0.0
- 6.0.0-rc.1
- 6.0.0-beta.3
- 6.0.0-beta.2
- 6.0.0-beta.1
- 5.0.0
- 5.0.0-beta.5
- 5.0.0-beta.4
- 5.0.0-beta.3
- 5.0.0-beta.2
- 5.0.0-beta.1
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.2
- 4.0.1
- 4.0.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.0
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-09-09 06:52:57 UTC
README
这是 HEPTACOM 为中型和大企业提供解决方案的一部分
Shopware 插件,允许在管理中实现外部登录提供商
此 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 是否匹配您的规则。
建议您的查询结果为布尔值。如果结果为其他类型,则将条件按以下方式验证
变更
查看此项目附加的变更日志文件。
贡献
感谢您考虑为此软件包做出贡献!在创建拉取请求后,请务必签署贡献者许可协议。
许可证
版权所有 2020 HEPTACOM GmbH
根据Apache许可证第2版(“许可证”)授权;除非遵守许可证,否则不得使用此项目。您可以在https://apache.ac.cn/licenses/LICENSE-2.0 获取许可证副本,或查看本地副本。
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的特定语言规定权限和限制,请参阅许可证。
商标和徽标
此项目中所有徽标均受版权保护。其中大部分也是注册商标。因此,只有在满足相应的商标/品牌指南的情况下才能使用。以下可以找到这些指南的存档链接。
Atlassian Jira
cidaas
- https://developers.google.com/identity/branding-guidelines
- https://about.google/brand-resource-center/brand-elements/
- https://about.google/brand-resource-center/rules/
- https://about.google/brand-resource-center/brand-terms/
Keycloak
Microsoft Entra ID
Okta
OneLogin
The One Identity logo is a registered trademark of One Identity, Inc.