zoukankan      html  css  js  c++  java
  • Hadoop基于Service级别的认证机制

    前言


    最近在学习Hadoop Security方面的内容,但注意了,本文今天不是介绍Kerberos认证机制的。今天分享一个Service Level的认证机制,可以说它是一种预先认证行为,比我们常说的HDFS权限验证等等都要更早一些。一句话简单地来讲,它是Service/Service,Service/Client之间建立连接时候的认证。OK,下面笔者来简单聊聊这套认证体系。

    什么是Service级别认证


    这里所提到的Service级别认证的概念来自于Hadoop项目中早期实现的一个功能。这套认证模式的初衷是为了做初始的连接验证,保证客户端与服务端的连接是正确的,客户端是被认证过有效的,合法的。然后服务端才允许后面的消息通信

    Service级别认证的维度


    现在问题来了,Service级别认证的维度具体到那个层面呢?用准确的话来描述:在每个协议的每次连接上,做用户和IP地址的验证。

    注意这里有一个很大的不同点,这里区分出了“协议”,通信“协议”在这里代表的是不同端到端的连接(在HDFS里,可能NN/DN,NN/普通Client)。也就是说不同协议间的通信连接可以有不同的认证规则,然后可以定义不同的允许访问的用户和地址列表。

    Service级别认证细节


    这里不介绍Service级别认证的具体实现,简单阐述它的一些粗略实现。根据上小节提到的认证模式,过程主要如下:

    1)管理员定义好具体协议的用户组,IP地址列表白/黑名单。
    2)服务端加载上面配置好的规则信息。
    3)客户端发起连接时,将当前的协议,地址,用户信息,附加到Connection里面。
    4)服务端监听到客户端的连接请求,从连接信息中反解析出协议,地址,用户信息,与之前加载过的规则信息做比较,判断是否合法。如果不合法,断开此次连接。

    下面是部分协议规则信息的配置文件样例:

    配置名 含义
    security.client.protocol.acl ACL for ClientProtocol, which is used by user code via the DistributedFileSystem.
    security.client.datanode.protocol.acl ACL for ClientDatanodeProtocol, the client-to-datanode protocol for block recovery.
    security.datanode.protocol.acl ACL for DatanodeProtocol, which is used by datanodes to communicate with the namenode.

    引用


    [1].https://issues.apache.org/jira/browse/HADOOP-4348
    [2].http://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html

  • 相关阅读:
    一个很棒的DiabloII研究站:)
    跳票了?又跳了!
    羊皮卷的实践第二十四章
    羊皮卷的实践第二十六章
    羊皮卷的实践第二十五章
    Timer的控件使用
    英语名言名句集锦
    Passwordstrength控件
    羊皮卷的实践第二十三章
    羊皮卷的实践第二十二章
  • 原文地址:https://www.cnblogs.com/bianqi/p/12183584.html
Copyright © 2011-2022 走看看