Единый вход с помощью плагина Spring Security LDAP - PullRequest
0 голосов
/ 15 марта 2019

Хорошо, у меня уже есть приложение, подключенное к моему ldap-серверу. Пользователь просто должен ввести свое имя пользователя и пароль. У нас также есть несколько других приложений Grails, которые люди должны ввести свои учетные данные AD. Я хотел бы реализовать единый вход в систему.

У меня есть версия 3.0.2 плагина ldap для обеспечения безопасности Spring, и я использую Grails 3.3.9. Из того, что я прочитал, этот плагин должен использовать единый вход, если я использую Spring Security с Grails. У меня есть некоторый код, уже настроенный как попытка, но я все еще получаю страницу входа вместо автоматической аутентификации. Домен находится на Windows Server 2012. Это приложение (и остальные из них после того, как у меня будет право конфигурации) будет развернуто на сервере Linux. Вот что у меня есть (некоторые значения не указаны по соображениям безопасности):

resources.groovy

import tstsupport.UserPasswordEncoderListener
import tstsupport.MyUserDetailsContextMapper
import org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider

// Place your Spring DSL code here
beans = {
    userPasswordEncoderListener(UserPasswordEncoderListener)
    ldapUserDetailsMapper(MyUserDetailsContextMapper){

    }
    ldapAuthProvider1(ActiveDirectoryLdapAuthenticationProvider,
            "domain.com",
            "ldap://domain.com:389"
    )
}

application.groovy

grails.plugin.springsecurity.ldap.context.managerDn = 'CN=Service Account,CN=Managed Service Accounts,DC=domain,DC=com'
grails.plugin.springsecurity.ldap.context.managerPassword = 'password'
grails.plugin.springsecurity.ldap.context.server = 'ldap://domain.com:389'
grails.plugin.springsecurity.ldap.authorities.groupSearchBase = '...'
grails.plugin.springsecurity.ldap.search.base = '...'
grails.plugin.springsecurity.ldap.search.filter= '(sAMAccountName={0})'
grails.plugin.springsecurity.ldap.authorities.retrieveDatabaseRoles = true

grails.plugin.springsecurity.providerNames = ['ldapAuthProvider1']
...