1

我有一个几年前使用 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());

4

0 回答 0