Articles of kerberos

在Linux上使用Centrify设置与UPN相同的SPN

您好,我正在Linux环境中使用CentrifyconfigurationKerberos。 我更熟悉Windows。 我知道在Linux中使用MIT Kerberos,我可以使用SPN创build一个新帐户作为UPN。 使用Centrify时,这是相同的过程吗?

使用MIT Kerberos作为Windows AD域的帐户域

我们主要是通过Kerberoslogin的Linux用户。 但是我们也有less数(<50)使用Linux和Windows的用户。 这应该会在未来增长。 我们希望将我们的用户数据库保留在Unix / Kerberos端。 但由于某种原因,我不能得到它的工作呢。 阅读了一些指南(匿名域名)后,我做了以下工作: 1)将ADDC添加到Linux KDC和Linux主机上的/etc/krb5.conf AD.DOMAIN = { kdc = PDC.AD.DOMAIN admin_server = PDC.AD.DOMAIN default_domain = ad.domain } 2)在Linux端添加跨领域主体 addprinc -pw <longPW> -requires_preauth krbtgt@AD.DOMAIN addprinc -pw <longPW> -requires_preauth krbtgt/LINUX.REALM@AD.DOMAIN addprinc -pw <longPW> -requires_preauth krbtgt/AD.DOMAIN@LINUX.REALM 3)通过ksetup添加领域信息到Windows ADDC和其他Windows机器 ksetup default realm = ad.domain (NT Domain) LINUX.REALM: kdc = kdc.linux.realm kpasswd = kdc.linux.realm […]

如何在不使用KRB5CCNAME的情况下在客户端上设置Kerberos的default_ccache_name属性?

根据MIT Kerberos文档,默认凭证caching名称如下确定: 默认的ccache名称 默认凭证高速caching名称由以下内容按优先级降序确定: 1. The KRB5CCNAME environment variable. For example, KRB5CCNAME=DIR:/mydir/. 2. The default_ccache_name profile variable in [libdefaults]. 3. The hardcoded default, DEFCCNAME. http://web.mit.edu/kerberos/krb5-devel/doc/basic/ccache_def.html 我想知道是否有办法在客户端定义default_ccache_nameconfiguration文件variables(#2)? 我已经尝试在我的客户端机器上的/etc/krb5.conf中对其进行如下定义: [libdefaults] … default_ccache_name = FILE:/var/krb5/security/creds/krb5cc_%{uid} … 但客户端二进制文件(klist / kinit / kdestroy等)似乎完全忽略了这一点: [~]$ klist klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_34125) 我正在运行版本1.9.4: [~]$ klist -V Kerberos 5 version […]

遇到“致命错误 – NtCreateEvent(lock):0xC0000077”在cygwin中执行kinit时

我的Windows 7 64位上安装了mintty 1.2-beta1(x86_64-pc-cygwin) 。 然后我使用Cygwin Net Release Setup Program将krb5-workstation版本1.12.1-2安装到cygwin。 但是当我在cygwin中执行kinit或klist时,出现错误: $ kinit 1 [main] kinit 3912 C:\cygwin64\bin\kinit.exe: *** fatal error – NtCreateEvent(lock): 0xC0000077 Hangup 重新启动cygwin或重新启动窗户也无法正常工作。 有人可以帮忙吗?

FreeIPA LDAP超时可能由于kerberos

我们目前使用FreeIPA,因此支持SSH Pubkeys的集中式存储库,这是唯一允许用于login到我们的服务器的东西。 我们已经安装了IPA 3.3.3(来自默认回购)的Centos 7机器(最新版本),安装后立即令人难以忍受。 添加用户和主机后,缓慢仍然存在。 有时,当使用sudo命令(sudo规则实际上在本地机器上)时,会发生ldap超时。 Web gui几乎不能使用。 我们决定尝试使用ipa 4.0.1安装最新的Fedora 2x。 安装后,我们注意到webgui的相同缓慢,其他问题都符合我们以前的经验。 我们几个人在Centos 6.5上使用了IPA 3.0,没有问题。 我们希望避免返回到目前为止的解决办法是解决我们搞砸的事情。 这里是$ KRB5_TRACE=/dev/stderr kinit admin : auth-1 ~ # KRB5_TRACE=/dev/stderr kinit admin [5849] 1412384797.188699: Getting initial credentials for admin@JOINSG.NET [5849] 1412384797.191831: Sending request (161 bytes) to JOINSG.NET [5849] 1412384797.192393: Sending initial UDP request to dgram 173.234.61.206:88 [5849] 1412384797.196589: Received […]

为什么用户可以通过IE委托身份validation到IIS?

Kerberos身份validation支持委派,但委托需要客户端和服务器之间的协作。 例如,如果客户端使用SSPI,则在调用InitializeSecurityContext时,必须设置ISC_REQ_DELEGATE标志。 如果服务器,IIS(更准确地说应用程序在IIS上运行)想要使用客户端的身份validation进行另一个远程访问,客户端(IE浏览器)必须使用委托,但是如何知道服务器想要这样做?

