web-dev-qa-db-ja.com

apachekerberos認証チケットはklistの下に表示されません

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)の下にあります。私は単一のシステムでテストしています。

2
ashok

有効な(あなたの場合はいずれかの)チケットがないためにKrbMethodNegotiateが失敗すると、ApacheはデフォルトでオンになっているKrbMethodK5Passwdにフェイルバックします。 これは予想される動作です構成で。


サイドノート

  1. Apacheはシステムキータブを使用するべきではありません。そのためのアプリケーションキータブを構成します。
  2. 基本認証メカニズムを使用している場合、モジュールはいかなる種類の特別な暗号化も行いません。ユーザー名とパスワードの受け渡しは、基本認証が使用するのと同じBase64エンコーディングで行われます。これは簡単にプレーンテキストに変換できます。これに対抗するには、mod_sslまたはApache-SSLも使用することをお勧めします。ネゴシエート方式を使用している場合は、SSL暗号化の使用もお勧めします。

2
84104

[Kerberos認証]は正常に機能しています。パスワードを要求し、Webサイトにログインしています。

Apacheサーバーは、Kerberos認証をネゴシエートできない場合に、何らかの形式のフォールバック認証を許可するように構成されている可能性があります。
ブラウザがKerberosチケットを提示した場合、notユーザー名とパスワードの入力を求められるためです。

私には、個人のチケット付与チケットもサービスチケットも表示されないという事実によって確認されています。

kinitを使用してチケット許可チケットを手動で取得すると、FirefoxはWebサーバーとKerberos認証をネゴシエートできるようになり、ユーザー名/パスワードではなくサービスチケットを使用してログインします。これは、2回目にklistを実行したときに表示されるものです。

3
HBruijn