通过Kerberos与活动目录进行认证
我正在构建需要不同级别身份验证的Android应用程序,我想使用Active Directory进行. 根据我阅读的内容,使用Kerberos是Microsoft建议的方式.我该如何为Android做到这一点?我看到javax.security.auth doc doc '告诉我太多. 我还看到了Kerberos不包含用户组的注释 - 这是真的吗?在这种情况下,我还必须以某种方式将LDAP组合在一起吗? 编辑 这里的主要目标是实现与Active Directory的LDAP连接,以便对企业Android应用程序进行身份验证并为用户提供正确的权限.这里真正的障碍是Google将许多Java Web Services API从其端口到Android遗漏了. (即javax.naming)另外,Android Jar中的许多连接机制似乎仅作为旧版代码,实际上它们实际上什么也不做. 解决方案 为此,您可能会完全呆在LDAP内,不要冒险进入Kerberos. Ker
4 2024-02-03
编程技术问答社区
从pypi向Windows下的Anaconda添加kerberos
完成Noob,因此会欣赏分步的解决方案. 我想添加 kerberos package tovent . 我尝试了使用conda命令行:pip install kerberos,但失败了. 有人知道该怎么做吗? 这是PIP的错误日志: C:\Users\woodas\AppData\Local\Continuum\Anaconda\Scripts\gcc.bat -DMS_WIN64 -mdll -O -Wall -IC:\Users\woodas\AppData\Local\Continuum\Anaconda\include -IC:\Users\woodas\AppData\Local\Continuum\Anaconda\PC -c src/kerberos.c -o build\temp.win-amd64-2.7\Release\src\kerberos.o '{' is not recognized as an internal or exter
4 2024-01-26
编程技术问答社区
Chrome: 如果没有经过认证,如何让ajax请求在kerberos下工作?
我们使用Kerberos获得了REST API.托管在其他地方是一个称此API的WebApp. 如果您直接导航到API,则身份验证工作正常,并且返回cookie.然后WebApp可以正常工作,因为它具有API的root Uri的cookie. 但是,如果您导航到WebApp,并且使用AJAX向API提出了HTTP GET请求,则请求返回401: Unauthorized以及WWW-Authenticate:Negotiate.如果我导航到相同的地址,Chrome将进行协商并进行身份验证,但是在这种情况下,Chrome会停止. 有各种丑陋的骇客来解决问题,例如创建一个来源的API的iframe,或者将用户重定向到API并让使用307的用户反弹,但显然不是最佳的. 它在IE7中正常工作. 处理此问题的正确方法是什么? 解决方案 我发现了这个问题. REST API具有附加的身份验证层,该验证层使用"授权" HTTP标头设置API-KEY.删除此安全层后,
6 2024-01-21
编程技术问答社区
Java 7 Kerberos Issue-AES128校验和损坏
我正在从Java 6迁移到Java 7,并遇到了Kerberos身份验证的问题.在我看来,基础加密类型顺序已切换,因此使用了不同的加密类型.在这种情况下,当Java 7运行时,将用于部分交易. ArcFourHmacEType在运行Java 6时使用ArcFourHmacEType. 其他详细信息:在Linux(Fedora 16)上运行Windows Active Directory Server. 我知道,如果我设置了default_tkt_enctypes,default_tgs_enctypes,允许krb5.conf文件中的pressity_enctypes参数,我可以得到身份验证.但是,我想使它起作用而无需文件,理想情况下,不必强迫一种或两个Enctypes. 这是我收到的错误消息: java.security.PrivilegedActionException: javax.naming.AuthenticationException: GSSAPI [
0 2024-01-19
编程技术问答社区
GSSException:[..]不支持/启用带有HMAC SHA1-96的加密类型AES256CTS模式
After setting our domain users to support AES encryption for Kerberos tokens (Windows Server 2008R2), on a web-application server side we get the following exception: gsexception:在GSS-API级别未指定的故障(机理级别: 使用HMAC SHA1-96的加密类型AES256CTS模式不是 支持/启用) Strangely we have Java 6 (1.6.0_27) , which means that AES should be supported, according to this document: http://docs.oracle.com/javase/6/docs/technotes/guides/security/jgss/jgss-features.html 有什么想
4 2024-01-19
编程技术问答社区
Kerberos aes-256加密不工作
服务器是RHEL7,Kerberos是AD(Windows).我只是KDC的客户. arcfour-hmac工作正常,但是当我将加密类型更改为AES-256并设置一个新的Keytab时,Kinit仍然可以工作,但不起作用.即使用户似乎有有效的票(在KLIST中),他也无法启动服务. 我无法访问Kerberos AD,但是它似乎配置为使用AES-256,因为最终用户(在Windows计算机上)已经在此加密类型中请求票证. 我的krb5.conf: [libdefaults] default_realm = TOTO.NET dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true default_tkt_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-
2 2024-01-19
编程技术问答社区
Kerb4j-如何从SPNEGO Token中获取角色名称?
我试图从Active Directory返回的Spnego代币中获取角色名称,以供Spring Security授权使用.我正在使用此代码. 在我的春季Web安全配置中,我有以下内容: class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Value("${app.service-principal}") private String servicePrincipal; @Value("${app.keytab-location}") private String keytabLocation; @Override protected void configure(HttpSecurity http) throws Exception { http.exceptionHandling() .authentica
多活动目录域的SSO认证
有一个 nginx服务器使用 sso authenticatio,一个域 使用 krb5 和 spnego -http-auth-nginx模块 如何配置双域身份验证? 如果可用 配置资源: /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = DOMAIN.TEST default_ccache_name = KEYRING:persistent:%{uid} [real
2 2024-01-10
编程技术问答社区
在Windows服务器上缓存Kerberos SPN?
一直在我的SSO项目中整合Kerberos身份验证.遇到了一个特殊的情况. 我制作了一个新用户,并附上了SPN.在上遵循 kinit用户名 - 然后输入密码给了我一条消息,即保存了票. kinit spn(int格式http/fqdn) - 然后输入密码给了我一条保存的消息. 一段时间后,我决定再次尝试,因此我使用了命令 setspn -D spn username 将SPN从用户名分离出来.然后,我从AD中删除了此用户(用户名). 接下来,我创建了一个新用户say username1,并按照 为该新用户注册与上述步骤相同的SPN. 现在Kinit用户名1-输入密码给出了保存票的消息,但是Kinit SPN-输入密码给了我错误 client not found in Kerberos database. 请注意,如果我使用其他(新的)spn. ,一切正常 所以问题是,Windows Server是否具有某些缓存,其中仍然存在某些链接,因此
4 2024-01-10
编程技术问答社区
SAP、IIS和SSO-Kerberos SSPI不能使用该用户账户
我的目标是让Intranet用户的凭据通过ASP.NET网页到SAP RFC. 背景 我们在广告系统中设置了SAP SSO.用户可以打开SAP GUI并登录而无需输入用户名/密码. 我们正在使用ERPCONNECT在SAP中调用RFC.如果我们为连接字符串提供凭据,则效果很好.如果网页在我们的 local 机器上运行,我们还可以使用以下代码在下面使用SSO. . Dim db As New SAPContext("ashost=sapsandbox.xxxsap.ad.xxx.com snc_mode=1 sysnr=00 SNC_QOP=9 snc_partnername=p:SAPUserAccount@xxxSAP.AD.XXX.COM SNC_LIB=C:\windows\system32\gsskrb5.dll") 当我们搬到运行IIS6的Windows 2003服务器计算机时,我们会收到以下错误. SAP_CMINIT3 : rc=20 > Con
10 2024-01-10
编程技术问答社区
Java-JNDI/活动目录/Kerberos/WebLogic服务器-密码配置
我想使用我的EJB使用Java和JNDI从Active Directory获取数据. 进行此搜索,我需要定义用户和密码. 我正在考虑在广告中创建一个服务帐户(为我的服务器). 我还将使用Kerberos协议和WebLogic服务器. 据我了解,我需要创建一个将包含此服务帐户的凭据的keytab文件.然后将在WebLogic服务器中配置此键盘文件? 因此,这意味着我必须在keytab文件和我的EJB中陈述用户名/密码(以使用JNDI 获取广告的数据).最好的方法是什么?可以动态定义keytab文件吗?这将简化更改密码,而仅在一个地方进行. 解决方案 让您的计算机加入域,使用计算机帐户启动WebLogic Server或访问机器keytab,使用 DirContextSourceFactory 您可以根据需要访问广告.
6 2024-01-10
编程技术问答社区
通过ldap的kerberos认证
我正在使用LDAP DirectoryServices.protocols从Active Directory获取用户数据的控制台应用程序.目前,我能够使用SSL,TLS和简单连接(SSL和TLS)的基本身份验证来获取数据.但是现在,我想使用SSL,TLS和简单连接的Kerberos身份验证来获取数据.我目前正在为此使用以下代码. LdapDirectoryIdentifier ldap_id = new LdapDirectoryIdentifier( host, Int32.Parse(port), true, false);
10 2024-01-10
编程技术问答社区
为什么服务器需要访问Kerberos?
我正在尝试找出如何将Active Directory用户身份验证到远程服务器. 目标是使用Spnego接收Kerberos票.然后可以解密Kerberos票,并可以估算用户的身份. 我不了解的是为什么需要服务器和Kerberos之间的访问.由于服务票包含客户端身份,并由TGS私钥加密,因此服务器不需要访问Kerberos TGS.它只能解密票证并知道用户身份. 有人可以向我解释为什么需要吗? http:///www.adopenstatic. com/cs/blogs/ken/Archive/2007/01/16/1054.aspx 如果我想要的只是客户身份,我似乎都不需要像身份提供者或WIF这样的计划. 解决方案 事实证明,这个问题有很多答案...我什至不会试图在这里介绍所有问题(部分原因是出于简洁的原因,部分原因是细节变得朦胧,我不知道记得所有人:)). 我将介绍想到的两个大巨头,但同样,还有更多. 首先,您说的是到DC的往返旅行,就好像是关于路
2 2024-01-10
编程技术问答社区
使用HttpClient的.NET核心SPNEGO Auth
我目前正在编写一个简单的.NET基于核心的客户端,以通过WebHcat与Hadoop群集进行交互,并且我正在尝试弄清楚如何像Curl或PowerShell Core一样与Spnego进行身份验证. 使用卷发,我可以像这样查询WebHcat的状态终点: curl "http://10.2.0.9:50111/templeton/v1/status" --negotiate -k -u : 也可以在PowerShell Core中执行相同的请求: $client = New-Object System.Net.WebClient; $client.UseDefaultCredentials = $true; $client.DownloadString("http://10.2.0.9:50111/templeton/v1/status"); 但是,当要在与群集同一服务器上运行以下内容时: using System; using System.Net; using
4 2024-01-10
编程技术问答社区
SPNEGO的密码认证问题
我已经配置了我的应用程序,以通过spnego和websphere使用Kerberos身份验证. 这是详细信息 krb5.conf [libdefaults] default_realm = ABC.MYCOMPANY.COM default_keytab_name = FILE:C:\IBM\WebSphere\AppServer\kerberos\MyServer.keytab default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 forwardable = true renewable = true noaddresses = true clockskew = 300 [realms] ABC.MYCOMPANY.COM = { kdc = TEST.a
4 2024-01-10
编程技术问答社区
javax.naming.AuthenticationException
我正在尝试使用我的Windows凭据. 使用我的Windows凭据. 这是我的代码: public void func() { try { URL configURL = getClass().getResource("jaas_ntlm_configuration.txt"); System.setProperty("java.security.auth.login.config", configURL.toString()); // If the application is run on NT rather than Unix, use this name String loginAppName = "MyConfig"; // Create login context LoginContext lc = new LoginContext(loginAppName, n
4 2024-01-10
编程技术问答社区
使用Windows锁屏后删除Kerboros缓存票据
无论如何,在Windows输入锁定屏幕后,是否可以阻止Kerboros缓存的票证被删除. 首次登录到Windows时,KLIST.EXE显示2张缓存的门票.但是,有一个Windows锁屏事件后,klist.exe显示了0个缓存的门票. 预先感谢. 解决方案 这是设计.无法防止Kerberos服务票在屏幕锁后清除.一旦您再次访问新的Kerberos保护资源,就会进行新的身份验证程序,并将出现新的门票.重要的是要了解Kerberos门票之间的区别 - 有两种类型 - 门票授予票(TGT)和服务票(ST).您可以确保Kerberos TGT保留在客户端缓存中,并且如果您的计算机正在参与Active Directory域和,则不会在屏幕锁之后清除被称为团体策略更改以改变行为(请参见下面的注释).如果您不是Active Directory管理员,则必须与他们联系以让他们为您执行此操作.要在屏幕锁后保留TGT,请打开组策略管理控制台编辑器,找到链接到机器的GPO,并设置策略以不需
4 2024-01-10
编程技术问答社区
用Kerberos认证时出现登录错误
我们面临一个有趣的问题.用户使用Kerberos身份验证登录应用程序.几次他们成功了,但是突然他们会面对用户登录信息的锁定,他们在屏幕上看到下面的错误 Login error: com.ibm.security.krb5.KrbException, status code: 24 message: Pre-authentication information was invalid Stack Trace : javax.security.auth.login.FailedLoginException: Login error: com.ibm.security.krb5.KrbException, status code: 24 message: Pre-authentication information was invalid at com.ibm.security.jgss.i18n.I18NException.throwFailedLoginEx
2 2024-01-10
编程技术问答社区
IIS:对不在域上的客户计算机使用Kerberos
可以对IIS8发表的网站进行身份验证的不是域名的计算机(而是在网络上),在该网站上,该网站的身份验证仅与单个提供商的" Windows认证": kerberos"(以及禁用内核模式身份验证)? 我问,因为我只是尝试这样做,但是我无法超越网站的身份验证(却独自一人试图将身份验证传递到数据库).我在对客户端的响应中看到了" www-authenticate:协商"标题,但是客户似乎只在后续(re)请求中发送了" ntlm type1:协商"(ntlmssp).要么是错误地解释Fiddler2的结果! 我正在使用Kerberos,因为大多数客户端将是域计算机,我需要将用户凭据从Web应用程序传递回数据库.我希望我能够对非域计算机进行相同的操作,并且只需提示它们的用户名/域/密码,该用户名/域/密码将经过验证并将其转换为服务器上的Kerberos票. 请注意,出于测试目的,Windows 8既是服务器又是客户端.在生产中,服务器将是Windows 2008 Server R2,
0 2024-01-10
编程技术问答社区