如何确保SimpleSamlauth模块按预期工作? -- users 领域 drupal 相关 的问题

How to make sure simpleSamlAuth module is working as intended?


1
vote

问题

中文

我正在使用SimpleSamlphp_auth模块的Drupal网站。我们希望用户能够登录使用他们的Gmail帐户,只要它们具有预先存在的 drupal帐户来匹配。如果事实证明他们没有,我不希望他们被认证。

as现在,当我尝试通过gmail使用联合登录时,它似乎验证了我,因为它在所有关于访问被拒绝的所有人都没有抱怨。它只是带我回到我们的Drupal网站的主页。

如何检查我是否实际上正在被身份验证,即使电子邮件我正在使用联合登录名 not 没有与它相关联的预先存在的drupal帐户?

还,我使用电子邮件作为用户唯一标识符和他们的电子邮件的SimpleSaml属性。

英文原文

I'm working on a Drupal site which is utilizing the simpleSAMLphp_auth module. We want users to be able to log in using their Gmail accounts, so long as they have an pre-existing Drupal account to match. If it turns out they do not, I don't want them being authenticated.

As of now, when I attempt to use the federated login through Gmail, it seems to authenticate me because it doesn't complain at all about access being denied. It simply takes me back to the homepage of our Drupal website.

How can I check if I am actually being authenticated, even though the email I am testing with the federated login does not have a pre-existing Drupal account associated with it?

Also, I am using the email as the simpleSAML attribute for the users unique identifier and for their email as well.

  

回答列表

0
 
vote
vote
最佳答案
 

