yona-projects / yona

Project Hosting SW
https://yona.io
Apache License 2.0
490 stars 154 forks source link

ldap 로그인 문제 #809

Open hamhs2000 opened 10 months ago

hamhs2000 commented 10 months ago

리눅스 ldap 사용 입니다. 연동 과정에서 저희 Distinguished Name 으로 접속할 경우 uid로 매핑이 됩니다. 그래서 아래와 같이 세팅 후 해당 계정으로 로그인 할 경우 로그인은 되나 다른 계정으로 로그인을 해도 최초 로그인시 생성된 계정으로만 로그인이 되는 상황입니다. 저희 ou는 People로 사용자가 지정됩니다. yona 1.15 사용 중입니다.

예) hong.gildong으로 최초 로그인 -> 로그아웃 -> kim.chulsoo로 로그인 -> 아이디 hong.gildong

ldap { host = "ldap.yona.co.kr"

default: ldap.port=389, ldaps.port=636

port = 389
# protocol: ldap or ldaps. If you want to use SSL/TLS, use 'ldaps'
protocol = "ldap"
baseDN = "ou=People,dc=yona,dc=co,dc=kr"
# If your ldap service's distinguishedName is 'CN=username,OU=user,DC=abc,DC=com', postfix is 'OU=xxx,DC=abc,DC=com'
distinguishedNamePostfix = "OU=People,DC=yona,DC=co,DC=kr"
#loginProperty = "sAMAccountName"
loginProperty = "uid"
displayNameProperty = "displayName"
userNameProperty = "uid"
emailProperty = "mail"
options {
  # If your LDAP configuration support email login
  useEmailBaseLogin = false
  fallbackToLocalLogin = true   #ldap연동 전 로컬 사용자가 false 후 연동하니 로그인이 안되서  true로 변경 하였습니다.
  # If your LDAP configuration support English Name attribute
  englishNameAttributeName = "givenName"
}
doortts commented 10 months ago
fallbackToLocalLogin = true

기본적으로 ldap 연동을 하면 로그인을 email로 로그인을 해야 합니다.

다만 위 옵션을 true 로 한 경우 @company-email.com을 붙이지 않을 경우 로컬 id 를 찾아서 매칭시켜서 로그인을 가능하게 만들어 주는 옵션입니다.

로그인을 하실때 이메일을 기본 id 로 사용해서 로그인 하도록 권장하셔야 할거에요.

hamhs2000 commented 10 months ago

저희 ldap에서는 따로 mail 속성을 가지지 않는데 그럴 경우에는 방법이 없는건가요?? 해당 문제로 DB를 체크했을때 최초 가입자로 로그인 후 다음 가입자로 로그인 할 경우 DB에서 새로운 계정이 생성되는게 아니라 n4user table에서 english_name 이 변경되고 기존 아이디는 변경되지 않습니다.

doortts commented 10 months ago

제가 LDAP 에 대해 지식이 많지 않아서 어떻게 더 이야기 드리기가 어려울 것 같아요. 구현 자체는 표준 LDAP 스타일로 되어 있습니다.