将用户名从SP启动的登录名发送到IDP登录表单?

时间:2019-02-19 11:44:53

标签: php single-sign-on saml onelogin

我已经实现了OneLogin PHP SAML库,并且一切正常,但是有人询问是否可以将SP启动的登录名中的电子邮件地址/用户名发送到IdP。

您看到的是,此刻用户的登录流程将进入我网站上的登录表单,输入他们的电子邮件地址,此时登录表单将看到他们的帐户如何设置为进行登录并相应地重定向(或显示密码字段(如果用户未通过SAML或oAuth进行身份验证)。

这样就可以发送用户已经在SP表单上输入的电子邮件地址的请求,以便可以在IdP端预先填写表单,这意味着用户不必两次键入详细信息。 / p>

我知道可以使用<saml:Subject>中的AuthnRequest信息来完成此操作,但是我看不到任何能够使用OneLogin库修改该数据的方法。

我可能只是缺少GitHub repo文档中确实显而易见的内容,所以有人可以指出正确的方向吗?可以在请求中添加主题信息吗?

用于启动从SP到IdP的登录的代码非常简单:

$samlConfig = SamlEntities::getConfig($idpCode, $applicationCode);
$auth = new \OneLogin_Saml2_Auth($samlConfig);
$auth->login();

SamlEntities::getConfig只是合并了数据库中的SP和IdP信息以及存储它们的配置文件。

所以我想如果可以做到的话,这将是要做的地方。

1 个答案:

答案 0 :(得分:0)

SAML请求不包含主题。意识到您已经请求用户输入其用户ID来执行家庭领域发现,但是不会在SAML请求中延续到Onelogin。

但是,这可能对您有用 OneLogin - OIDC - Implicit Flow - login_hint