Weblogic NegotiateIdentityAsserter и имя участника-пользователя - PullRequest
0 голосов
/ 21 декабря 2011

Мое веб-приложение использует аутентификацию Kerberos. Я установил NegotiateIdentityAsserter и провайдера аутентификации LDAP. Все работает нормально, если sAMAccountName является пользователем для поиска пользователя. К сожалению, в среде tagret этот атрибут не уникален. Мне нужно идентифицировать пользователя по его имени участника-пользователя.

Есть ли способ, как этого добиться?

Моя конфигурация

Weblogic 10.3.5 Java 1.6


login.config:

myrealm { 
weblogic.security.auth.login.UsernamePasswordLoginModule required debug=true;
}; 

com.sun.security.jgss.initiate {
     com.sun.security.auth.module.Krb5LoginModule required
     principal="HTTP/ceprwlvyv.dsmsp.local@DSMSP.LOCAL"
     refreshKrb5Config=true
     useKeyTab=true
     keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab"
     storeKey=true
     debug=true;
};

com.sun.security.jgss.accept {
     com.sun.security.auth.module.Krb5LoginModule required
     principal="HTTP/ceprwlvyv.dsmsp.local@DSMSP.LOCAL"
     refreshKrb5Config=true
     useKeyTab=true
     keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab"
     storeKey=true
     debug=true;

};

com.sun.security.jgss.krb5.accept {
     com.sun.security.auth.module.Krb5LoginModule required
     principal="HTTP/ceprwlvyv.dsmsp.local@DSMSP.LOCAL"
     refreshKrb5Config=true
     useKeyTab=true
     keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab"
     storeKey=true
     debug=true;

};

krb5.ini:

[libdefaults]
default_realm = DSMSP.LOCAL
kdc_timesync = 1
ccache_type = 4
ticket_lifetime = 600
clockskew = 1200
dns_lookup_kdc = true

[realms]
DSMSP.LOCAL = {
kdc = DSDC.dsmsp.local
}

[appdefaults]
autologin = true
forward = true
forwardable = true
encrypt = true

Заранее спасибо!

Петр

1 Ответ

0 голосов
/ 27 декабря 2011

Ваше утверждение вводит в заблуждение.Почему вы смешиваете аутентификацию Kerberos и LDAP?Вам нужна только авторизация Kerberos.После успешного входа в систему вы получите UPN пользователя.Ищите с этим в вашей AD в поле: userPrincipalName.Вот как я это делаю.Ваш вопрос недостаточно точен.Вы смешиваете аутентификацию и поиск пользователей.

...