Node.js 使用Shibboleth身份验证/在Shibboleth身份验证之后进行数据库身份验证

Node.js 使用Shibboleth身份验证/在Shibboleth身份验证之后进行数据库身份验证,node.js,postgresql,shibboleth,Node.js,Postgresql,Shibboleth,谢谢你试着帮助我 我的设置: 1个带有shibboleth服务提供商的Apache Web服务器 2.节点Js服务器/api 3.角前端 4.PostgreSQL数据库 我正在做什么和我想做什么: 我转到我的web应用URL Apache将我发送到shibboleth身份验证端,成功登录后,它会将我发送到应用程序的起始页。->工作 现在,如果数据库中的用户名与我从shibboleth获得的用户名相同,我想将用户直接登录到我的应用程序。->不起作用 (我现在不知道如何在不将DB pw保存到服务器上

谢谢你试着帮助我

我的设置:

1个带有shibboleth服务提供商的Apache Web服务器 2.节点Js服务器/api 3.角前端 4.PostgreSQL数据库

我正在做什么和我想做什么:

我转到我的web应用URL Apache将我发送到shibboleth身份验证端,成功登录后,它会将我发送到应用程序的起始页。->工作

现在,如果数据库中的用户名与我从shibboleth获得的用户名相同,我想将用户直接登录到我的应用程序。->不起作用 (我现在不知道如何在不将DB pw保存到服务器上某个位置的情况下管理它)

目前,用户需要在my Frontend中使用其DB凭据登录。按下angular应用程序上的登录按钮后,会向我的节点api发送一个post请求。 将使用pg promise library创建一个数据库对象,现在用户可以从数据库获取数据并登录

我无法从shibboleth身份验证服务器获取密码。我只知道用户名

今晚我将尝试添加一些代码


在shibboleth身份验证之后,用户登录数据库的最佳方式是什么?

如果我理解正确,您不需要来自身份提供商的密码-在进行身份验证时,您绝对信任提供商。您只需要用户名。然后,您需要在node.js代码中找到提取和验证shibboleth令牌时的点。这是您需要添加一些自定义代码的地方。此代码将搜索您的postgress数据库,查找同名的现有用户或创建新用户,然后建立本地会话,就像用户以常规方式登录时建立本地会话一样。@WiktorZychla是正确的。您信任SAML exchange中的身份提供程序,并且Shib SP不允许用户在没有IdP身份验证的情况下访问安全资源,因此您不需要用户的密码。你只需要创建一个会话(不管你是如何在你的应用程序中创建的)。如果我理解正确,你不需要来自身份提供商的密码-在进行身份验证时,你绝对信任提供商。您只需要用户名。然后,您需要在node.js代码中找到提取和验证shibboleth令牌时的点。这是您需要添加一些自定义代码的地方。此代码将搜索您的postgress数据库,查找同名的现有用户或创建新用户,然后建立本地会话,就像用户以常规方式登录时建立本地会话一样。@WiktorZychla是正确的。您信任SAML exchange中的身份提供程序,并且Shib SP不允许用户在没有IdP身份验证的情况下访问安全资源,因此您不需要用户的密码。你只需要创建一个会话(不管你如何在应用程序中创建会话)。