2011-12-21 1 views
0

Mon application Web utilise l'authentification Kerberos. J'ai défini NegotiateIdentityAsserter et LDAP Authentication Provider. Tout fonctionne correctement si sAMAccountName est un utilisateur pour la recherche d'utilisateur. Malheureusement dans l'environnement de tagret cet attribut n'est pas unique. J'ai besoin d'identifier l'utilisateur par son nom UPN (nom principal de l'utilisateur).Weblogic NegotiateIdentityAsserter et nom d'utilisateur principal

Existe-t-il un moyen de le réaliser?

Ma configuration est

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/[email protected]" 
    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/[email protected]" 
    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/[email protected]" 
    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 

Merci d'avance!

Petr

Répondre

0

Votre déclaration est trompeuse. Pourquoi mélangez-vous auth auth Kerberos et LDAP? Vous avez besoin de l'authentification Kerberos uniquement. Après une connexion réussie, vous recevrez le nom UPN de l'utilisateur. Recherchez avec cela dans votre AD dans le champ: userPrincipalName. Voici comment je le fais. Votre question n'est pas assez précise. Vous mélangez l'authentification et la recherche d'utilisateurs.