Create ldap-authentication.markdown
This commit is contained in:
parent
2e90c2cc6c
commit
6e9a57a21f
|
|
@ -0,0 +1,184 @@
|
|||
LDAP Kimlik Doğrulaması
|
||||
===================
|
||||
|
||||
Gereksinimler
|
||||
------------
|
||||
|
||||
- PHP LDAP uzantısı etkinleştirin
|
||||
- LDAP sunucusu:
|
||||
- OpenLDAP
|
||||
- Microsoft Active Directory
|
||||
- Novell eDirectory
|
||||
|
||||
İş Akışı
|
||||
--------
|
||||
|
||||
LDAP kimlik doğrulaması etkinleştirildiğinde, oturum açma işlemi şu şekilde iş görür:
|
||||
|
||||
1. Önce veritabanını kullanarak kullanıcıyı doğrulamayı dener
|
||||
2. Kullanıcı veritabanında bulunmazsa, bir LDAP kimlik doğrulaması yapılır
|
||||
3. LDAP kimlik doğrulaması başarılı olursa, varsayılan olarak bir yerel kullanıcı otomatik olarak parola olmadan oluşturulur ve LDAP kullanıcıları olarak işaretlenir.
|
||||
|
||||
Tam ad ve e-posta adresi otomatik olarak LDAP sunucusundan alınır.
|
||||
|
||||
Kimlik Doğrulama Türleri
|
||||
--------------------
|
||||
|
||||
| Tip | Açıklama |
|
||||
|-------------------|------------------------------------------------------------------------|
|
||||
| Proxy Kullanıcısı | LDAP dizinine göz atmak için belirli bir kullanıcı kullanılır. |
|
||||
| Kullanıcı | Son kullanıcı kimlik bilgileri LDAP dizinine göz atmak için kullanılır |
|
||||
| Anonim | LDAP tarama için kimlik doğrulama yapılmaz |
|
||||
|
||||
** Tavsiye edilen kimlik doğrulama yöntemi "Proxy"'dır**.
|
||||
|
||||
#### Anonim mod
|
||||
|
||||
```php
|
||||
define('LDAP_BIND_TYPE', 'anonymous');
|
||||
define('LDAP_USERNAME', null);
|
||||
define('LDAP_PASSWORD', null);
|
||||
```
|
||||
|
||||
Varsayılan değer budur, ancak bazı LDAP sunucuları güvenlik nedenleriyle anonim taramaya izin vermez.
|
||||
|
||||
#### Proxy mode
|
||||
|
||||
LDAP dizinine göz atmak için belirli bir kullanıcı kullanılır:
|
||||
|
||||
```php
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
define('LDAP_USERNAME', 'my proxy user');
|
||||
define('LDAP_PASSWORD', 'my proxy password');
|
||||
```
|
||||
|
||||
#### Kullanıcı modu
|
||||
|
||||
Bu yöntem, son kullanıcı tarafından sağlanan kimlik bilgilerini kullanır.
|
||||
|
||||
Örneğin, Microsoft Active Directory varsayılan olarak anonim taramaya izin vermez ve bir proxy kullanıcısı kullanmak istemiyorsanız bu yöntemi kullanabilirsiniz.
|
||||
|
||||
```php
|
||||
define('LDAP_BIND_TYPE', 'user');
|
||||
define('LDAP_USERNAME', '%s@kanboard.local');
|
||||
define('LDAP_PASSWORD', null);
|
||||
```
|
||||
|
||||
Bu durumda, `LDAP_USERNAME` sabiti ldap kullanıcı adına bir örnek olarak kullanılır, örnekler:
|
||||
|
||||
- `%s@kanboard.local` Yerini alacak `my_user@kanboard.local`
|
||||
- `KANBOARD\\%s` Yerini alacak `KANBOARD\my_user`
|
||||
|
||||
Kullanıcı LDAP filtresi
|
||||
----------------
|
||||
|
||||
LDAP dizinindeki kullanıcıları bulmak için yapılandırma parametresi `LDAP_USER_FILTER` i kullanılır.
|
||||
|
||||
Örnekler:
|
||||
|
||||
- `(&(objectClass=user)(sAMAccountName=%s))` yerini alır `(&(objectClass=user)(sAMAccountName=my_username))`
|
||||
- `uid=%s` yerini alır `uid=my_username`
|
||||
|
||||
[Active Directory için filtreler](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) için diğer örnekler
|
||||
|
||||
Kanboard'a erişimi filtrelemek için örnek:
|
||||
|
||||
`(&(objectClass=user)(sAMAccountName=%s)(memberOf=CN=Kanboard Users,CN=Users,DC=kanboard,DC=local))`
|
||||
|
||||
Bu örnek, sadece "Kanboard Kullanıcıları" grubunun üyelerine Kanboard'a bağlanmalarına izin verir.
|
||||
|
||||
Microsoft Active Directory için Örnek
|
||||
--------------------------------------
|
||||
|
||||
Diyelim ki 'KANBOARD' alanına (kanboard.local) sahibiz ve birincil denetleyicisi `myserver.kanboard.local` diyelim.
|
||||
|
||||
Proxy moduyla ilk örnek:
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
define('LDAP_USERNAME', 'administrator@kanboard.local');
|
||||
define('LDAP_PASSWORD', 'my super secret password');
|
||||
|
||||
// LDAP server hostname
|
||||
define('LDAP_SERVER', 'myserver.kanboard.local');
|
||||
|
||||
// LDAP properties
|
||||
define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
|
||||
```
|
||||
|
||||
Kullanıcı modu ile ikinci örnek:
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
define('LDAP_BIND_TYPE', 'user');
|
||||
define('LDAP_USERNAME', '%s@kanboard.local');
|
||||
define('LDAP_PASSWORD', null);
|
||||
|
||||
// LDAP server hostname
|
||||
define('LDAP_SERVER', 'myserver.kanboard.local');
|
||||
|
||||
// LDAP properties
|
||||
define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
|
||||
```
|
||||
|
||||
OpenLDAP için örnek
|
||||
--------------------
|
||||
|
||||
LDAP sunucumuz `myserver.example.com` olup tüm kullanıcılar `ou=People,dc=example,dc=com` altına saklanır.
|
||||
|
||||
Bu örnek için, anonim bağlayıcı kullanıyoruz.
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
// LDAP server hostname
|
||||
define('LDAP_SERVER', 'myserver.example.com');
|
||||
|
||||
// LDAP properties
|
||||
define('LDAP_USER_BASE_DN', 'ou=People,dc=example,dc=com');
|
||||
define('LDAP_USER_FILTER', 'uid=%s');
|
||||
```
|
||||
|
||||
Otomatik hesap oluşturma işlemini devre dışı bırak
|
||||
-----------------------------------
|
||||
|
||||
Varsayılan olarak, Kanboard hiçbir şey bulunamazsa otomatik olarak bir kullanıcı hesabı oluşturacaktır.
|
||||
|
||||
Kanboard'u yalnızca bazı kişilere kısıtlamak için kullanıcı hesapları oluşturmayı tercih ederseniz, bu davranışı devre dışı bırakabilirsiniz.
|
||||
|
||||
`LDAP_ACCOUNT_CREATION` değerini `false` olarak değiştirmeniz yeterlidir:
|
||||
|
||||
```php
|
||||
// Automatically create user account
|
||||
define('LDAP_ACCOUNT_CREATION', false);
|
||||
```
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
### SELinux kısıtlamaları
|
||||
|
||||
SELinux etkinleştirilirse, Apache'nin LDAP sunucunuza erişmesine izin vermeniz gerekir.
|
||||
|
||||
- SELinux'ü izin moduna-permissive mode geçirebilir veya devre dışı bırakabilirsiniz (önerilmez).
|
||||
- Örneğin, `setsebool -P httpd_can_network_connect=1` gibi tüm ağ bağlantılarına izin verebilir veya daha kısıtlayıcı bir kurala sahip olabilirsiniz
|
||||
|
||||
Her halükarda, resmi Redhat/Centos belgelerine bakın.
|
||||
|
||||
### Hata ayıklama modunu etkinleştir
|
||||
|
||||
Doğru şekilde LDAP kimlik doğrulamasını kuramazsanız, [hata ayıklama modunu etkinleştirebilirsiniz](config.markdown) ve günlük dosyalarını izleyebilirsiniz.
|
||||
Loading…
Reference in New Issue