auth0 / auth0_drupal
企业单点登录 + 社交登录 + 用户/密码。适用于所有 Drupal 实例。由 Auth0 提供。
Requires
- adoy/oauth2: dev-master
- auth0/auth0-php: 0.6.*
- firebase/php-jwt: dev-master
This package is auto-updated.
Last update: 2022-03-28 02:01:58 UTC
README
注意
Auth0 社区正在弃用此库,该库将在 2022 年 3 月 8 日 生命周期结束日期后不再在 Github 上提供。请在生命周期结束日期前制定计划寻找合适的替代方案或从任何活跃项目中删除此库。如果您有任何疑问或担忧,请在 Auth0 社区主题 中联系支持。
替代方案
另一个可能的解决方案是 Drupal,因为它现在可以通过 Drupal 模块支持 OIDC。如果您目前在项目中使用 auth0-drupal,这将可能改变用户体验,但它确实提供了另一个探索选项。了解更多信息请访问 Drupal OpenID Connect / OAuth 客户端。
Drupal 8 详细信息
此插件用 Auth0 提供的登录表单替换了标准的 Drupal 8 登录表单,它支持社交、无密码和企业连接登录,以及额外的安全、多因素认证和用户统计。
仅支持 Drupal 7 的 v1。如果您想为代码库做出贡献,请将您的 PR 推送到 1.x.x
分支。请注意,此分支不定期维护。
目录
安装
在开始之前,请确保管理员用户有一个您拥有的有效电子邮件地址。此模块将站点身份验证委托给 Auth0。这意味着您不会使用 Drupal 数据库来验证用户(用户记录仍将创建)并且默认登录框将不会显示。
以下详细说明了两种安装此模块的方式。 请注意:Auth0 登录表单将在模块配置后才会出现(请参阅下面的入门)。
从 Drupal.org 手动安装
- 前往 DO Auth0 模块页面,滚动到“下载”,并复制最新版本的 tar.gz 文件的 URL。
- 转到管理 > 扩展并单击“安装新模块”。
- 将复制的 URL 粘贴到“从 URL 安装”字段中,然后单击“安装”。
- 回到模块页面,向下滚动到 Auth0 模块,点击复选框,然后单击“安装”。
从Github安装
从Github安装需要Composer(《安装说明》)。
- 导航到您网站的模块目录,并克隆此仓库
$ cd PATH/TO/DRUPAL/ROOT/modules
$ git clone https://github.com/auth0/auth0-drupal.git auth0
- 移动到新创建的目录,并安装Composer依赖项
$ cd auth0
$ composer install
- 在“管理 > 扩展”中,滚动到Auth0模块,点击复选框,然后点击安装
使用Composer从Drupal.org安装
- 从您的Drupal项目根目录运行
$ composer require drupal/auth0
- 在“管理 > 扩展”中,滚动到Auth0模块,点击复选框,然后点击安装
入门
1. 配置您的Auth0应用程序
安装模块后,您需要在Auth0仪表板中为您的Drupal站点创建一个应用程序。
- 如果您还没有,请在这里免费注册Auth0账户。
- 转到“应用程序”,然后在右上角点击创建应用程序。
- 为您的应用程序命名,点击常规Web应用程序,然后点击创建。
- 点击顶部的设置选项卡。
- 在“允许回调URL”字段中,添加您的网站主页,路径为
/auth0/callback
,例如
https://yourdomain.com/auth0/callback
- 在“允许Web来源”、“允许注销URL”和“允许来源(CORS)”字段中,添加您的Drupal站点的域名,包括协议但不包括尾部斜杠,例如
https://yourdomain.com
- 滚动并点击保存更改。
保留此选项卡打开,以复制下一节所需的配置。
2. 配置Auth0模块
- 转到“管理 > 配置 > 系统 > Auth0”
- 在“设置”选项卡下,从Auth0仪表板中的应用程序设置屏幕复制并粘贴3个必填字段的值。您还可以在
settings.php
文件中保存占位符值,并使用Drupal内置的配置覆盖系统(在这里解释)进行覆盖
$config['auth0.settings']['auth0_client_id'] = getenv('AUTH0_CLIENT_ID'); $config['auth0.settings']['auth0_client_secret'] = getenv('AUTH0_CLIENT_SECRET'); $config['auth0.settings']['auth0_domain'] = getenv('AUTH0_DOMAIN');
- 点击保存,您的Auth0登录表单现在应该显示在登录页面上。要测试此功能,请在新浏览器(或私密/隐身窗口)中打开,并导航到您的登录页面
/user/login
。
3. 高级配置
在相同的设置屏幕下的“高级”选项卡中,您可以配置以下内容
- 表单标题:更改Auth0登录表单的标题。
- 允许用户注册:在Auth0登录表单中包含“注册”选项卡。
- 发送刷新令牌:在登录时,在从Auth0返回的配置文件数据中包含刷新令牌。
- 重定向登录以启用SSO:使用通用登录页面启用SSO。如果启用此功能,您需要将您的Drupal网站主页添加到“租户设置 > 高级 > “允许注销URL”字段中。
- 小部件CDN:Auth0 CDN中Lock JS文件的URL。通常,除非升级到新版本或Auth0支持人员指示,否则不应更改此设置。
- 需要验证的电子邮件:启用此设置,要求Auth0用户登录前必须验证电子邮件。请注意,这将阻止没有电子邮件地址的用户(例如Twitter用户)登录。
- 将Auth0登录与Drupal用户关联:启用此设置将使用电子邮件地址将成功的登录匹配到Drupal用户。
- 将Auth0声明映射到Drupal用户名:这将使用指定的ID令牌声明来设置Drupal用户名。
- 登录小部件CSS:在登录页面上输出的额外CSS。
- 锁定额外设置:更改Auth0登录表单的行为和外观的额外设置。更多信息及示例请见此处。
- 自动注册Auth0用户:这将从传入的Auth0用户中注册新的Drupal用户,即使您的网站上的注册已关闭。这使得在Auth0中创建用户但不在Drupal中,当用户登录时创建一个新的Drupal用户成为可能。
- 声明到配置文件字段的映射:按照此字段下面的说明保存传入的Auth0 ID令牌声明作为Drupal配置文件字段。
- 声明角色映射:映射Auth0到Drupal角色的ID令牌声明名称。
- 声明角色值映射:按照此字段下面的说明根据传入的Auth0数据设置Drupal用户角色。
贡献
我们感谢您对模块的反馈和贡献!在开始之前,请参阅以下内容
支持 + 反馈
请使用以下方法之一提出问题或请求支持
- 使用GitHub上的问题请求代码级别的支持
- 使用社区进行使用、提问和特定案例
- 您还可以使用DO支持论坛
漏洞报告
请勿在公共GitHub问题跟踪器上报告安全漏洞。有关披露安全问题的负责任披露计划详细说明了程序。
什么是Auth0?
Auth0可以帮助您轻松
- 使用多个身份提供者实现身份验证,包括社交(例如,Google、Facebook、Microsoft、LinkedIn、GitHub、Twitter等)或企业(例如,Windows Azure AD、Google Apps、Active Directory、ADFS、SAML等)
- 使用用户名/密码数据库、无密码或多因素身份验证登录用户
- 将多个用户帐户关联在一起
- 生成签名JSON Web Tokens以授权您的API调用并安全地流转用户身份
- 访问详细说明用户如何、何时以及在哪里登录的人口统计和数据分析
- 使用可定制的JavaScript规则从其他数据源丰富用户配置文件
许可
Auth0的Drupal模块许可协议为GPLv2 - LICENSE