Frage

Ich versuche, in meinen Web-Anwendungen gegen Active Directory Griff Authentifizierung und Autorisierung JAAS in Glassfish zu verwenden. Zunächst einmal habe ich einige POJO Programme geschrieben, die mir in AD und Authentifizieren gegen die Benutzer und Gruppen I Setup erfolgreich verbinden können. Also ich bin zuversichtlich, dass die Benutzernamen, Passwörter und Gruppen, die ich in meinem Web-Anwendung bin mit korrekt sind.

Ich folge Dieses Tutorial für das Einrichten eines Realm in Glassfish um die Authentifizierung zu behandeln und Zulassung in meinem Webapp. Ich habe meine web.xml und sun-web.xml mit meinen Daten modifiziert, dass ich will.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>myapp</display-name>
<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
  <auth-method>FORM</auth-method>
  <realm-name>activedirectory</realm-name>
  <form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/error.html</form-error-page>
  </form-login-config>
</login-config>
<security-role>
  <role-name>authorized</role-name>
</security-role>
<security-constraint>
  <display-name>Security</display-name>
  <web-resource-collection>
  <web-resource-name>Secured</web-resource-name>
  <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>authorized</role-name>
  </auth-constraint>
  <user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
</security-constraint>
</web-app>

und meine sun-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app error-url="">
  <context-root>/myapp</context-root>
  <security-role-mapping>
<role-name>authorized</role-name>
<group-name>Test</group-name>
  </security-role-mapping>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class java code.</description>
    </property>
  </jsp-config>
</sun-web-app>

Mein Reich

name: activedirectory
class name: com.sun.enterprise.security.auth.realm.ldap.LDAPRealm
JAAS context: ldapRealm
Directory: ldap://myADServersIPAddress:389
Base DN:   DC=myAD,DC=com
search-filter             (&(objectClass=user)(userPrincipalName=%s))
search-bind-password      fakepasswordhere
group-search-filter       (&(objectClass=group)(member=%d))
search-bind-dn            DN=Administrator

Die Fehlermeldung, die ich in meinem Logs, wenn ich anmelden und es nicht ist

Login failed: javax.security.auth.login.LoginException:  
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-
0C090290, comment: AcceptSecurityContext error, data 525, v893]

habe ich einige der Forschung über den Fehlercode „Daten 525“ und scheinbar bedeutet es, der Benutzername ist ungültig. Ich verwende eine ID und ein Passwort, dass ich weiß, gültig ist, und ich weiß, ein Mitglied des „Tests“ ist, wie in meinem sun-web.xml definiert. Ich habe das Format Userprincipal (username @ domain) mit den aktuellen Einstellungen ausprobiert sowie der sAMAccountName Form (Domäne \ Benutzername) ohne Glück. Ich habe auch Suchfilter in meinem Reich geändert sAMAccountName zu verwenden, wo userprincipal ist und das hat nicht funktioniert beide Combos entweder mit. Hat jemand irgendwelche Hinweise oder Anregungen? Ich fühle mich wie ich die Forschung getan haben und ich bin sehr nah, aber an dieser Stelle sehr fest. Vielen Dank, wenn jemand die Zeit tatsächlich nimmt dies alles zu lesen!

War es hilfreich?

Lösung

Was würde ich tatsächlich Test Ihre Lookup Credentials sein könnte, da Sie auf DN = Administrator basierend suchen, nicht wahr? Haben Sie versucht, es die volle dn zu dem Administrator-Konto für die Suche-bind-dn geben? Regel standardmäßig, die auf Ihrem Info über DN=Administrator, CN=Users, DC=myAD, DC=com basiert würden.

Andere Tipps

Ich bin mit REW - meinem Suche-bind-dn für die Suche-bind-ID an der Arbeit voll qualifiziert sein mußte

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top