Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-19822

Add infra-solr-plugin for authorization (with Kerberos)

    XMLWordPrintableJSON

Details

    Description

      Problem:
      If an ambari cluster is secured and kerberos authentication is used for Solr, we need (default) authorizations as well to make sure only the specific service users (ranger, atlas, logsearch) can access their collections (and solr user as well)

      Solution:
      Although RuleBasedAuthorizationPlugin (https://cwiki.apache.org/confluence/display/solr/Rule-Based+Authorization+Plugin) seems to be a good solution here, to map default users to default permissions, unfortunately, permissions and roles using principal name for mapping (not username) from the authentication tokens. Also Solr name rules applied on the username and not on the principal, therefore we need the fully qualified hostname as well in the role-permission mapping. In order to avoid that issue, I added an own plugin (org.apache.ambari.infra.security.InfraRuleBasedAuthorizationPlugin), to map users with <name>@<DOMAIN> format.
      Also we should keep the old behaviour of RuleBasedAuthorizationPlugin, so user can still able to define user-role mappings with fully qualified names.
      In case of we need strict host validations i added 2 new json property for that:
      1. { "user-host" :

      {"<username>" : [<hostnames array>]}

      }
      2. {"user-host-regex" :

      {"<username>" : "hostname-regex"}

      }

      user-host-regex has higher precedence than user-host

      Attachments

        1. AMBARI-19822.patch
          60 kB
          Oliver Szabo

        Issue Links

          Activity

            People

              oleewere Oliver Szabo
              oleewere Oliver Szabo
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 48h
                  48h
                  Remaining:
                  Remaining Estimate - 48h
                  48h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified