`
cd826
  • 浏览: 129057 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

由于spn授权不正确造成Spengo无法单点登录的解决

 
阅读更多

今天同事问我本来集成好的单点登录为什么突然自动登录不了,还真浪费了一个下午,终于找到原因了

 

我们的一个项目采用了Spengo(可以看这里)集成了Windows的AD进行自动登录,前一段时间还挺正常的,登录到域的用户可以自动登录到系统。这几天新增了服务,重新部署后发现用户不能够自动登录了,同事也费了好大劲检查了各种配置参数,都是没有思路。然后找到了我,我也是弄了好久终于发现是spn注册的问题造成的。

 

在注册spn时不能够同时授权给两个Windows用户,如果同时授权给了多个用户,那么Windows客户端将不再发送Spengo Token,而是替代成NT LAN manager (NTLM) token。而从Spengo源码中可以看到:

 

SpnegoAuthScheme spnegoauthscheme = getAuthScheme(httpservletrequest.getHeader("Authorization"));
        if(null == spnegoauthscheme || spnegoauthscheme.getToken().length == 0)
        {
            LOGGER.finer("Header Token was NULL");
            spnegohttpservletresponse.setHeader("WWW-Authenticate", "Negotiate");
            if(flag)
                spnegohttpservletresponse.addHeader("WWW-Authenticate", (new StringBuilder()).append("Basic realm=\"").append(s).append('"').toString());
            else
                LOGGER.finer("Basic NOT offered: Not Enabled or SSL Required.");
            spnegohttpservletresponse.setStatus(401, true);
            return null;
        }
        if(spnegoauthscheme.isNtlmToken())
        {
            LOGGER.warning("Downgrade NTLM request to Basic Auth.");
            if(spnegohttpservletresponse.isStatusSet())
                throw new IllegalStateException("HTTP Status already set.");
            if(flag && flag1)
                spnegohttpservletresponse.setHeader("WWW-Authenticate", (new StringBuilder()).append("Basic realm=\"").append(s).append('"').toString());
            else
                throw new UnsupportedOperationException("NTLM specified. Downgraded to Basic Auth (and/or SSL) but downgrade not supported.");
            spnegohttpservletresponse.setStatus(401, true);
            return null;
        } else
        {
            return spnegoauthscheme;
        }

 当是NTLM Token时系统会抛出一个Downgrade NTLM request to Basic Auth错误信息,同时返回401给客户端要求用户输入凭据,这也就造成了用户不能够自动登录。

分享到:
评论

相关推荐

    CAS5.3+windows AD域实现单点登录免身份认证.docx

    CAS(Central Authentication Service)是一种流行的开源身份验证系统,旨在提供单点登录(SSO)解决方案。Windows AD(Active Directory)则是微软公司推出的目录服务,用于管理计算机网络中的用户、组和资源。结合...

    MOSS2007单点登录

    **Microsoft Office SharePoint Server (MOSS) 2007 单点登录配置详解** 单点登录(Single Sign-On,简称 SSO)是一种网络认证技术,它允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次输入凭证...

    中兴SPN系统介绍

    中兴SPN系统是中兴通讯推出的一款系统解决方案,它旨在满足固网改造的需求,并与现有网络配合实现IMS(IP多媒体子系统)服务的开通。IMS是一种基于IP的通信架构,它能够提供多媒体服务给用户,而SPN系统则作为中兴...

    配置Domino 8.5.1使用Windows Active Directory单点登录.doc

    《配置Domino 8.5.1使用Windows Active Directory单点登录详解》 在现代企业环境中,集成多种系统以实现高效协作是常见的需求。Lotus Domino 8.5.1作为一个强大的协作平台,通过与Windows Active Directory(AD)的...

    SPN和FMI自制计算器

    在IT行业中,尤其是在汽车诊断和维修领域,SPN(System Part Number)和FMI(Failure Mode Identifier)是两个非常关键的术语。它们是用于识别车辆电子控制系统中特定故障的标准化代码。SPN通常指的是系统部件号,而...

    spn.zip_SPN_spn加密_spn密码加密

    在文件安全领域,加密是保护数据不被未经授权的用户访问的关键手段。SPN加密方法可能涉及到对TXT文件内容进行编码,以使其在未解密前看起来无意义。这种加密过程通过使用密钥来实现,只有拥有正确密钥的人才能解密并...

    密码学课程设计SPN实现

    你需要理解这些函数的工作原理,包括它们如何处理输入比特流,如何进行替换和置换操作,并且要能够自己编写测试用例来验证其正确性。 **线性分析与差分分析:** 线性分析和差分分析是两种常见的密码学攻击方法,...

    华为SPN电力承载网解决方案.pdf

    1. 电力承载网分析 2. SPN关键技术介绍 3. 电力SPN解决方案建议 基于创新以太技术,刚柔并济打造新一代SPN网络

    承载网 SPN 中兴培训教材

    承载网SPN(Slicing Packet Network)是一种专为5G网络设计的新型承载技术,它在传统的分组传输网络基础上进行了优化和扩展,以满足5G对于带宽、时延、可靠性以及网络切片等复杂需求。中兴作为全球领先的通信设备...

    SPN线性密码分析

    - **置换操作**:实现位移和置换函数,确保正确地改变比特的顺序。 - **迭代过程**:编写主循环来执行多轮替换和置换。 - **线性分析**:利用统计方法(如观察模式出现的频率)来寻找可能的线性关系,然后用...

    SPN.zip_SPN_spN52024323_spn3020387_spn加密

    标题中的"SPN.zip_SPN_spN52024323_spn3020387_spn加密" 提及的核心概念是SPN(Substitution-Permutation Network,置换-代替网络),这是一种在密码学中广泛使用的对称加密算法设计结构。SPN模式结合了替换和置换两...

    SPN设计理念和核心技术.pdf

    SPN(Slice Packet Network)设计理念和核心技术是中国移动集团推出的5G网络承载解决方案,旨在满足ToB业务的高带宽、高安全和低时延要求。SPN设计理念是将5G网络切片化,每个切片可以独立承载不同的ToB业务,提供...

    切片分组网(SPN)技术

    切片分组网(SPN,Slicing Packet Network)是一种为满足5G传输网络需求而设计的新型架构,它在4G传输网络的基础上进行了大幅度的革新。SPN技术旨在提供大带宽、低时延、高精度同步以及灵活的网络切片能力,以适应5G...

    SPN控制器手册

    SPN控制器手册详细介绍了SPN-G系列控制器的硬件选型、功能和应用范围。该系列控制器广泛应用于工程机械领域,包括伐木机械、路面设备、建筑机械、破碎设备、工业设备、农业设备、自动化应用以及凿岩机械等。本文将...

    增强版SPN代码

    密码学课程设计,增加版SPN,在原版SPN基础上增加了加解密难度,达到增强效果

    5G时代SPN与PTN融合组网建设.docx

    在SPN与PTN融合组网的过程中,还需要解决两者之间的互联问题。这不仅涉及到技术层面的兼容性和互通性,还包括管理控制层面的协调。例如,可以通过设置特定的边界设备来实现不同网络间的平滑过渡,确保数据传输的连续...

    单处理器进程调度算法实现FCFS,RR,SPN,SRT,HRRN

    在操作系统设计中,进程调度是核心功能之一,它决定了如何在单处理器环境下有效地分配CPU时间。本主题将详细探讨五种常见的进程调度算法:先来先服务(FCFS)、时间片轮转(RR)、短作业优先(SPN)、最短剩余时间...

    切片分组网(SPN)技术进展(通信技术).pptx

    切片分组网(SPN)技术进展(通信技术) SPN架构及关键技术: 1. SPN架构:融合L0~L3功能,传输层:以太网光接口通道层:轻量级TDM分组层:SDN L3组大网管控面:SDN切片管理架构 2. 关键技术: a. OIF FlexE接口...

Global site tag (gtag.js) - Google Analytics