kirby zhou created RANGER-3602:
----------------------------------

             Summary: Can not access RestAPI when Ranger authenticated with 
Kerberos.
                 Key: RANGER-3602
                 URL: https://issues.apache.org/jira/browse/RANGER-3602
             Project: Ranger
          Issue Type: Bug
          Components: admin
    Affects Versions: 2.2.0
            Reporter: kirby zhou


When I configured Ranger with Kerberos. I can not access its Restful API with 

ranger.admin.allow.unauthenticated.access = false

 
{code:java}
# ranger.admin.allow.unauthenticated.access = false in ranger-admin-site.xml
]$ curl -v 'http://localhost:6080/service/plugins/policies/download/kmsdev' 
< HTTP/1.1 200 OK

# ranger.admin.allow.unauthenticated.access = true in ranger-admin-site.xml
]$ kinit freeman@SA 
Password for freeman@SA: 
]$ klist
Ticket cache: KCM:1000
Default principal: freeman@SA
]$ curl -v -u: --negotiate 
'http://localhost:6080/service/plugins/policies/download/kmsdev'
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 6080 (#0)
> GET /service/plugins/policies/download/kmsdev HTTP/1.1
> Host: localhost:6080
> User-Agent: curl/7.61.1
> Accept: */*
> 
< HTTP/1.1 404 Not Found
< Content-Length: 0
< Date: Thu, 27 Jan 2022 12:30:26 GMT
< Server: Apache Ranger
< 
* Connection #0 to host localhost left intact{code}
 

 

CURL even do not have chance to do Authenticaion.

 

My configurations:

core-site.xml

 
{code:java}
<configuration>
  <property>
    <name>hadoop.security.authentication</name>
    <value>kerberos</value>
  </property>
  <property>
    <name>hadoop.security.authorization</name>
    <value>true</value>
  </property>
  <property>
    <name>hadoop.security.auth_to_local</name>
    <value>
RULE:[1:$1@$0](^.*$)s/^(.*)@.*$/$1/
RULE:[2:$1@$0](^.*$)s/^(.*)@.*$/$1/
DEFAULT
    </value>
  </property>
</configuration> {code}
 

 

ranger-admin-kms.xml

 
{code:java}
<configuration>
...
       <property>
                <name>ranger.service.https.attrib.ssl.enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>ranger.service.host</name>
                <value>localhost</value>
        </property>
        <property>
                <name>ranger.service.http.port</name>
                <value>6080</value>
        </property>

       <property>
                <name>ranger.admin.kerberos.keytab</name>
                
<value>/sensorsdata/main/program/rogue/ranger_admin/conf/ranger.keytab</value>
        </property>
        <property>
                <name>ranger.spnego.kerberos.principal</name>
                <value>HTTP/kirbytest01.sa@SA</value>
        </property>
        <property>
                <name>ranger.spnego.kerberos.keytab</name>
                
<value>/sensorsdata/main/program/rogue/ranger_admin/conf/ranger.keytab</value>
        </property>
        <property>
                <name>ranger.lookup.kerberos.principal</name>
                <value>rangerlookup/kirbytest01.sa@SA</value>
        </property>
        <property>
                <name>ranger.lookup.kerberos.keytab</name>
                
<value>/sensorsdata/main/program/rogue/ranger_admin/conf/ranger.keytab</value>
        </property>

        <property>
                <name>ranger.admin.allow.unauthenticated.access</name>
                <value>false</value>
                <!-- it is default -->
        </property>
...
</configuration> {code}
 

Workaround:

set "ranger.admin.allow.unauthenticated.access" = "true" in 
ranger-admin-site.xml 

 

I have no idea now.

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to