标签: http-negotiate

linux docker容器中的Windows身份验证

我正在尝试在 kubernetes 下的 linux docker 容器中使用 windows 身份验证。

我正在关注此设置:https : //docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio#kestrel

应用程序在 .net core3 中,使用 nuget Microsoft.AspNetCore.Authentication.Negotiate 并在 kestrel 中运行

我已经添加了

services.AddAuthentication(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateDefaults.AuthenticationScheme).AddNegotiate();
Run Code Online (Sandbox Code Playgroud)

app.UseAuthentication();
Run Code Online (Sandbox Code Playgroud)

并将我的 devbase 映像设置为

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster as final
USER root
RUN whoami
RUN apt update && apt dist-upgrade -y

ADD ca/ca.crt /usr/local/share/ca-certificates/ca.crt
RUN chmod 644 /usr/local/share/ca-certificates/*
RUN update-ca-certificates


RUN DEBIAN_FRONTEND=noninteractive apt install -y krb5-config krb5-user

COPY krb5.conf /etc/krb5.conf
RUN mkdir /app

RUN echo BQIAAA..== | base64 -d > /app/is.k01.HTTP.keytab
WORKDIR /app

#RUN docker version

RUN groupadd …
Run Code Online (Sandbox Code Playgroud)

kerberos windows-authentication gssapi http-negotiate gss

17
推荐指数
2
解决办法
1万
查看次数

Excel VBA:NTLM / Kerberos 和 VBA-Web / WinHttp 中的协商身份验证

我想与需要身份验证的网站(在 EXCEL VBA 中)的 REST API 接口,使用数字证书(.PFX文件)(NTLM 身份验证),或使用 Windows 域身份验证(Kerberos 和协商身份验证)。后者是首选,但我也不知道该怎么做,我希望有人可以分享有关如何进行这些身份验证的代码。我不能使用其他身份验证方法(例如基本),因为它不受支持。

目前我正在使用 VBA-Web ( github:VBA-tools:VBA-Web),并且我设法与 api 进行了交互,但是以一种非常奇怪的方式。我跟踪了从 Chrome 到网站的网络调用,并注意到它将 cookie 添加到每个调用的标题中。因此,在我的请求中,我补充说:

webrequest.SetHeader "Cookie", "server.com.au=35558896564.55846.54545; SDASESSION=AQISFCwMasdffczd6afASFVHfgfgsdf%2BG35FsE%3D%40AAJTSwAJSDFSDTkMw%3D%3D%23; amlbcookie=07; JSESSIONID=000f:19pcqj2d1; server2.com.au=484566584.454584.41545"
Run Code Online (Sandbox Code Playgroud)

然而,这显然很烦人,而且对用户不友好——因为每次我想使用我的 excel vba 代码时,我都必须找到 cookie。

此外,在跟踪 Chrome 中身份验证的网络调用后,我注意到它经历了各种重定向,在重定向时收集所有 cookie。在一次特定呼叫期间,它会进行"negotiate"身份验证。

VBA-Web 似乎基于 off WinHTTP,所以我环顾四周,我真的迷失在如何与WinHTTP(或 WinINet 等)交互以进行这些身份验证。我看过setCredentials方法Link,但我不确定 NTLM 或 Negotiate 的用户名和密码是什么?

或者,我尝试使用数字证书,但由于我有 PFX 文件,我不知道如何直接使用它。我已经看过Link但我不完全确定安装 PFX 后我的证书存储在哪里。我在安装过程中选择了 Personal,那么这是否意味着它在 LOCAL_MACHINE\Personal 中?更重要的是我不知道主题名称是什么。

Microsoft 文档位于C++或 中JScript,因此这对我也没有帮助。

因此,如果我能够进行身份验证并获取 cookie,那么其余的应该没问题。我将如何使用 VBA 在 …

authentication excel vba ntlm http-negotiate

5
推荐指数
1
解决办法
2237
查看次数

如何使用具有BASIC身份验证的服务工作者(NTLM,协商)

我一直在尝试使用IIS托管网站中的服务工作者来缓存网站的一些静态内容.该站点是使用Windows身份验证的内部应用程序.我已经能够在没有太多麻烦的情况下注册和运行服务工作者,但是只要我打开缓存并开始向缓存添加文件,承诺就会因授权失败而失败.返回的HTTP结果是401 Unauthorized.这是对浏览器和服务器能够协商授权之前的前几个请求的通常响应.

我会尽快发布一些代码来帮助解释.

编辑

var staticCacheName = 'app-static-v1';
console.log("I AM ALIVE");
this.addEventListener('install', function (event) {
    console.log("AND I INSTALLED!!!!");
    var urlsToCache = [
        //...many js files to cache
        '/scripts/numeral.min.js?version=2.2.0',
        '/scripts/require.js',
        '/scripts/text.js?version=2.2.0',
        '/scripts/toastr.min.js?version=2.2.0',
    ];


    event.waitUntil(
        caches.open(staticCacheName).then(function (cache) {
            cache.addAll(urlsToCache);
        }).catch(function (error) {
            console.log(error);
        })
    );
});
Run Code Online (Sandbox Code Playgroud)

ntlm http-negotiate service-worker

3
推荐指数
1
解决办法
1844
查看次数

什么是 NTLM/身份验证/协商 Web 身份验证

我了解基本和摘要身份验证。但是我已经搜索了很多,并且在 NTLM、身份验证和协商方面遇到了困难。

我认为,如果我错了,请纠正我,NTLM 和身份验证是同一协议的两个术语。

协商首先尝试 NTLM,然后回退到消化,然后回退到基本连接。

那是对的吗?如果是这样,哪里有一个很好的例子,说明如何在 C# 中连接仅用于 NTLM 和协商。

我有两个用例。首先是我需要拉下一个文件。所以发出一个请求,得到一个 XML 文件作为响应,读下来,完成。

第二个是查询 OData 成百上千个 Web 请求,每个请求都将提供 JSON(或 XML)作为响应。

c# ntlm httpwebrequest http-authentication http-negotiate

0
推荐指数
1
解决办法
3026
查看次数