Articles of authentication

kerberos门票TGT和服务门票在Windows XP和Unix的path?

有人可以发送在Windows XP和UNIX的kerberos门票TGT和服务门票的path? 另外,我们如何知道windows和unix中使用的Kerberos的版本? 非常感谢,

使用httpclient \ kerberos以编程方式设置用户名,而不是提示

我有一个linux \ java6客户端,它将通过KERBEROS向sharepoint2010进行身份validation,然后使用Apache Commons HttpClient 4.2发送HTTP REST Web服务 如果我在连接我的客户端运行之前,从命令行"kinit myuser@mydomain"运行平滑。 我的问题是,如果我不运行kinit,我得到一个用户名提示。 如何在不提示用户名的情况下以编程方式进行身份validation,而无需运行命令行程序? (我创build和keytab,并在login.conf中定义它,以便照顾密码提示,而不是用户promt) public static void main(String[] args) throws Exception { System.setProperty("java.security.auth.login.config", "login.conf"); System.setProperty("java.security.krb5.conf", "krb5.conf"); System.setProperty("sun.security.krb5.debug", "true"); System.setProperty("javax.security.auth.useSubjectCredsOnly","false"); DefaultHttpClient httpclient = new DefaultHttpClient(); try { httpclient.getAuthSchemes().register(AuthPolicy.SPNEGO, new SPNegoSchemeFactory()); Credentials use_jaas_creds = new Credentials() { public String getPassword() { return null; } public Principal getUserPrincipal() { […]

设置SFTP以使用公钥authentication

如何设置服务器到服务器的SFTP使用公钥authentication,而不是用户帐户和密码?

交互命令提示符为NETWORK SERVICE

如何打开运行为NETWORK SERVICE的交互式应用程序(如cmd.exe或Windows资源pipe理器)? SYSTEM帐户有办法做到这一点,但networking服务被certificate是一个挑战。 我需要这个在Windows 7上工作,但也会对其他Windows版本的解决scheme感兴趣。

Symfony2:自动从Windows会话中login用户

在Symfony2我build立了一个内联网。 它目前使用FOSUserBundle和一个LDAP bundle来login用户,我想添加function从Windows中的会话login用户。 我发现一个 PHP 的NTLM脚本和它的更新版本 ,但是我没有能够将它们合并到Symfony2中。 我还为Symfony2find了一个NTLM包 ,但它是为Symfony的旧版本编写的,不再被维护。 我无法改写它,并得到它的工作。 我的问题是 除了已有的LDAPfunction之外,我怎么能在我的Symfony2-app的Windows会话中自动login用户呢? 什么是最好和最简单的方法?

使用Windowslogin的Intranet网站身份validation

我正在build立一个Perl的内部网站,我希望得到它使用Windows凭据进行身份validation。 到目前为止,我的研究已经出现了很多关键字:Kerberos,LDAP,NTLM等,但没有可靠的信息。 任何人有指针或好的教程? 谢谢。

如何强制与本地asp.net开发服务器的Windows身份validation?

我正在开发一个需要Windows身份validation的ASP.NET应用程序。 我有web.config设置拒绝匿名用户和使用Windows模式进行身份validation,但我的本地开发版本仍然让我通过网站。 为了testing不同的用户设置,我需要强制授权,以便更改用户。 当我在本地asp.net开发服务器上运行时,如何设置我的系统(configuration文件,VS2005设置,IIS等)来强制授权窗口在站点上popup? 换句话说,在Debug模式下运行站点时,如何获得身份validationpopup窗口?

HTTP请求未经客户端身份validationscheme“协商”授权。 从服务器收到的validation头是“NTLM”

几天前,我在客户端和wcf web服务之间使用Windows身份validation时遇到了身份validation问题。 我得到的错误是“HTTP请求是未经授权的客户端身份validationscheme”Negotiate“,从服务器接收到的身份validation头是”NTLM“,堆栈上的解决scheme都没有工作,因为大部分解决scheme都与旧方法有关。

如何根据域validation用户的caching凭据?

当您login到Windows时,您的凭据被caching 。 这使您可以使用单点login 。 如果您之后要浏览另一台电脑,例如: \\hydrogen 您将不会被提示input凭据。 Windows将采取您的: 当前用户名 (散列)密码 并尝试自动validation您的身份。 有趣的是,如果你的工作站不在域上,甚至可以工作。 连接到服务器时,Windows将自动使用您的用户名和密码。 如果你的: 本地用户名/密码匹配一个 域用户名/密码 你自动进入。 美丽的照片: 这被称为单一login 。 您只需login一次Windows,并使用caching的凭据在networking上使用其他信息时validation您的身份。 浏览器也做到这一点 Chrome,Internet Explorer和Firefox也对此做了一些变化。 如果您需要login到网站,并且服务器支持协商授权,则服务器将向您发送一个指示,告知您应该尝试用户的Windows / Domain / Kerberos凭据: HTTP/1.1 401 Unauthorized Server: Microsoft-IIS/7.5 WWW-Authenticate: Negotiate Date: Thu, 09 Jul 2015 14:35:58 GMT Content-Length: 0 然后,Chrome会将您的caching凭据,(在一些中间魔术后)转发到networking服务器: GET http://hr.woodglue.com HTTP/1.1 Host: hr.woodglue.com Authorization: Negotiate YIIFzwYGKwYBBQUCoIIFwzCCBb…. 微软在旧文章的Internet […]

如何validation域凭据?

我想validation对域控制器的一组凭据。 例如: Username: STACKOVERFLOW\joel Password: splotchy 方法1.用模拟查询Active Directory 很多人build议查询Active Directory的东西。 如果抛出exception,那么你知道凭据是无效的 – 正如在这个stackoverflow问题中所build议的。 然而,这种方法有一些严重的缺陷 : 您不仅要validation域帐户,还要进行隐式授权检查。 也就是说,您正在使用模拟令牌从AD读取属性。 如果否则有效的帐户没有权利从AD读取? 默认情况下,所有用户都具有读取访问权限,但可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 针对AD的绑定具有严重开销,AD架构caching必须在客户端(DirectoryServices使用的ADSI提供程序中的ADSIcaching)中加载。 这既是networking,又是AD服务器,消耗资源,而且对于像validation用户帐户这样的简单操作来说太昂贵了。 对于非例外情况,您依赖exception失败,并假设这意味着无效的用户名和密码。 其他问题(如networking故障,AD连接故障,内存分配错误等)则被误解为authentication失败。 方法2. LogonUser Win32 API 其他人build议使用LogonUser() API函数。 这听起来不错,但不幸的是,主叫用户有时需要一个通常只给予操作系统本身的权限: 调用LogonUser的进程需要SE_TCB_NAME特权。 如果调用进程没有此权限,LogonUser将失败,并且GetLastError返回ERROR_PRIVILEGE_NOT_HELD。 在某些情况下,调用LogonUser的进程也必须启用SE_CHANGE_NOTIFY_NAME权限; 否则,LogonUser失败,GetLastError返回ERROR_ACCESS_DENIED。 作为pipe理员组成员的本地系统帐户或帐户不需要此权限。 默认情况下,所有用户都启用了SE_CHANGE_NOTIFY_NAME,但是一些pipe理员可能会禁用所有用户。 正如微软在一篇知识库文章中指出的那样,将“ 行为作为操作系统的一部分 ”特权发出是不是你想做的事情: …正在调用LogonUser的进程必须具有SE_TCB_NAME特权(在用户pipe理器中,这是“ 作为操作系统的一部分 ”)。 SE_TCB_NAME特权非常强大, 不应该被授予任何任意用户,以便他们可以运行需要validation凭据的应用程序 。 此外,如果指定空白密码,则对LogonUser()的调用将失败。 什么是validation一组域证书的正确方法? 我碰巧从托pipe代码调用,但这是一个一般的Windows问题。 可以假定客户安装了.NET Framework 2.0。