我有一个有角度的网站,它通过第三方 IDP 进行身份验证。第三方 IDP 登录用户,然后将 SAML 响应发送到我的 Web API 端点。
如何让我的 API 端点设置 cookie 以进行身份验证,并在响应标头中使用 cookie 将用户发送回我的 Angular 网站? Web 应用程序和 API 都位于同一域中。
例如:
步骤 1-7 效果很好。我可以让用户进行身份验证并读回 SAML 响应。然后我还可以创建 cookie。但是,由于 SAML 响应转到 HttpPost API 端点,然后该端点使用 RedirectResult 将用户发送回我的角度站点,因此 cookie 不会添加到响应标头中。
如何将该 cookie 添加到 API 中的响应标头并发送到 Angular 应用程序以在用户使用网站时来回发送以验证用户身份?
配置 cookie 来保存服务器详细信息不应该在前端(FE)/角度中执行,而应该在后端(BE)/API 中执行。
在第 8 步中,BE 需要设置所需的身份验证 cookie,以便您的 FE/浏览器可以在进一步请求时使用它。
仍然如此,重定向将不必设置cookie,
如果您使用自定义标头,则需要配置 BE 以允许浏览器读取/存储它:
services.AddCors(options =>
{
options.AddPolicy("YourCorsPolicy", builder =>
{
builder.AllowCredentials()
... // your other CORS configs
.WithExposedHeaders("Your-Custom-Header");
});
});
您可能还想按照
这个答案使用
SameSite=Lax
配置cookie选项。
希望这能让您走上正确的道路。