我有一个几年前使用 ASP.NET WEB API 2 和 OWIN、ASP.NET 标识和带有承载令牌的 OAuth 编写的应用程序。我的前端是 AngularJS。我在创建应用程序时遵循了这篇文章:https ://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
现在,我需要实现 SAML 仅用于身份验证。我仍将使用 ASP.NET Identity 进行授权。我计划使用 Sustainsys SAML2 OWIN 中间件。我在这里遵循了 OWIN 示例:https ://github.com/Sustainsys/Saml2/tree/master/Samples/SampleOwinApplication
我得到的错误是:
在 IAppBuilder 属性中找不到 SignInAsAuthenticationType 的默认值。如果您的身份验证中间件以错误的顺序添加,或者缺少一个,则可能会发生这种情况。
如何添加 SAML 以进行身份验证,同时仍通过不记名令牌解决方案使用 ASP.NET Identity 进行授权?
这是我进行承载身份验证的代码。我添加了 UseSam2Authentication 方法并注释掉了 UseOAuthBearerAuthenticaton 行。
var OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/api/token"),
Provider = new ApplicationOAuthServerProvider(),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60), // TODO: Change this back to 30 minutes!
#if DEBUG
AllowInsecureHttp = true
#endif
};
app.UseOAuthAuthorizationServer(OAuthOptions);
// app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
app.UseSaml2Authentication(CreateSaml2Options());