[HADOOP] Kerberos를 사용한 Hadoop 웹 인증
HADOOPKerberos를 사용한 Hadoop 웹 인증
kerberos를 사용하여 hadoop을 구성했지만 모든 것이 잘 작동하고 hdfs를 탐색하고 작업을 제출할 수 있습니다. 그러나 http 웹 인증에 실패했습니다.
나는 HTTPSNEGO를 지원하는 cdh3u2에서 hadoop-0.20.2를 사용합니다.
core-site.xml의 HTTP 인증 관련 구성은 다음과 같습니다.
<!-- HTTP web-consoles Authentication -->
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
<name>hadoop.http.authentication.type</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.http.authentication.token.validity</name>
<value>36000</value>
</property>
<property>
<name>hadoop.http.authentication.signature.secret.file</name>
<value>/home/hadoop/hadoop/conf/http-secret-file</value>
</property>
<property>
<name>hadoop.http.authentication.cookie.domain</name>
<value></value>
</property>
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
<property>
<name>hadoop.http.authentication.kerberos.principal</name>
<value>HTTP/hz169-91.i.site.com@I.NETEASE.COM</value>
</property>
<property>
<name>hadoop.http.authentication.kerberos.keytab</name>
<value>/home/hadoop/hadoop/conf/http.keytab</value>
</property>
</configuration>
시작 중에 http 인증이 성공했습니다.
2011-11-15 15:43:59,106 INFO org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler: Initialized, principal [HTTP/hz169-91.i.site.com@I.NETEASE.COM] from keytab [/home/hadoop/hadoop/conf/http.keytab]
코드를 살펴본 후, 인증 필터가 doFilter 동안 null 토큰을 얻음을 알았습니다. 인증 (아래 코드)이 시작되지만 httpservletrequest의 인증이 null이므로 내 페이지를 다시로드 할 때마다 하나의 로그가 나타납니다.
2011-11-15 15:47:52,190 WARN org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler: SPNEGO starting
// org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler
public AuthenticationToken authenticate(HttpServletRequest request, final HttpServletResponse response)
throws IOException, AuthenticationException {
AuthenticationToken token = null;
String authorization = request.getHeader(KerberosAuthenticator.AUTHORIZATION);
if (authorization == null || !authorization.startsWith(KerberosAuthenticator.NEGOTIATE)) {
response.setHeader(KerberosAuthenticator.WWW_AUTHENTICATE, KerberosAuthenticator.NEGOTIATE);
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
if (authorization == null) {
LOG.warn("SPNEGO starting");
} else {
LOG.warn("'" + KerberosAuthenticator.AUTHORIZATION + "' does not start with '" +
KerberosAuthenticator.NEGOTIATE + "' : {}", authorization);
}
구성 오류가 있거나 브라우저가 SPNEGO를 지원하지 않습니다. 우분투 11.04에서 Chrome v16을 사용합니다.
아무도 내가 알아낼 수있는 단서가 있습니까?
감사.
해결법
-
==============================
1.첫째, SPNNEGO 용 Hadoop 웹 콘솔을 구성하는 방법에 대한 전체 예제를 게시 해 주셔서 감사합니다. 좋은 예를 찾는 데 어려움이 있습니다.
첫째, SPNNEGO 용 Hadoop 웹 콘솔을 구성하는 방법에 대한 전체 예제를 게시 해 주셔서 감사합니다. 좋은 예를 찾는 데 어려움이 있습니다.
당신의 예제는 설정 파일에 대한 경로를 수정 한 후에 작동합니다 (hadoop.http.authentication.signature.secret.file은 / dev / random에서 임의의 바이트를 가져 와서 만들었습니다. 그 이론을 뒷받침하는 어떠한 문서도 찾을 수 없다).
Chrome은 버전 6.0.472 이상의 SPNNEGO를 지원합니다. 그러나 Linux 및 OSX에서는 여기에 문서화 된대로 사용할 수있는 서버 목록을 전달해야합니다. 그래서, 크롬을 시작할 때 * - auth-server-whitelist = "* example.com, * foobar.com, baz"를 cmdline에 추가하십시오.
이것을 디버깅하는 또 다른 방법은 간단한 브라우저를 사용하는 것입니다. 컬이 GSS 협상을 지원한다면 컬을 권하고 싶습니다. curl --version을 실행하여 확인하십시오.
$ curl --version curl 7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 Protocols: tftp ftp telnet dict ldap ldaps http file https ftps Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
GSS-Negotiate가 기능 목록에 있으면 컬을 사용하여 예를 들어 namenode 웹 콘솔에 액세스 할 수 있습니다.
$ curl -v -u foo --negotiate http://your.namenode.tld:50070
호스트 암호를 묻는 메시지가 표시되면 enter를 누르십시오.
이렇게하면 클라이언트와 서버간에 일어나는 일에 대해 더 잘 이해할 수 있습니다.
from https://stackoverflow.com/questions/8133256/hadoop-web-authentication-using-kerberos by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] FAILED : 메타 데이터 오류 : java.lang.RuntimeException : org.apache.hadoop.hive.metastore.HiveMetaStoreClient를 인스턴스화 할 수 없습니다. (0) | 2019.06.19 |
---|---|
[HADOOP] hdfs 용량을 늘릴 수있는 방법 (0) | 2019.06.19 |
[HADOOP] Apache Mahout의 벡터화 (0) | 2019.06.19 |
[HADOOP] 매개 변수로 하이브에 뷰 만들기 (0) | 2019.06.19 |
[HADOOP] Hadoop 2.6.0 : 설치 후 기본 오류 "MRAppMaster 시작" (0) | 2019.06.19 |