通过SAML进行身份验证并在API中创建令牌

问题描述 投票:0回答:1

我正在为具有以下体系结构的应用程序进行SAML身份验证。

使用Laravel编写的前端应用程序-无法处理身份验证也使用Laravel编写的支持身份验证的API支持]

我现在拥有的是一个登录表单,该表单具有一个带SAML按钮的登录,单击后将向上单击重定向到Microsoft页面,并使用saml请求中的信息重定向前端应用程序上的回调页面。

现在,我需要对用户进行身份验证并创建令牌,然后在前端应用程序中进行会话。由于我使用的是SAML,因此我没有密码来进行传统的身份验证。这意味着我需要一些API,可以从SAML传递some信息,以便能够检查该电子邮件是否存在于数据库中,并随后创建了令牌。

但是由于此API是公开的,因此我不能只传递电子邮件,因为这会让别人猜到它。我该如何预防?

php laravel saml saml-2.0
1个回答
0
投票

使用信息重定向前端应用程序上的回调页面来自saml请求

来自SAML请求的信息是您的身份验证事件。用户已通过在其身份提供者(Microsoft页面)上登录并使用其SAML属性返回到您的应用程序,从而对您的应用程序进行了身份验证。

如果是使用用户名/密码的传统身份验证,则密码匹配后,您将为其创建会话。在这种情况下,密码检查由Microsoft完成,并通过将SAML Response发送到您的回调函数来告知您的应用程序成功。

如果解析SAML Response并提取属性,则可以使用其中之一来创建会话。诸如eduPersonTargetedID之类的持久性对象(对于该用户而言始终是相同的值)将使您可以创建其会话。当他们注销并重新登录时,该eduPersonTargetedID在他们的SAML Response中将具有相同的值。

SAML Response样本可用here

© www.soinside.com 2019 - 2024. All rights reserved.