structureit/craft-cognito-auth

此包已被放弃,不再维护。未建议替代包。

使用JWT启用Craft通过Amazon Cognito进行身份验证

此包的规范存储库似乎已消失,因此包已被冻结。

安装次数: 1,271

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 17

类型:craft-plugin

此包尚未发布版本,且信息很少。


README

使用JSON Web Tokens (JWT)通过Amazon Cognito启用Craft身份验证。

Logo

需求

此插件需要Craft CMS 3.3或更高版本。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

    cd /path/to/project

  2. 然后告诉Composer加载插件

    composer require structureit/craft-cognito-auth

  3. 在控制面板中,转到设置→插件,然后点击Craft Cognito Auth的“安装”按钮。

Craft Cognito Auth概述

官方JWT网站

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

此插件启用使用Amazon Cognito用户池登录Craft。使用Cognito JWT "隐式授权"(type=token)请求。

配置Craft Cognito Auth

安装后,导航到插件的设置页面并输入所需设置以激活插件

设置 描述
自动创建用户 可选。激活后,当提供可验证的JWT时,将自动创建公共用户。
禁用公共注册时自动创建用户 可选。激活后,即使禁用公共注册,也会自动创建用户。
默认用户组 可选。设置要添加新创建用户的组。
启用CP登录按钮 可选。启用后,将在CP登录屏幕中添加一个按钮以使用Cognito登录。
自定义登录按钮文本 可选。用于覆盖登录Cognito按钮上的默认文本。
自定义登录按钮URL 可选。用于覆盖用于登录按钮的托管UI生成的URL。
重定向URL 可选。登录后用于重定向用户,默认为当前站点的基URL。
AWS设置
用户池区域 必需。用户池所在地的AWS区域。
应用域 可选。用于生成登录Cognito按钮的登录链接。
应用客户端ID 必需。用于生成登录链接,并验证JWT是否为正确的池创建。
用户池ID 必需。用于获取Cognito用于签署JWT的密钥。

Cognito用户池还需要配置以允许回调URL到您的站点。这是由插件生成的,并在插件设置页面的最后“设置”中显示。回调URL是“控制面板URL(通常是/admin)”/cognitologin

配置用户池

  • 转到 AWS Cognito(<region>.console.aws.amazon.com/cognito/users)并选择您的用户池
  • 转到 应用集成 / 应用客户端设置
  • 登录和注销 URLs 下的 回调 URL(s) 中添加回调 URL
  • 在此过程中,确保在 OAuth 2.0 | 允许的 OAuth 流 下启用 隐式授权
  • 在底部点击 保存更改

使用 Craft Cognito Auth

插件将尝试验证控制面板 URL(通常是 /admin)的 /cognitologin 的传入请求中存在的 JWT。

插件将从 Cognito 获取 Json Web Token Set(JWKS),并使用它通过 PHP 的 lcobucci/jwt 包尝试验证令牌。该包遵循 IANA JWT 规范

如果提供的令牌可以验证并且可以与具有与提供的 email 键匹配的电子邮件地址或与提供的 cognito:username 键匹配的用户名的用户账户匹配,则用户将被认证,请求将被允许继续。

如果令牌可验证,但不存在匹配的用户账户,但

  • 已启用 自动创建用户 设置并且已启用公共注册
  • 或已启用 自动创建用户 设置,公共注册已禁用,但已启用 公共注册禁用时自动创建用户 设置

在 Craft 设置中,将现场创建新的用户账户,然后新用户登录。

Craft Cognito Auth 路线图

功能

插件提供以下功能:

  • 验证传入请求的 JWT 是否存在于特定路由(CP URL 下的 cognitologin)。
  • 注入 JavaScript 从搜索参数(#id_token=)获取 Cognito 提供的 JWT 并将其放入查询参数(?jwt=)中。
  • 检查签名是否与配置的用户池的 Amazon 证书匹配。
  • 将验证的 JWT 匹配到 Craft CMS 中的用户账户并以该用户登录。
  • 如果找不到现有账户,则可选地创建新账户。
  • 可选地将登录 Cognito 按钮添加到 CP 登录屏幕。
  • logout-redirect 路由添加到控制面板以将请求重定向回请求的页面。
  • 允许使用环境变量进行文本输入设置。

原始 JWT 认证由 Mike Pierce 编写,并由 Edenspiekermann 实现。由 Matthew Carter 转换为使用 Cognito JWTs 和验证流程。由 StructureIT 开发者 维护。