" principal="fayson@FAYSON.COM"; }; (可左右滑动) 注意上面标注的Client与KBHttpUtils代码中SpnegoHttpURLConnection spnego = new SpnegoHttpURLConnection("Client"); spnego.setRequestMethod("GET"); if( = null && headers.size() > 0){ headers.forEach((K,V)->spnego.setRequestProperty(K,V)) ; } spnego.connect(new URL(url),bos); in = spnego.getInputStream( ; } spnego.connect(new URL(url),bos); in = spnego.getInputStream(
SPNEGO/Kerberos支持CM和API Cloudera Manager管理控制台和API现在支持Kerberos身份认证(使用SPNEGO)。仅支持客户端使用SPNEGO(例如curl)。 Cloudera Manager的Swagger和Python SDK不支持SPNEGO。 启用SPNEGO后,基于Swagger的Java和Python SDK以及较旧的Java SDK仍然可以使用HTTP Basic Authentication进行身份认证。 如果你需要依赖已经弃用的Python客户端进行一些操作,请不要启用SPNEGO。 > "Enable SPNEGO/Kerberos Authentication for the Admin Console and API" 中勾选checkbox。
Windows提供了三种典型的SSP:Kerberos、NTLMSSP和SPNEGO。前两种分别基于我们熟悉的Kerberos和NTLM,但是SPNEGO才是默认的选项。 SPNEGO的全名为“Simple and Protected GSSAPI Negotiation Mechanism”,而GSSAPI(Generic Security Services Application SPNEGO,故名思义,就是通过协商(Negotiation)确定一种适合的GSS API。 SPNEGO在Windows下的协商机制是这样的:首选Kerberos,如果不可用则退而求其次,选用NTLM。
使用Kerberos(SPNEGO)配置身份认证 Cloudera Manager 6.3和更高版本的支持使用SPNEGO的Admin Console和API进行Kerberos身份认证。
在DAS的安装过程中,认证类型默认为DEFAULT(即:在非安全的CDH集群对应的认证类型就是NONE,在安全的CDH集群认证类型就是SPNEGO),根据实际的情况可以通过修改认证类型来访问DAS WEB SPNEGO:基于kerberos的认证方式,需要安装Kerberos客户端和配置浏览器才能访问,支持用户切换。 LDAP:基于LDAP的认证方式,可以切换登录用户来展示不同用户执行的SQL。 5.1kerberos认证方式 在安全的CDH集群中可以通过Cloudera Manager将DAS服务的用户认证方式修改为“SPNEGO”或“DEFAULT” ? 因为选择的认证类型为SPNEGO,在访问DAS的WEB页面时需要通过Kerberos的方式进行认证,因此需要在访问客户端节点上安装Kerberos客户端以及修改浏览器配置使其支持Kerberos认证。 2.DAS的认证类型分为无认证(NONE),Kerberos(SPNEGO),LDAP,Knox。不同的认证方式需要设置不同的参数来启用。不同账号只能看到自己的SQL作业。
token.openConnection(url, connConfigurator); conn.setRequestMethod(AUTH_HTTP_METHOD); conn.connect(); SPNEGO 认证 对于普通的HTTP的kerberos认证(SPNEGO),需要现在客户端登录KDC服务。
4.在hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)这里添加下面的参数 <property> <name>hbase.thrift.spnego.principal name> <value>HTTP/cdh01.hadoop.com@HADOOP.COM</value> </property><property> <name>hbase.thrift.spnego.keytab.file
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz Metalink NTLM NTLM_WB PSL SPNEGO Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz Metalink NTLM NTLM_WB PSL SPNEGO
livy.service.keytab livy/ip-172-31-21-83.ap-southeast-1.compute.internal@FAYSON.COM" kadmin.local -q "xst -k /root/spnego.service.keytab 将生成的keytab文件拷贝至livy部署服务器的/etc/security/keytabs目录下 [root@ip-172-31-16-68 ~]# scp livy.service.keytab spnego.service.keytab keytabs]# chown livy:hadoop livy.service.keytab [root@ip-172-31-21-83 keytabs]# chown livy:hadoop spnego.service.keytab /tmp/livy livy.server.auth.type = kerberos livy.server.auth.kerberos.keytab = /etc/security/keytabs/spnego.service.keytab
管理亮点 1.SPNEGO/Kerberos支持Cloudera Manager管理控制台和API,Cloudera Manager现在支持通过Kerberos进行强身份验证(使用SPNEGO)。
类似的Hadoop RPC,Hadoop HTTP web-consoles 可以被配置需要Kerberos身份认证使用HTTP SPNEGO协议(支持浏览器比如 Firefox 和【IE】 Internet The principal short 名称必须是HTTP对 Kerberos HTTP SPNEGO 规范。
--metalink Process given URLs as metalink XML file --negotiate Use HTTP Negotiate (SPNEGO proxy-digest Use Digest authentication on the proxy (H) --proxy-negotiate Use HTTP Negotiate (SPNEGO proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H) --proxy-service-name NAME SPNEGO proxy service name --service-name NAME SPNEGO service name -U, --proxy-user USER[:PASSWORD]
--metalink Process given URLs as metalink XML file --negotiate Use HTTP Negotiate (SPNEGO TYPE Private key file type for proxy (DER/PEM/ENG) (SSL) --proxy-negotiate Use HTTP Negotiate (SPNEGO proxy-tlsauthtype STRING TLS authentication type for proxy (default SRP) --proxy-service-name NAME SPNEGO proxy service name --service-name NAME SPNEGO service name -U, --proxy-user USER[:PASSWORD]
进入CM界面的Hive服务,到配置中修改配置如下: <property> <name>hive.server2.webui.use.spnego</name> <value>false<
hbase.service.keytab hbase.thrift.kerberos.principal=hbase/_HOST@DEVDIP.COM hbase.security.authentication.spnego.kerberos.keytab =/etc/security/keytabs/spnego.service.keytab hbase.security.authentication.spnego.kerberos.principal
value>root/hadoop@HADOOP.COM</value> </property> <property> <name>dfs.namenode.kerberos.internal.spnego.principal >root/hadoop@HADOOP.COM</value> </property> <property> <name>dfs.journalnode.kerberos.internal.spnego.principal
HBase Kerberos, user-based authentication required for HBase Thrift and REST clients HDFS Kerberos, SPNEGO LDAP, 自定义/可插入身份验证 Hive Metastore Kerberos Hue Kerberos, LDAP, SAML, 自定义/可插入身份验证 Impala Kerberos, LDAP, SPNEGO (Impala Web Console) Kudu Kerberos MapReduce Kerberos (also see HDFS) Oozie Kerberos, SPNEGO Pig Kerberos Search Kerberos, SPNEGO Spark Kerberos Sqoop Kerberos YARN Kerberos (also see HDFS) Zookeeper Kerberos
4.Kudu的web UI现在支持SPNEGO,这是一种通过http header传递协商来用Kerberos保护http请求的协议。 要使用SPNEGO启用授权,请设置--webserver_require_spnego命令行标志。 5.列注释现在可以存储在Kudu表中,并且可以使用AlterTable API进行更新。
url": "[***PHOENIX-URL***]:[***PHOENIX-PORT***]/", "tls": true, "connect_args": {"authentication": "SPNEGO
version>4.5.4</version> </dependency> <dependency> <groupId>net.sourceforge.spnego </groupId> <artifactId>spnego</artifactId> <version>7.0</version> </dependency