模块UI中有挂钩和配置,应该有助于此。这是一个笨拙的8项目的一个例子,我确实如此:

  /**  * Implements hook_simplesamlphp_auth_allow_login().  */ function MYMODULE_simplesamlphp_auth_allow_login(array $attributes) : bool {   // Debugging purposes   Drupal::logger('mymodule')->log('info', 'Attributes contained: @attributes', ['@attributes' => $attributes]);    if (empty($attributes['EMAIL_ATTRIBUTE_IDENTIFIER'])) {     Drupal::logger('mymodule')->log('info', 'Attribute was not present.', ['@attributes' => $attributes]);     return FALSE;   }    // Run a query to see if the user exists by email address in Drupal   $exists = // query users by email address    return $exists; }   

也许是一个简单的方法在您的情况下是hook_form_alter,添加新的提交处理程序并在其他任何事情发生之前都在那里进行电子邮件检查,但上面的挂钩是最终的说法 - 所以如果用户可以进行身份​​验证和登录。

 

There are hooks and config in the module UI that should aid in this. Here is an example from a Drupal 8 project I did that does just this:

/**  * Implements hook_simplesamlphp_auth_allow_login().  */ function MYMODULE_simplesamlphp_auth_allow_login(array $attributes) : bool {   // Debugging purposes   \Drupal::logger('mymodule')->log('info', 'Attributes contained: @attributes', ['@attributes' => $attributes]);    if (empty($attributes['EMAIL_ATTRIBUTE_IDENTIFIER'])) {     \Drupal::logger('mymodule')->log('info', 'Attribute was not present.', ['@attributes' => $attributes]);     return FALSE;   }    // Run a query to see if the user exists by email address in Drupal   $exists = // query users by email address    return $exists; } 

Perhaps a simpler approach in your case would be hook_form_alter, adding a new submit handler and doing the email check there before anything else happens, but the hook above is the final say-so in if a user can authenticate and login or not.

 
 
     
     

相关问题

0  如何从用户配置文件页面重定向到某个页面  ( How do i redirect to a certain page from user profile page ) 
我已经创建了一个钩子,并在登录页面到某个页面登录后重定向用户。 但是当我成功登录后,我转到/用户/登录时会将我重定向到用户配置文件页面(/用户/ 1)。如何在尝试访问/用户/登录页面时将登录用户重定向到我之前创建的某个页面。 ...

3  如何为用户添加模板建议 - View-Mode - Rool.html.twig  ( How to add template suggestion for user view mode role html twig ) 
我使用 hook_theme_suggestions_HOOK_alter : function MYTHEME_theme_suggestions_user_alter(&$suggestions, $vars, $hook) { // Define the view mode. $mode = ...

6  创建一个创建用户帐户的WebForm  ( Create a webform which creates a user account ) 
我想在Drupal 8站点上创建一个有多个明确定义的部分的用户注册表单(可能在单独的页面上)。 我已经探索了在帐户设置中使用标准的Drupal注册表格构建工具进行这一点,但似乎可以使用只使用帐户设置(如果我错了,纠正了我),似乎无法使用这种布局创建表单。< / p> WebForm模块允许我创建一个表单,该表单正...

1  如何在HTML中发送与用户帐户相关的电子邮件?  ( How to send the emails related to the user account in html ) 
我想向HTML版本中发送与用户帐户相关的电子邮件: 忘记密码 新帐户 帐户已取消 ... 如果我制作了我的HTML代码的复制粘贴,它就不起作用。 composer global update0 如何将与HTML中的用户帐户相关的电子邮件? ...

-1  为什么购物车显示登录表格?  ( Why does the shopping cart display the login form ) 
当我没有登录并单击购物车徽标时,将显示使用登录表单的以下页面: /cart 1)我想要显示购物车的内容。 2)当我单击"结帐" 按钮时,我要显示登录表单。 如何做到这一点? 为什么购物车显示登录表单? ...

0  为特定内容类型进行自定义“拒绝”(403)页面[已关闭]  ( Customize access denied 403 page for specific content type ) 
关闭。这个问题是基于意见的。它目前不接受答案。 想要改进这个问题?更新问题,以便通过编辑此帖的事实和引用来回答。 关闭 2年前。 ...

1  如何防止Profile2字段从加载用户注册?  ( How to prevent profile2 fields from loading on user registration ) 
我有一个名为 driver 的配置文件2配置文件。 此配置文件具有术语引用到名为 cities 的词汇,其中包含 30.000术语。 我通过在我的template.php中声明它,在我的template.php中声明它,我做了一个 custom usreder-register.tpl.php ,我只显示对帐户创建感...

0  将用户登录表格更改为多步骤  ( Alter the user login form into multi steps ) 
我想将我的默认用户登录表格更改为多步骤。因此,我写了一个我在下面粘贴的代码。但是,只要我点击"下一步" 按钮,此代码无法正常工作,它将在第一步返回。请帮我摆脱这个问题。 这是我的代码: function signin_form_alter(&$form, &$form_state, $form_id) { i...

1  在使用其一次性登录链接后第一次设置密码后,可以调用函数?  ( Possible to call a function after user sets their password for the first time af ) 
我有一个drupal 8站点,我需要在使用它们的一次性登录链接后第一次设置密码后动态重定向用户。 我无法弄清楚以这种情况挂钩的任何方式。是否有可能? ...

0  如何使用配置文件2将多个配置文件联系起来  ( How to associate multiple profiles per user with profile2 ) 
我正在运行一个具有不同配置文件类型的Drupal 7站点(使用Profile2模块创建)。每个用户与简档相关联,因此在注册时,潜在用户可以选择特定的简档,并且基于此,显示不同的登记页面。 我想知道,是否有可能允许普通用户(不是admin)为自己关联多个配置文件?让他/她可以看到与关联的每个特定配置文件的字段? ...

1  如何以编程方式分配新创建的捆绑包的权限?  ( How to assign permissions for a newly created bundle programmatically ) 
我正在制作基于Drupal的CRM管理应用程序。它将被许多不同的组织使用,因此我希望它可以是可配置的。我制作了一个称为人的自定义实体类型,以及一些默认人员捆绑包,例如默认人员捆绑包。志愿者和员工。组织还可以添加自己的人捆绑。例如,提供法律建议的组织可能希望添加律师捆绑包。 我正在使用 permissions_call...

9  禁用前端访问  ( Disable front end access ) 
我想禁用我无头驱动网站的前端访问,这只是Vue网站的REST API。 除了登录页面外,无需直接访问任何节点,分类或视图,因为一切都通过休息而传递。 如何实现这一目标? ...

2  不同的登记程序(有或没有批准)不同的角色?  ( Different registration procedures with or without approval for different roles ) 
我目前在D8中设置一个简单的LMS,并希望为不同类型的用户创建不同的注册程序。特别是: 应该有一个注册页面简单的成员配置文件:只需要基本的用户数据,并且在注册后立即解锁该帐户(和电子邮件确认)。 应该有一个学生配置文件的第二个注册页面:他们需要上传有效的学生身份证,这就是他们的注册需要admin批准的原因。 我已...

1  如何使用存储在数据库中的用户密码进行比较文本输入?  ( How to compare text input with a user password stored in the database ) 
我一直在尝试使用自定义表单进行密码值。 它实际上我想在特定的时间内显示重新开始形式。所以我创建了一种带有两个字段的自定义表单 - 电子邮件和密码。现在我想将密码从我的自定义表单中输入的密码输入,用户的密码存储在数据库中。如果密码相同,则允许用户访问网站agin。 我无法将哈希密码与自定义表单密码进行比较。我知道我们无...

0  实体参考 - 用户参考字段隐藏“受限访问”标签,而不是显示无用的选择  ( Entity reference user reference field hide restricted access label instead o ) 
我在结账窗格中有一个实体参考(7.x-1.5)选择 - 列表,该选中窗格中用于允许用户在结账过程中将子子附加到产品。 用户可以通过字段集合在其帐户下添加多个"child" 用户将产品添加到购物车,然后检查出来。在结账时,他们可以选择要附加到注册的"子" 。 我的问题是当用户结账时,选择列表在用户(来自每个用户)的值...

0  如何(以编程方式)如何在下拉列表中使用用户配置文件链接显示自定义块?  ( How can i programmatically display a custom block with user profile links in d ) 
我想显示一个自定义块,其中有一些验证用户的链接,如drupal.org。 我想在用户图片旁边显示用户名和自定义菜单项。例如,URL的"我的内容" 是这样的:"/ user / {uid} / my-contents" 。 你有什么想法如何创建这个? ps:我尝试了"menu_token" 模块,但它不正确为我...

1  检查用户是否从私有系统文件下载了文件? [关闭]  ( Check whether a user downloaded a file from private system file ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,以便仅通过编辑此帖子的问题。 closed 2年前。 ...

-1  如何在评论中渲染自定义用户字段? [关闭]  ( How to render a custom user field in comments ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭 1年前。 ...

-2  如果已登录,将用户重定向到主页  ( Redirect users to home page if already logged in ) 
我正在使用第三方身份验证机制来验证用户。 在成功的身份验证时,我能够使用 RedirectResponse 类重定向用户到主题。如果登录用户访问URL,则会获得访问拒绝错误。 我已经建立了一个自定义模块,登录的路由为/登录。我想要/用户/登录正常运行,因为它最初确实如此。 REACH /登录的登录用户必须重定向到首...

2  禁用用户登录,注册和密码重置  ( Disable user login register and password reset ) 
我正在研究一个Drupal 8网站,为所有意图和目的都将用作公司内联网。我也使用社交auth google 模块只允许公司注册的gsuite帐户使用网站。 我已经测试了这个模块,它工作得很好!但是,我想删除/用户/登录,/用户/寄存器和/用户/密码路由以及相关选项卡(按照下面的屏幕截图),以防止任何使用但是谷歌社交...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.