Simple Authentication and Security Layer 简单的认证及加密层

转载 2007年10月11日 17:59:00

SASL:Simple Authentication and Security Layer 简单的认证及加密层
 

1、客户端向服务器端发送XML流
<stream:stream to='shakespeare.lit'
     xmlns='jabber:client'
               xmlns:stream='http://etherx.jabber.org/streams'>
 
 

2、服务器返回消息
<iq type='get' to='shakespeare.lit' id='auth1'>
 <query xmlns='jabber:iq:auth'/>
</iq>
注意中间的ID,这个ID是服务器端返回给客户端的验证信息,验证信息一般是以该ID号+用户密码通过SHA1(RFC3174)算法进行操作的。也就是说客户端得到该ID和密码经过SHA1算法加密后返回给服务器。
 
 

3、客户端想服务器提交请求获取登录需要验证的字段
<iq type='get' to='shakespeare.lit' id='auth1'>
 <query xmlns='jabber:iq:auth'/>
</iq>
 
 

4、服务器返回登录需要验证的字段
<iq type='result' id='auth1'>
 <query xmlns='jabber:iq:auth'>
    <username/>
    <password/>
    <digest/> 这个digest就是上面经过SHA1算法得出的结果字段
    <resource/>
 </query>
</iq>
如果客户端发送的字段包括了用户名和IQ-GET的字段,服务器不应该返回错误消息(因为需要服务器判断当前用户名是否在使用),如果服务器不支持可插入的简单认证及密码模块,那么必须返回一个<service-unavailable/>的错误;如果客户端企图使用SASL认证但是失败,服务器必须返回<policy-violation/>错误信息
在认证过程中,jabber:iq:auth命名、用户名和资源是必须要求客户端提供的,而服务器返回的XML流中也必须提供<username/>和<resource/>这2个元素。
 
 

5、客户端提交字段内容进行验证
文本格式,非加密模式
<iq type='set' id='auth2'>
 <query xmlns='jabber:iq:auth'>
    <username>bill</username>
    <password>Calli0pe</password>
    <resource>globe</resource>
 </query>
</iq>
加密模式
<iq type='set' id='auth2'>
 <query xmlns='jabber:iq:auth'>
    <username>bill</username>
    <digest>48fc78be9ec8f86d8ce1c39c320c97c21d62334d</digest>
    <resource>globe</resource>
 </query>
</iq>
 

6、登录结果
成功
<iq type='result' id='auth2'/>
失败认证失败,可能是用户名密码不匹配或数字验证错误
<iq type='error' id='auth2'>
 <error code='401' type='auth'>
    <not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
 </error>
</iq>
失败资源冲突/错误
<iq type='error' id='auth2'>
 <error code='409' type='cancel'>
    <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
 </error>
</iq>
失败没有提供需要验证的字段
<iq type='error' id='auth2'>
 <error code='406' type='modify'>
    <not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
 </error>
</iq>

(原创)Spring security用户验证机制浅谈.

1.  首先CustomUserDetailsService需要实现UserDetailsService(org.springframework.security.core.userdetails.U...
  • d7011800
  • d7011800
  • 2013年03月19日 17:05
  • 19622

Openfire 中SASL的认证方式之:PLAIN,DIGEST-MD5,anonymous

SASL  的认证方式包括:     1. PLAIN:plain是最简单的机制,但同时也是最危险的机制,因为身份证书(登录名称与密码)是以base64字符串格式通过网络,没有任何加密保护措施。因此...
  • coding_me
  • coding_me
  • 2014年09月24日 15:53
  • 11759

spring security四种实现方式

spring security实现方式大致可以分为这几种:     1.配置文件实现,只需要在配置文件中指定拦截的url所需要权限、配置userDetailsService指定用户名、密码、对应权限,...
  • bao19901210
  • bao19901210
  • 2016年09月18日 17:37
  • 23499

Apache Security-3 Digest Authentication(摘要认证)简介及实战

说明 准备工作 需要哪些模块 摘要认证Digest Authentication 1 摘要认证如何工作 2 实战 小结1. 说明本文系我的"Web Server & Web Technology (W...
  • u014303046
  • u014303046
  • 2017年08月09日 16:02
  • 531

[置顶] SSL(Secure Sockets Layer 加密套接字协议层)安全认证

SSL(Secure Sockets Layer 加密套接字协议层) SSL是一个安全协议,它提供使用TCP/IP的通信应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用SSL来实现安...
  • lan12334321234
  • lan12334321234
  • 2017年04月11日 11:50
  • 204

Apache Security-2-Basic Authentication(基本认证)简介及实战练习

说明 准备工作 需要哪些模块 基本认证Basic Authentication 1 basic authentication是如何工作的 2 实战 答疑 1 如何退出登陆 2 如何更改密码提示框的样式...
  • u014303046
  • u014303046
  • 2017年08月09日 11:46
  • 524

Chapter 2 User Authentication, Authorization, and Security(1):选择Windows和SQL 身份验证

SQL Server 有两种身份验证:一种是WIndows身份验证,Windows身份验证使用Windows上的帐号,并利用其安全令牌进行验证。一种是SQL Server验证,使用SQL Server...
  • DBA_Huangzj
  • DBA_Huangzj
  • 2014年08月18日 11:13
  • 5210

Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户

登录名用于授权并访问服务器资源,如果需要访问数据库,需要对数据库内部的用户进行映射。用户是数据库级别的安全主体,访问数据库资源是授予给用户,而不是登录名。...
  • DBA_Huangzj
  • DBA_Huangzj
  • 2014年09月01日 11:10
  • 6399

Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色

从SQL Server 2012开始,不再限制于使用固定服务器角色,可以创建自定义的角色,允许你预设特殊权限。...
  • DBA_Huangzj
  • DBA_Huangzj
  • 2014年09月01日 11:03
  • 3850

Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库

在SQL Server中,安全性分为两级:服务器级别和数据库级别。服务器的登录名被映射到数据库中的一个用户。身份验证在登录名连接到服务器时发生。如果数据库中有这个登录名所对应的用户,那么这个登录名就能...
  • DBA_Huangzj
  • DBA_Huangzj
  • 2014年09月22日 11:12
  • 4018
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Simple Authentication and Security Layer 简单的认证及加密层
举报原因:
原因补充:

(最多只允许输入30个字)