0

我们正在为 .NET Core 3.1 api 使用带有 JWT 身份验证的 IdentityServer 4。这一切都很好。我正在尝试添加 NTLM 身份验证。
我安装了 IdentityServer 快速入门,并且能够获得“Windows”外部登录以在域上对我进行身份验证。我看到正在设置 cookie,并且看到我正在将 cookie 发送到 API 的请求中,但我总是得到 401。我不确定如何设置 API 以接受 cookie。我正在使用 Angular 应用程序调用 API,但我不确定这是否重要。所有帮助表示赞赏。

客户端配置:

new Client {
                    RequireConsent = false,
                    ClientId = "angular_spa",
                    ClientName = "Angular SPA",
                    AllowedGrantTypes = GrantTypes.Implicit,
                     AllowedScopes =
                    {
                        IdentityServerConstants.StandardScopes.OpenId,
                        IdentityServerConstants.StandardScopes.Profile,
                        "externalapi"
                    },
                    RedirectUris = {"http://localhost:42001/angular/logout"},
                    PostLogoutRedirectUris = {"http://localhost:42001/"},
                    AllowedCorsOrigins = {"http://localhost:42001"},
                    AllowAccessTokensViaBrowser = true,
                    AccessTokenLifetime = 3600
                },

身份服务器配置:

            var builder = services.AddIdentityServer()
                .AddInMemoryIdentityResources(keyConfig.Ids)
                .AddInMemoryApiResources(keyConfig.Apis)
                .AddInMemoryClients(keyConfig.Clients)
                .AddCustomUserStore()
                .AddInMemoryApiScopes(keyConfig.Scopes);

API 配置

 services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
              .AddIdentityServerAuthentication(options =>
              {
                  options.Authority = Configuration.GetValue<string>("IdentityServerSettings:Authority");
                  options.ApiName = Configuration.GetValue<string>("IdentityServerSettings:ApiName");
                  options.ApiSecret = Configuration.GetValue<string>("IdentityServerSettings:ApiSecret");
              });
            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = "Cookies";
            })
            .AddCookie("Cookies");

饼干

4

0 回答 0