我知道这里给出的答案是关于使用表单身份验证和 SAML。在我的情况下,我在 .Net 5 上使用 Asp.net 核心身份。另外,我使用两种身份验证方案(Cookie 和 JWT)。
我的身份验证管道如下;
//include identity
services.AddIdentity<ApplicationUser, ApplicationRole>(SetupIdentityOptions)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
//configure cookie and Jwt scheme
services.ConfigureApplicationCookie(...)
services.AddAuthentication(...) //configures default Identity
.AddJwtBearer(options => {...})
services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
我想知道的是我应该在这个管道中的哪里添加 SAML2。
一般来说,应用程序应该;
- 能够使用 Cookie 身份验证登录(Identity 负责此操作)
- Jwt 令牌应该也适用于 Apis(这也适用于 Jwt 方案)
- SSO 客户端应该从他们的 IdP 获得身份验证,当重定向到 AssertionConsumer() 时,我将创建其他声明,创建新的 ClaimsIdentity,创建 JWT 令牌(将其传递给客户端)并将用户带到仪表板。
我被困在第三点,即正确添加 SAML 方案而不覆盖 cookie/jwt 方案。