有keytab有一辈子?

我有一个计划每日运行(只有一次)的密钥表来更新它的票证。 不过,我想知道keytab本身是否有一生? 我认为这不是因为cron工作已被configuration为每天执行,我认为将创build一个新的票,而不是更新?

Java 7 Kerberos问题 – AES128损坏的校验和

我正在从Java 6迁移到Java 7,并遇到Kerberos身份validation问题。 在我看来,底层的encryptiontypes顺序是切换的,因此使用不同的encryptiontypes。 在这种情况下,当Java 7运行时, Aes128CtsHmacSha1EType被用于部分事务。 ArcFourHmacEType用于运行Java 6并运行Java 7的其他部分。 其他细节:在Linux(Fedora 16)上针对Windows Active Directory服务器运行。 我知道如果在krb5.conf文件中设置了default_tkt_enctypes,default_tgs_enctypes,permitted_enctypes参数,我可以使身份validation正常工作; 不过,我希望在没有文件的情况下使用它,理想情况下不必强制使用一种或两种文本types。 这是我得到的错误消息: java.security.PrivilegedActionException: javax.naming.AuthenticationException: GSSAPI [Root exception is javax.security.sasl.SaslException: Final handshake failed [Caused by GSSException: Token had invalid integrity check (Mechanism level: Corrupt checksum in Wrap token)]] at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at *internal.code*.LDAPAuthenticator.authenticate(LDAPAuthenticator.java:46) at *internal.code*.LDAPAuthenticatorTest.testUpdateUser(LDAPAuthenticatorTest.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at […]

在Linux上用C ++validationActive Directory

我很惊讶这里有这么几个例子。 我基本上需要做一个用户/通过身份validation对Active Directory。 我能够初始化到活动目录的连接,但总是给我一个“无效的凭据”错误。 我想知道如果我传递错误。 这是我第一次尝试LDAP。 对于这个问题,我打开另一个(有充分logging的)解决scheme。 #include <iostream> #include <stdio.h> #define LDAP_SERVER "ldap://hq.mydomain.local/" #include <ldap.h> int main( int argc, char** argv ) { LDAP *ld; int version( LDAP_VERSION3 ); int rc; char bind_dn[100]; berval creds; berval* serverCreds; if( ldap_initialize( &ld, LDAP_SERVER ) ) { std::cerr << "Error initializing ldap…" << std::endl; return 1; } […]

SPNEGO / Kerberos没有发现来自Linux客户端的请求的凭据错误

目前,我正在为基于Java,Tomcat和Kerberos的客户实施单一login解决scheme。 用户将从其客户端浏览器访问Intranet Tomcat应用程序的URL,Tomcat应用程序通过Kerberos获取用户的凭据,并将其redirect到实际的Web应用程序。 我们的客户环境是充当KDC的Windows AD服务器和Linux Tomcat应用程序服务器的典型组合。 应该从Windows和Linux客户端使用SSOfunction。 这与我在网上find的大多数答案似乎不一样,人们拥有Linux Web应用程序服务器,但只使用Windows客户端。 现在,在我的本地设置,我得到一些奇怪的行为。 我的开发环境是在Windows 7下从MyEclipse 8.6运行的Tomcat 7.0.26。我的testing环境是在Centos 6机器上的Apache Web服务器后面的Tomcat 7.0.26或7.0.53。 我已经正确设置了AD服务器,生成了必要的keytab文件等等,并且在开发环境中一切正常。 我可以使用IE和Firefox从Linux和Windows客户端访问Tomcat应用程序,Kerberos身份validation将继续进行,并正确redirect。 在testing服务器上部署Tomcat应用程序时,在尝试从Windows客户端login时,此function将继续工作。 但是,当我尝试从Linux客户端(我曾尝试从Linux Mint 13和Ubuntu 13.10)访问testing服务器时,出现以下错误: javax.servlet.ServletException:GSSException:找不到用于以下用途的凭证:1.3.6.1.5.2.51.3.6.1.5.2.5用法:接受net.sourceforge.spnego.SpnegoHttpFilter.doFilter(SpnegoHttpFilter.java:233) 我不得不承认,我不明白这个信息。 它是否指向客户端提供的证书有问题,或者与应用服务器与KDC进行协商有问题? 我已经对这个问题做了一些研究,发现指出的oid 1.3.6.1.5.2.5表示GSS_IAKERB_MECHANISM,而不是GSS_KRB5_MECHANISM或者GSS_SPNEGO_MECHANISM,我觉得这很奇怪。 而且,没有人看起来有完全相同的问题。 我曾尝试从MIT Kerberos切换到Heimdal Kerberos并返回。 我已经尝试过Firefox和Chromium,在Tomcat 7.0.26和7.0.53之间切换的应用程序服务器上,问题仍然存在。 我正在使用最新的spnego.jar。 现在:从Linux调用在Windows开发计算机上运行的Tomcat成功,从Linux客户端调用到Linux应用程序服务器失败,两个浏览器都尝试了相同的错误消息。 任何想法在这一个?