"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1828],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,h=p["".concat(s,".").concat(m)]||p[m]||c[m]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},6192:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var r=n(87462),a=n(63366),i=(n(67294),n(3905)),o=["components"],l={id:"druid-kerberos",title:"Kerberos"},s=void 0,d={unversionedId:"development/extensions-core/druid-kerberos",id:"development/extensions-core/druid-kerberos",title:"Kerberos",description:"\x3c!--",source:"@site/docs/27.0.0/development/extensions-core/druid-kerberos.md",sourceDirName:"development/extensions-core",slug:"/development/extensions-core/druid-kerberos",permalink:"/docs/27.0.0/development/extensions-core/druid-kerberos",draft:!1,tags:[],version:"current",frontMatter:{id:"druid-kerberos",title:"Kerberos"}},u={},p=[{value:"Configuration",id:"configuration",level:2},{value:"Creating an Authenticator",id:"creating-an-authenticator",level:3},{value:"Properties",id:"properties",level:3},{value:"<code>druid.auth.authenticator.kerberos.excludedPaths</code>",id:"druidauthauthenticatorkerberosexcludedpaths",level:3},{value:"Auth to Local Syntax",id:"auth-to-local-syntax",level:3},{value:"Increasing HTTP Header size for large SPNEGO negotiate header",id:"increasing-http-header-size-for-large-spnego-negotiate-header",level:3},{value:"Configuring Kerberos Escalated Client",id:"configuring-kerberos-escalated-client",level:2},{value:"Accessing Druid HTTP end points when kerberos security is enabled",id:"accessing-druid-http-end-points-when-kerberos-security-is-enabled",level:2},{value:"Accessing Coordinator or Overlord console from web browser",id:"accessing-coordinator-or-overlord-console-from-web-browser",level:2},{value:"Sending Queries programmatically",id:"sending-queries-programmatically",level:2}],c={toc:p},m="wrapper";function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,i.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Apache Druid Extension to enable Authentication for Druid Processes using Kerberos.\nThis extension adds an Authenticator which is used to protect HTTP Endpoints using the simple and protected GSSAPI negotiation mechanism ",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/SPNEGO"},"SPNEGO"),".\nMake sure to ",(0,i.kt)("a",{parentName:"p",href:"/docs/27.0.0/configuration/extensions#loading-extensions"},"include")," ",(0,i.kt)("inlineCode",{parentName:"p"},"druid-kerberos")," in the extensions load list."),(0,i.kt)("h2",{id:"configuration"},"Configuration"),(0,i.kt)("h3",{id:"creating-an-authenticator"},"Creating an Authenticator"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},'druid.auth.authenticatorChain=["MyKerberosAuthenticator"]\n\ndruid.auth.authenticator.MyKerberosAuthenticator.type=kerberos\n')),(0,i.kt)("p",null,"To use the Kerberos authenticator, add an authenticator with type ",(0,i.kt)("inlineCode",{parentName:"p"},"kerberos"),' to the authenticatorChain. The example above uses the name "MyKerberosAuthenticator" for the Authenticator.'),(0,i.kt)("p",null,"Configuration of the named authenticator is assigned through properties with the form:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"druid.auth.authenticator.<authenticatorName>.<authenticatorProperty>\n")),(0,i.kt)("p",null,'The configuration examples in the rest of this document will use "kerberos" as the name of the authenticator being configured.'),(0,i.kt)("h3",{id:"properties"},"Properties"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Property"),(0,i.kt)("th",{parentName:"tr",align:null},"Possible Values"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"required"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.auth.authenticator.kerberos.serverPrincipal")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"HTTP/_HOST@EXAMPLE.COM")),(0,i.kt)("td",{parentName:"tr",align:null},"SPNEGO service principal used by druid processes"),(0,i.kt)("td",{parentName:"tr",align:null},"empty"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.auth.authenticator.kerberos.serverKeytab")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"/etc/security/keytabs/spnego.service.keytab")),(0,i.kt)("td",{parentName:"tr",align:null},"SPNego service keytab used by druid processes"),(0,i.kt)("td",{parentName:"tr",align:null},"empty"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.auth.authenticator.kerberos.authToLocal")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"RULE:[1:$1@$0](druid@EXAMPLE.COM)s/.*/druid DEFAULT")),(0,i.kt)("td",{parentName:"tr",align:null},"It allows you to set a general rule for mapping principal names to local user names. It will be used if there is not an explicit mapping for the principal name that is being translated."),(0,i.kt)("td",{parentName:"tr",align:null},"DEFAULT"),(0,i.kt)("td",{parentName:"tr",align:null},"No")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.auth.authenticator.kerberos.cookieSignatureSecret")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"secretString")),(0,i.kt)("td",{parentName:"tr",align:null},"Secret used to sign authentication cookies. It is advisable to explicitly set it, if you have multiple druid nodes running on same machine with different ports as the Cookie Specification does not guarantee isolation by port."),(0,i.kt)("td",{parentName:"tr",align:null},"Random value"),(0,i.kt)("td",{parentName:"tr",align:null},"No")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.auth.authenticator.kerberos.authorizerName")),(0,i.kt)("td",{parentName:"tr",align:null},"Depends on available authorizers"),(0,i.kt)("td",{parentName:"tr",align:null},"Authorizer that requests should be directed to"),(0,i.kt)("td",{parentName:"tr",align:null},"Empty"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")))),(0,i.kt)("p",null,"As a note, it is required that the SPNego principal in use by the druid processes must start with HTTP (This specified by ",(0,i.kt)("a",{parentName:"p",href:"https://tools.ietf.org/html/rfc4559"},"RFC-4559"),') and must be of the form "HTTP/_HOST@REALM".\nThe special string _HOST will be replaced automatically with the value of config ',(0,i.kt)("inlineCode",{parentName:"p"},"druid.host")),(0,i.kt)("h3",{id:"druidauthauthenticatorkerberosexcludedpaths"},(0,i.kt)("inlineCode",{parentName:"h3"},"druid.auth.authenticator.kerberos.excludedPaths")),(0,i.kt)("p",null,"In older releases, the Kerberos authenticator had an ",(0,i.kt)("inlineCode",{parentName:"p"},"excludedPaths")," property that allowed the user to specify a list of paths where authentication checks should be skipped. This property has been removed from the Kerberos authenticator because the path exclusion functionality is now handled across all authenticators/authorizers by setting ",(0,i.kt)("inlineCode",{parentName:"p"},"druid.auth.unsecuredPaths"),", as described in the ",(0,i.kt)("a",{parentName:"p",href:"/docs/27.0.0/operations/auth"},"main auth documentation"),"."),(0,i.kt)("h3",{id:"auth-to-local-syntax"},"Auth to Local Syntax"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"druid.auth.authenticator.kerberos.authToLocal")," allows you to set a general rules for mapping principal names to local user names.\nThe syntax for mapping rules is ",(0,i.kt)("inlineCode",{parentName:"p"},"RULE:\\[n:string](regexp)s/pattern/replacement/g"),". The integer n indicates how many components the target principal should have. If this matches, then a string will be formed from string, substituting the realm of the principal for $0 and the nth component of the principal for $n. e.g. if the principal was druid/admin then ",(0,i.kt)("inlineCode",{parentName:"p"},"\\[2:$2$1suffix]")," would result in the string ",(0,i.kt)("inlineCode",{parentName:"p"},"admindruidsuffix"),".\nIf this string matches regexp, then the s//","[","g] substitution command will be run over the string. The optional g will cause the substitution to be global over the string, instead of replacing only the first match in the string.\nIf required, multiple rules can be joined by newline character and specified as a String."),(0,i.kt)("h3",{id:"increasing-http-header-size-for-large-spnego-negotiate-header"},"Increasing HTTP Header size for large SPNEGO negotiate header"),(0,i.kt)("p",null,"In Active Directory environment, SPNEGO token in the Authorization header includes PAC (Privilege Access Certificate) information,\nwhich includes all security groups for the user. In some cases when the user belongs to many security groups the header to grow beyond what druid can handle by default.\nIn such cases, max request header size that druid can handle can be increased by setting ",(0,i.kt)("inlineCode",{parentName:"p"},"druid.server.http.maxRequestHeaderSize")," (default 8KiB) and ",(0,i.kt)("inlineCode",{parentName:"p"},"druid.router.http.maxRequestBufferSize")," (default 8KiB)."),(0,i.kt)("h2",{id:"configuring-kerberos-escalated-client"},"Configuring Kerberos Escalated Client"),(0,i.kt)("p",null,"Druid internal processes communicate with each other using an escalated http Client. A Kerberos enabled escalated HTTP Client can be configured by following properties -"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Property"),(0,i.kt)("th",{parentName:"tr",align:null},"Example Values"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"required"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.escalator.type")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"kerberos")),(0,i.kt)("td",{parentName:"tr",align:null},"Type of Escalator client used for internal process communication."),(0,i.kt)("td",{parentName:"tr",align:null},"n/a"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.escalator.internalClientPrincipal")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid@EXAMPLE.COM")),(0,i.kt)("td",{parentName:"tr",align:null},"Principal user name, used for internal process communication"),(0,i.kt)("td",{parentName:"tr",align:null},"n/a"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.escalator.internalClientKeytab")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"/etc/security/keytabs/druid.keytab")),(0,i.kt)("td",{parentName:"tr",align:null},"Path to keytab file used for internal process communication"),(0,i.kt)("td",{parentName:"tr",align:null},"n/a"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"druid.escalator.authorizerName")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"MyBasicAuthorizer")),(0,i.kt)("td",{parentName:"tr",align:null},"Authorizer that requests should be directed to."),(0,i.kt)("td",{parentName:"tr",align:null},"n/a"),(0,i.kt)("td",{parentName:"tr",align:null},"Yes")))),(0,i.kt)("h2",{id:"accessing-druid-http-end-points-when-kerberos-security-is-enabled"},"Accessing Druid HTTP end points when kerberos security is enabled"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"To access druid HTTP endpoints via curl user will need to first login using ",(0,i.kt)("inlineCode",{parentName:"p"},"kinit")," command as follows -"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre"},"kinit -k -t <path_to_keytab_file> user@REALM.COM\n"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Once the login is successful verify that login is successful using ",(0,i.kt)("inlineCode",{parentName:"p"},"klist")," command")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Now you can access druid HTTP endpoints using curl command as follows -"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre"},"curl --negotiate -u:anyUser -b ~/cookies.txt -c ~/cookies.txt -X POST -H'Content-Type: application/json' <HTTP_END_POINT>\n")),(0,i.kt)("p",{parentName:"li"},"e.g to send a query from file ",(0,i.kt)("inlineCode",{parentName:"p"},"query.json")," to the Druid Broker use this command -"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre"},"curl --negotiate -u:anyUser -b ~/cookies.txt -c ~/cookies.txt -X POST -H'Content-Type: application/json'  http://broker-host:port/druid/v2/?pretty -d @query.json\n")),(0,i.kt)("p",{parentName:"li"},"Note: Above command will authenticate the user first time using SPNego negotiate mechanism and store the authentication cookie in file. For subsequent requests the cookie will be used for authentication."))),(0,i.kt)("h2",{id:"accessing-coordinator-or-overlord-console-from-web-browser"},"Accessing Coordinator or Overlord console from web browser"),(0,i.kt)("p",null,"To access Coordinator/Overlord console from browser you will need to configure your browser for SPNego authentication as follows -"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Safari - No configurations required."),(0,i.kt)("li",{parentName:"ol"},"Firefox - Open firefox and follow these steps -",(0,i.kt)("ol",{parentName:"li"},(0,i.kt)("li",{parentName:"ol"},"Go to ",(0,i.kt)("inlineCode",{parentName:"li"},"about:config")," and search for ",(0,i.kt)("inlineCode",{parentName:"li"},"network.negotiate-auth.trusted-uris"),"."),(0,i.kt)("li",{parentName:"ol"},"Double-click and add the following values: ",(0,i.kt)("inlineCode",{parentName:"li"},'"http://druid-coordinator-hostname:ui-port"')," and ",(0,i.kt)("inlineCode",{parentName:"li"},'"http://druid-overlord-hostname:port"')))),(0,i.kt)("li",{parentName:"ol"},"Google Chrome - From the command line run following commands -",(0,i.kt)("ol",{parentName:"li"},(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("inlineCode",{parentName:"li"},'google-chrome --auth-server-whitelist="druid-coordinator-hostname" --auth-negotiate-delegate-whitelist="druid-coordinator-hostname"')),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("inlineCode",{parentName:"li"},'google-chrome --auth-server-whitelist="druid-overlord-hostname" --auth-negotiate-delegate-whitelist="druid-overlord-hostname"')))),(0,i.kt)("li",{parentName:"ol"},"Internet Explorer -",(0,i.kt)("ol",{parentName:"li"},(0,i.kt)("li",{parentName:"ol"},"Configure trusted websites to include ",(0,i.kt)("inlineCode",{parentName:"li"},'"druid-coordinator-hostname"')," and ",(0,i.kt)("inlineCode",{parentName:"li"},'"druid-overlord-hostname"')),(0,i.kt)("li",{parentName:"ol"},"Allow negotiation for the UI website.")))),(0,i.kt)("h2",{id:"sending-queries-programmatically"},"Sending Queries programmatically"),(0,i.kt)("p",null,"Many HTTP client libraries, such as Apache Commons ",(0,i.kt)("a",{parentName:"p",href:"https://hc.apache.org/"},"HttpComponents"),", already have support for performing SPNEGO authentication. You can use any of the available HTTP client library to communicate with druid cluster."))}h.isMDXComponent=!0}}]);