实现身份认证
2017-10-23 00:00
295 查看
身份认证的实现
当分布式系统的各个组件连接到系统时,身份认证引导系统的组件通过一种安全方式来识别各个组件.所有的组件使用同样的身份认证机制.身份认证是怎样工作的
当一个组件初始化连接到分布式系统,SecurityManager.authenticate方法就会被调用.这个组件提供它的证书以参数的方式传给authenticate方法.假设这个证书有两个属性:security-username和security-password。authenticate方法预期要么返回一个身份对象,要么抛出AuthenticationFailedException异常。一个设计良好的authenticate方法会获得用户密码的方法以便比对证书。
Server是怎样生成证书的
为了连接有身份验证的locator进行连接,server端需要设置其证书。证书有两个属性:security-username和security-password.这里有两种方法来完成:server启动的时候会读取gfsecurity.properties文件,读取里面的security-username和security-password.例如
security-username=admin security-password=xyz1234
用户名和密码都是以明文形式存储,所有gfsecurity.properties文件被系统权限严格限制.
为server实现AuthInitialize接口的getCredentials方法.这个回调方法的位置在security-peer-auth-init属性中定义.如
security-peer-auth-init=com.example.security.MyAuthInitialize
这个getCredentials方法的可能会从别的方式途径如数据库等资源中获得security-username和security-password属性.
Gateway发送者和接受者作为他们服务端的成员进行通信,因此,服务端证书就是gateway发送者和接受者见的证书.
缓存客户端怎样设置证书
为了链接有身份认证的locator或server,客户端也需要设置其证书.为客户端实现AuthInitialize接口的getCredentials方法.这个回调定义在
security-client-auth-init
security-client-auth-init=com.example.security.ClientAuthInitialize
这个getCredentials方法的可能会从别的方式途径如数据库等资源中获得security-username和security-password属性.或者提示输入获得值.
其他组件怎样设置证书
gfsh在调用gfsh connect命令时提示输入用户名密码.Pulse在启动时提示输入用户名密码;
由于REST API是无状态的,web应用或其他组件通过REST API与server或者locator对话时通过彼此间的身份验证.请求的头部需要包含security-username和security-password的属性.
实现SecurityManager接口
完成一下步骤来实现对locator或server的身份认证.选择一种身份认证算法.在身份认证例子中存储了用户名密码对来代表所有连接进系统的组件.这种简化的算法会在用户名和密码通过了authenticate方法的情况下返回用户名作为身份标志.
定义security-manager属性.详见通过定义属性开启安全机制一节.
实现securityManager接口的authenticate方法
定义实现了身份认证算法需要的外部的资源.
相关文章推荐
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
- 使用HttpMoudle和IPrincipal实现自定义身份及权限认证
- 使用USB Key(加密狗)实现身份认证
- 一种基于主板BIOS的身份认证方案及实现 分类: arm-linux-Ubuntu windows驱动程序WDF 2015-05-11 11:02 372人阅读 评论(1) 收藏
- 学习Shiro——采用jdbcRealm实现身份认证
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
- 身份认证和访问控制实现原理
- httpd2.2实现身份认证、https及页面压缩
- 基于X.509证书和SSL协议的身份认证过程实现
- 在PHP中实现用户身份认证两种方法
- Sprint Boot使用OAuth和JWT实现身份认证【二】
- SpringMVC配置拦截器实现身份认证
- 一种基于主板BIOS的身份认证方案及实现
- PHP中对用户身份认证实现两种方法
- OAuth 2.0 构建微服务身份认证(二):java实现过程
- 使用内嵌IFrame,处理系统跨域身份认证的方案与实现
- 一种基于主板BIOS的身份认证方案及实现
- 能实现身份认证的EMAIL发送方法
- 转:实例学习PHP程序对用户身份认证实现两种方法
- 在.NET下如何用WebService实现身份认证,及如何跟踪用户的访问[链接]