PHP Kerberos Authentification

2 Cevap php

Sadece temelleri - sadece ben Kerberos hakkında çok şey bilmiyorum varsayalım.

Ben var ...

  • Debian Linux 2.6 Webserver
    • Apache 2.2
      • mod_auth_kerb/5.3
      • PHP/5.2
  • (çalışma) Kerberos Realm
  • Windows Client
    • Firefox 3
    • Bir kimlik oturum "user@EXAMPLE.COM" MİT Ağ Kimlik Yöneticisi

Ben ziyaretçinin böyle bir kerberos bilet varsa web sitesine giriş gerekmez ki nasıl ben bu bilgi bir PHP komut dosyası kullanıyorsunuz? Ben Apache kimlik doğrulama işlemek istemiyorum. Ben PHP ile siteye erişim hangi kullanıcı bulmak gerekir.

Bu mümkün mü? Eğer öyleyse: Nasıl?

Ben bugüne kadar ne bulduk: Mecbur "enable" the domain in Firefox.

Ancak bunun hakkında ...

2 Cevap

Ben bu yardımcı olacaktır emin değilim, ama KrbSaveCredentials parametresini kullanırsanız Apache modauthkerb paketi ile PHP kullanıcı adı bilgilerini göndermek olacak gibi görünüyor. Siz php iki global değişkenleri almalısınız:

 $_SERVER['REMOTE_USER']
 $_SERVER['KRB5CCNAME']

Bu çalışma var gibi http://archives.postgresql.org/pgsql-admin/2004-08/msg00144.php görünüyor.

Eğer kullanıcı ne olduğunu görebilirsiniz eğer bu şekilde, gerçekten aslında doğrulama yapar php bir gereklilik değildir.

mod_auth_kerb sizin için gerçek kimlik idare edecek. Bundan sonra, bu REMOTE_USER ve KRB5CCNAME çevresel değişkenleri koyacaktır. Birkaç uyarılar vardır unutmayın:

  • Krb5AuthToLocal seçenek etkinse mod_auth_kerb Kerberos anapara ve yerel kullanıcı adı arasında çeviri yapabilirsiniz.
  • Krb5AuthToLocal etkinse kimlik doğrulama başarılı olduğunda, mod_auth_kerb Kerberos anapara her işletim sisteminde gerçek kullanıcı (eğer kullanıcı adları için ilkeleri eşleyebilirler) gibi aynı değildir gibi yerel bir isme kimliği doğrulanmış bir addan çeviri gerçekleştirmek için Kerberos kütüphane arayacak.
  • MIT Kerberos kullanımda olduğunda, bu haritalama ayrıntılar için kılavuz sayfasına krb5.conf bkz / etc/krb5.conf içinde auth_to_local kurallar yardımı ile gerçekleştirilir.
  • mod_auth_kerb yerel adı çıkan müdürünün kendisinden daha uzun adı olmamalıdır bir hata var. Onlar bölge parçası, bunun yerine 'kullanıcı @ REALM' yani 'kullanıcı' olmadan sunulan beri bu varsayılan alemden müdürleri genellikle doğrudur. Birkaç güvenilir alemlerine varsa Ancak, varsayılan olmayan alemlere kullanıcıların user@ANOTHER.REALM 'olarak gösterilir ve sonra mod_auth_kerb çıldırır. Bu hata mod_auth_kerb yukarı biraz ölü olduğu Debian hakkında emin değil, Fedora 18 + ve RHEL6.5 sabit olmalıdır.
  • Bu nedenle, REMOTE_USER değişken mod_auth_kerb nasıl yapılandırıldı bağlı olarak, Kerberos anapara veya yerel kullanıcı adı ya içerecektir. Uygulama REMOTE_USER değer bir gerçek, mevcut sistem kullanıcı olmalısınız gerçeğine dayanıyor ise, emin Krb5AuthToLocal seçeneği etkinleştirildiğinde ve bu kullanıcılar (winbind veya SSSD yoluyla) sisteminde de görülebilir yapmak gerekir.

Senin durumunda ben mükemmel bakmak için tavsiye ederim nasıl Tom McLaughlin: http://blogs.freebsdish.org/tmclaugh/2010/07/15/mod_auth_kerb-ad-and-ldap-authorization/