wse说谈(3)——策略,用户令牌

简介: 启用策略之用户令牌(UsernameToken) 实现一下用户令牌策略(UsernameToken) 这里详细的说一下: 服务端配置 (一)建立web网站(略) (二)配置WSE (1)在常规(general)选项卡上勾选其中的两项 (2)策略设置 在策略(Policy)选项卡中设置...

启用策略之用户令牌(UsernameToken

实现一下用户令牌策略(UsernameToken

这里详细的说一下:

服务端配置

(一)建立web网站(略)

(二)配置WSE

1)在常规(general)选项卡上勾选其中的两项

2)策略设置

在策略(Policy)选项卡中设置,这个设置很容易,勾选Enable Policy,添加策略文件:名字为ServicePolicy

步骤(上传图片比较麻烦,所以直接文字表达):

服务器策略——客户端验证方法选择Username——用户和角色这里不勾选——消息保护级别默认就行——服务器证书这里不勾选在代码中指定证书,然后选择证书——完成。

3)用户令牌设置

这里设置比较简单,添加从UsernameTokenManager派生的类CustomUsernameTokenManager

这里给个全的:

protected override string AuthenticateToken(UsernameToken token)

{

    return "111";

}

它就返回密码是:111。如果客户端的的用户令牌密码与这个不符合,那么服务就会拒绝客户访问。这个验证令牌的方法就是这个意思。它就是验证用户令牌中的密码,而用于比较的密码就是这个方法返回的字符串。

 

客户端配置

1)策略设置方法与服务端设置相似,但该选择客户端的地方要选择客户端选项(这个应该容易理解吧)。

2)请求服务时,要设置用户令牌

3)请求服务时,不要忘记激活用户策略

下边给出一段完整的代码:

public void Test()

{

FirstInstance.WebServiceWse client =

 new FirstInstance.WebServiceWse();

 

    UsernameToken token = null;

    token = new UsernameToken("qq","111");

    client.SetClientCredential(token);

    client.SetPolicy("ClientPolicy");

 

    Console.WriteLine(client.HelloWorld("x"));

}

说明一下:

在这段代码中,设置的用户令牌密码为31

 

注意:配置时要注意异常错误,这些异常错误这里不提了。只要是一步步的进行,注意其中的安全选项冲突,则没有问题。

 

现在对消息的保护设置为None,然后,看看令牌在soap消息中的情况,这里只给出其中的一段:

<wsse:UsernameToken>

  <wsse:Username>qq</wsse:Username>

  <wsse:Password Type="…PasswordDigest">

    0nAwMqEiHeF+uCbMTRL0qfQG2Mo=

  </wsse:Password>

  <wsse:Nonce>fBduFda3nmZboNcsQDBWig==</wsse:Nonce>

  <wsu:Created>2010-04-23T09:19:38Z</wsu:Created>

</wsse:UsernameToken>

 

这里可以看到在无消息保护级别时(消息保护选择None):用户令牌其中的两个元素:用户名和用户密码,用户名是qq,而密码以数字签名格式存在。有关签名(数字签名)及散列相关内容可见我的随笔:

http://www.cnblogs.com/jams742003/archive/2010/04/09/1708012.html

http://www.cnblogs.com/jams742003/archive/2010/04/09/1708315.html

 

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
存储 安全 API
深入了解OAuth 2.0:探究身份验证与授权的新标准
OAuth 2.0是一种开放标准的协议,用于安全地授权第三方应用程序访问用户的资源,而无需共享用户的凭据。这一协议在互联网上广泛应用,为许多应用和服务提供了强大的身份验证和授权机制。本文将深入介绍OAuth 2.0,探讨其工作原理、关键概念和常见用途。
|
3月前
|
JSON 安全 API
|
5月前
|
JSON 监控 安全
构建安全的用户身份验证系统
【6月更文挑战第21天】 本文介绍了如何使用Flask和JWT构建安全的用户身份验证系统。JWT是一种流行的网络身份验证标准,由头部、载荷和签名三部分组成。在Flask中,通过安装`Flask`和`PyJWT`库,可以创建一个简单的身份验证系统,包括登录路由和受保护的资源路由。文章提供了示例代码,展示如何实现登录、验证JWT令牌、用户注册和令牌刷新。同时,强调了使用HTTPS、日志记录和安全性增强措施的重要性,以确保应用程序的安全性。文章结尾提醒开发者持续改进和评估安全性,遵循最佳实践。
34 0
|
存储 安全 前端开发
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
这篇文章讨论了认证和授权的概念,并探讨了设计权限认证框架的原则。它还比较了Cookie和Session的区别,并探讨了处理分布式部署时的Session保存问题。此外,文章还介绍了CSRF攻击及其防范方法,以及OAuth2.0、JWT令牌和SSO的概念。最后,文章提出了设计开放授权平台时需要考虑的因素。
198 0
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
|
存储 运维 安全
用户身份验证真的很简单吗
你现在要建立一个系统。无论系统的功能如何,用户身份验证都是始终存在的一个功能。实现它看起来应该很简单——只需“拖动”一些现成的身份验证模块,或使用一些基本选项(例如 Spring Security)对其进行配置,就完成了。
119 0
用户身份验证真的很简单吗
Jasny SSO如何处理SSO令牌过期和无效的情况?
Jasny SSO如何处理SSO令牌过期和无效的情况?
237 0
如何实现用户注销并清除SSO令牌?
如何实现用户注销并清除SSO令牌?
128 0
|
存储 缓存 数据安全/隐私保护
Jasny SSO是如何处理用户会话的?底层原理是什么?
Jasny SSO是如何处理用户会话的?底层原理是什么?
Jasny SSO是否支持多种身份提供者?
Jasny SSO是否支持多种身份提供者?
|
API 数据安全/隐私保护
Yii2.0框架中如何进行身份验证和授权操作?支持哪些认证方式和授权方式?
Yii2.0框架中如何进行身份验证和授权操作?支持哪些认证方式和授权方式?
204 0