问题
I installed Kerberos for Windows
on a new set-up Windows 8.1 machine.
- Domain: not set
- Workgroup: WORKGROUP
I edited the krb5.ini
file in C:\ProgramData\MIT\Kerberos5
directory like this:
[libdefaults]
default_realm = HSHADOOPCLUSTER.DE
[realms]
HSHADOOPCLUSTER.DE = {
admin_server = had-job.server.de
kdc = had-job.server.de
}
After a restart, I made a kinit -kt daniel.keytab daniel
to authenticate me against the Realm via console. Also getting a ticket by user and password via the Kerberos Ticket Manager
seems to work fine, as the ticket is shown in the UI.
What I'm wondering about is, that when I call a klist
I get an empty list back, which says something like cached tickets: 0
:
This seems not normal to me, as my Ubuntu computer shows valid tickets by klist
after a kinit
.
What am I doing wrong? Is there some more configuration to do? Sometimes I read about a ksetup
tool, but I don't know which settings here are neccessary and which not...
============================================================
After I set
[libdefaults]
...
default_ccache_name = FILE:C:/ProgramData/Kerberos/krb5cc_%{uid}
in my krb5.conf
, the kinit
command via console and via Kerberos Ticket Manager creates a file in the specified path. So far everything looks good.
But: The kinit
command creates tickets with very different file names (long vs. short), depending if I run the console as "admin" (short name) or not (long name), see the screenshot below. The Kerberos Ticket Manager only shows one of the tickets:
- If run as admin:
- Shows the ticket I created via admin console
- Creates ticket files with short file names
- If run as normal:
- Shows the ticket I created via "normal" console
- Creates ticket files with long file names
The klist
command still doesn't show the cached tickets, independent if console was opened as admin or not.
回答1:
The MIT Kerberos documentation states that...
There are several kinds of credentials cache supported in the MIT Kerberos library. Not all are supported on every platform ...
- FILE caches are the simplest and most portable. A simple flat file format is used to store one credential after another. This is the default...
- API is only implemented on Windows. It communicates with a server process that holds the credentials in memory...
The default credential cache name is determined by ...
- TheKRB5CCNAME
environment variable...
- Thedefault_ccache_name
profile variable in [libdefaults]
- The hardcoded default,DEFCCNAME
But AFAIK, on Windows the hard-coded default cache is API:
and that's what you can manage with the UI. kinit
also uses that protocol by default.
I personally never could use klist
to use that protocol, even with the "standard" syntax i.e. either
klist -c API:
or
set KRB5CCNAME=API:
klist
On the other hand, if you point KRB5CCNAME
to a FILE:*****
then you can kinit
then klist
the ticket; but it will not show in the UI and will not be available to web browsers and the like.
来源:https://stackoverflow.com/questions/41763936/kerberos-kinit-on-windows-8-1-leads-to-empty-ticket-cache