Kerberos 를 켠 뒤 HDFS NameNode · HBase Master · YARN ResourceManager · JobHistory Server 웹 UI 가 401 이나 인증 실패로 열리지 않는다.
"Require Authentication for HTTP Web Consoles" 가 켜지면 웹 UI 가 SPNEGO(HTTP Kerberos)를 요구한다. 브라우저가 SPNEGO 협상을 하도록 신뢰 도메인을 지정해야 하고, 클라이언트 PC 에도 유효한 Kerberos 티켓이 있어야 한다.
about:config 에서 network.negotiate-auth.trusted-uris 에 대상 호스트명이나 도메인(.example.com)을 넣고, network.auth.use-sspi 가 true 면 false 로 바꾼다.
인터넷 옵션 → 보안 → Local Intranet → 사이트에서 "Include all local (intranet) sites not listed in other zones" 와 "Include all sites that bypass the proxy server" 를 체크하고, 고급에서 대상 도메인을 추가한다. 사용자 인증은 "Automatic logon only in Intranet zone" 으로 둔다.
google-chrome --auth-server-allowlist="*.example.com" --auth-negotiate-delegate-allowlist="*.example.com"
Windows 클라이언트가 AD 도메인에 가입돼 있으면 로그온 티켓이 그대로 쓰인다. 도메인 밖 PC 는 MIT Kerberos for Windows 로 kinit 하거나 리눅스 게이트웨이에서 브라우저를 띄워야 한다.
CM → 해당 서비스 → 구성에서 "Require Authentication for HTTP Web Consoles"(hadoop.http.authentication.*)를 끈다. 편하지만 UI 가 인증 없이 열리므로 망 분리 등 다른 보호가 있을 때만 쓴다.
<!-- core-site.xml -->
<property>
<name>hadoop.http.authentication.type</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.http.authentication.kerberos.principal</name>
<value>HTTP/_HOST@EXAMPLE.COM</value>
</property>
<property>
<name>hadoop.http.authentication.kerberos.keytab</name>
<value>/var/run/cloudera-scm-agent/process/.../hadoop.keytab</value>
</property>
HTTP/<fqdn>@REALM principal 이 keytab 에 있는지 klist -kt 로 확인한다. 접속 URL 은 인증서 · principal 과 맞게 IP 가 아니라 FQDN 으로 쓴다. yarn.http.policy 가 HTTPS_ONLY 면 HTTPS 포트로 접속해야 한다.