kerberosを使用してApache認証を構成したとき。正常に動作しています。パスワードを要求し、Webサイトにログインしています。このようなログ情報を作成しています。 / var/log/kerberos/krb5kdc.log
Jul 03 15:30:03 ashokkrishna-Lenovo-B560 krb5kdc[4060](info): AS_REQ (6 etypes {18 17 16 23 25 26}) 192.168.1.224: NEEDED_PREAUTH: [email protected] for krbtgt/[email protected], Additional pre-authentication required
Jul 03 15:30:03 ashokkrishna-Lenovo-B560 krb5kdc[4060](info): AS_REQ (6 etypes {18 17 16 23 25 26}) 192.168.1.224: ISSUE: authtime 1435917603, etypes {rep=18 tkt=18 ses=18}, [email protected] for krbtgt/[email protected]
しかし、私がヒットしたとき
ashokkrishna@ashokkrishna-Lenovo-B560:~$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)
取得したチケットは掲載されていません。どうして? Firefoxを開くたびに、チケットの有効期限は十分に長いのですが、Webサイトはパスワードとユーザー名を何度も尋ねています。
しかし、私がユーザーを追加するとき
ashokkrishna@ashokkrishna-Lenovo-B560:~$ kinit ashokkrishna
Password for [email protected]:
ashokkrishna@ashokkrishna-Lenovo-B560:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]
Valid starting Expires Service principal
2015-07-03T15:56:33 2015-07-04T01:56:33 krbtgt/[email protected]
renew until 2015-07-04T15:56:30
2015-07-03T15:56:44 2015-07-04T01:56:33 HTTP/[email protected]
renew until 2015-07-04T15:56:30
その正常に動作します。
なぜこれが起こっているのか。
編集:/etc/Apache2/sites-enabled/sites-enabled。 ****
<Directory /var/www/html/auth-kerberos>
AuthType Kerberos
AuthName "Kerberos Authntication"
KrbAuthRealms IGROUP.COM
Krb5Keytab /etc/krb5.keytab
KrbMethodNegotiate On
KrbSaveCredentials Off
KrbVerifyKDC Off
Require valid-user
</Directory>**
kadmin.local構成。
kadmin.local: listprincs
HTTP/[email protected]
K/[email protected]
ashokkrishna/[email protected]
[email protected]
Host/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
krbtgt/[email protected]
root/[email protected]
ashokkrishnaはユーザー(クライアント)です。kdc、admin-server、Apache-server、clientの1つは、すべて単一のホスト(pc)の下にあります。私は単一のシステムでテストしています。
有効な(あなたの場合はいずれかの)チケットがないためにKrbMethodNegotiate
が失敗すると、ApacheはデフォルトでオンになっているKrbMethodK5Passwd
にフェイルバックします。 これは予想される動作です構成で。
サイドノート
基本認証メカニズムを使用している場合、モジュールはいかなる種類の特別な暗号化も行いません。ユーザー名とパスワードの受け渡しは、基本認証が使用するのと同じBase64エンコーディングで行われます。これは簡単にプレーンテキストに変換できます。これに対抗するには、mod_sslまたはApache-SSLも使用することをお勧めします。ネゴシエート方式を使用している場合は、SSL暗号化の使用もお勧めします。
[Kerberos認証]は正常に機能しています。パスワードを要求し、Webサイトにログインしています。
Apacheサーバーは、Kerberos認証をネゴシエートできない場合に、何らかの形式のフォールバック認証を許可するように構成されている可能性があります。
ブラウザがKerberosチケットを提示した場合、notユーザー名とパスワードの入力を求められるためです。
私には、個人のチケット付与チケットもサービスチケットも表示されないという事実によって確認されています。
kinit
を使用してチケット許可チケットを手動で取得すると、FirefoxはWebサーバーとKerberos認証をネゴシエートできるようになり、ユーザー名/パスワードではなくサービスチケットを使用してログインします。これは、2回目にklist
を実行したときに表示されるものです。