【问题标题】:How to manage .NET Core API as a ServiceProvider to an existing IdentityProvider with Saml2?如何使用 Saml2 将 .NET Core API 管理为现有 IdentityProvider 的 ServiceProvider?
【发布时间】:2020-03-28 16:46:52
【问题描述】:

大家好,首先感谢,

我有一个具有 .NET Core 2 API 和 Angular 8 客户端应用程序的项目。我已经在应用程序和 api 之间实现了基于令牌的身份验证(不使用 IdentityUser 或 IdentityRole)。

现在,我必须通过 SSO 进行身份验证。我有一个 saml2 身份提供者元数据,并使用 Sustainsys.Saml2.AspNetCore2 包使用此元数据配置了我的 api。

现在我可以创建自己的元数据并将此元数据注册到 IdentityProvider。一切似乎都还好 到目前为止,但是当我尝试从 IdentityProvider 登录页面登录时,我的 api 没有任何变化。

我心中的疯狂问题

在身份提供者的元数据中,只有 SSO 和 SLO 重定向 url。 authnrequests 没有其他方法。(HTTP POST 等)我将如何登录此 Idp?

Idp 有自己的登录页面。如果我必须将用户重定向到这个登录页面,我会得到任何身份验证令牌或 cookie。我的 API 是否会在此登录时被识别?

在任何情况下都应该有一个身份验证数据(token、cooke、sessionid 等)。在向我的 API 发送请求时,我将在哪里获取这些数据来设置授权标头?

我已经尝试了一段时间,但我的最后一次尝试也没有成功。

有人可以帮忙吗?

非常感谢。

【问题讨论】:

标签: .net-core single-sign-on sustainsys-saml2


【解决方案1】:

您需要重定向到身份提供商,然后它将重定向回您的服务提供商 api,您可以从中设置您正在使用的任何安全机制,然后再次重定向到您的本地前端(无论您需要发送您的用户)。

以下是一些我觉得很有帮助的资源: 1) https://docs.microsoft.com/en-us/aspnet/core/security/authentication/?view=aspnetcore-3.1(身份验证方案在 .Net Core 中的工作原理)

2) ASP.Net Core SAML authentication 1.https://github.com/Sustainsys/Saml2(SAML 2.0认证包) 2. https://stubidp.sustainsys.com/(免费 IdP - 如果需要,可以使用替代本地实施。本地实施需要部署“Sustainsys.Saml2.StubIdp”项目)。

3)Sustainsys SAML2 Sample for ASP.NET Core WebAPI without Identity

4) https://github.com/hmacat/Saml2WebAPIAndAngularSpaExample(超级有用的示例实现)

5) Not able to SignOut using Saml2 from Sustainsys(帮助注销以使用https://stubidp.sustainsys.com)

6)https://www.nuget.org/packages/Sustainsys.Saml2.AspNetCore2/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2021-12-18
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多