"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8565],{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"},75756:(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/28.0.1/development/extensions-core/druid-kerberos.md",sourceDirName:"development/extensions-core",slug:"/development/extensions-core/druid-kerberos",permalink:"/docs/28.0.1/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/28.0.1/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/28.0.1/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}}]);