Im tasked with setting up Apache SOLR to run under Authentication, while not modifying the existing c# calls to SOLR.
The options available are a basic authentication plugin, and a kerebos plugin
When I try the basic authentication plugin I find that I need to change the calls to SOLR to include the login
Im trying to learn about kerebos, but I cant quite get my mind around it.
My understanding is that I need to set up something called a keytab file that has a list of who the principals are that can access the application and then you update something called the KDC have give those same principals
So I basically have a web api on one box, and apache solr on a separate box.
I dont need to login with kerebos, right? so as long as the KDC has the web api box and the solr box, and a windows user account (I'm thinking of using the web api's service account), the back and forth between the servers happen automatically (asking for a ticket, granting a ticket, etc)
I dont need to change my http calls, right?
i dont need to have a security certificate, right?
If Active Directory will be used as KDC, each domain controller will have KDC service. Your application URL FQDN part should be registered in Active Directory SPN. This is the URL that client will access application using Kerberos authentication, also the hosts that will participate in Kerberos should be registered in Active Directory.
Keytab file will contain the service account credentials and using a utility like ktpass or your application's specific utility this file should be built and securely transferred to the related application directory. This is a service credential in AD with necessary permissions on the related SPN objects.
Your application should require TGT and TGS tickets from KDC using its keytab file. Then the tickets may be used in your application.
Kerberos alone will not require certificates, but if your application uses LDAPS (port 636) connection to AD, then DCs should have certificates. If your application does not require certificates then probably DC certificates will be sufficient.
This scenario alone does not allow every application user to request tickets. The service account builds the secure authentication channel and the remaining user authentication and authorization should be handled by the application.