Plex 2E

  • 1.  Plex with Active Directory

    Posted Jan 07, 2011 04:59 PM
    Hi Guys,

    Yo have a problem, I want connect my Plex applications with the Active Directory.
    My Plex applications usually keep the user and password in a table in SQL.
    I don't want to have the users table. I want enter the user and password in a panel made in winc and connect to the Active Directory
    and give me back the positive or negative authentication.

    Help me with this, I need to have some ideas that could use to access that way to my applications, so we greatly assist in the administration of users, as we would apply only to Windows, the profiles and options of my aplications remain the same. I imagine could use code Vbscript and LDAP.

    Thanks in advance for any ideas.

    Regards,

    Jose Velasco.


  • 2.  RE: Plex with Active Directory

    Posted Jan 07, 2011 06:33 PM
    Hi José,
    Yes, you can (must) use LDAP to get the network id of a user; surely vbscript could be used to check user against his password. In our case, we use JNDI api for java access to directory services.
    With regards
    Jorge Ubeda


  • 3.  RE: Plex with Active Directory

    Posted Jan 09, 2011 11:03 AM
    Hi, I managed to connect to active directory using the object
    "Set obj1 = dso.OpenDSObject (" LDAP: / / servidor.favoritafruit.corp/DC = favoritafruit, DC = corp ","favoritafruit \ user ","password ", 1)

    Works fine when I enter the username and password without error.
    But when you enter the wrong password, I don´t know how to catch the error and show any message. I use vbscript


  • 4.  RE: Plex with Active Directory

    Posted Jan 09, 2011 11:42 AM
    José,
    I haven´t at home a better sample. Maybe tomorrow would send you some better case. As said, we are using here JNDI java classes. Try to see similarities. This is from Sun/Oracle. Note that it controls validity of user profile through error recovering (a try/catch mechanism. an exit by the catch exception mechanism implies a user or password invalid):

    /*
    * @(#)BadPasswd.java
    1.3 99/09/21
    *
    * Copyright 1997, 1998, 1999 Sun Microsystems, Inc. All Rights
    * Reserved.
    *
    * Sun grants you ("Licensee") a non-exclusive, royalty free,
    * license to use, modify and redistribute this software in source and
    * binary code form, provided that i) this copyright notice and license
    * appear on all copies of the software; and ii) Licensee does not
    * utilize the software in a manner which is disparaging to Sun.
    *
    * This software is provided "AS IS," without a warranty of any
    * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
    * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE
    * HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE
    * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
    * MODIFYING OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN
    * NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
    * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
    * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT
    * OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
    * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    *
    * This software is not designed or intended for use in on-line
    * control of aircraft, air traffic, aircraft navigation or aircraft
    * communications; or in the design, construction, operation or
    * maintenance of any nuclear facility. Licensee represents and warrants
    * that it will not use or redistribute the Software for such purposes.
    */

    import javax.naming.*;
    import javax.naming.directory.*;

    import java.util.Hashtable;

    /**
    * Demonstrates how failure to supply correct authentication information
    * fails.
    *
    * usage: java BadPasswd
    */
    class BadPasswd {
    public static void main(String[] args) {


    // Set up environment for creating initial context

    Hashtable env = new Hashtable(11);

    env.put(Context.INITIAL_CONTEXT_FACTORY,

    "com.sun.jndi.ldap.LdapCtxFactory");

    env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");


    // Authenticate as S. User and give incorrect password

    env.put(Context.SECURITY_AUTHENTICATION, "simple");

    env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");

    env.put(Context.SECURITY_CREDENTIALS, "notmysecret");


    try {

    // Create initial context

    DirContext ctx = new InitialDirContext(env);


    System.out.println(ctx.lookup("ou=NewHires"));


    // do something useful with ctx


    // Close the context when we're done

    ctx.close();

    } catch (NamingException e) {

    e.printStackTrace();

    }
    }
    }

    (http://download.oracle.com/javase/jndi/tutorial/ldap/security/src/BadPasswd.java)


  • 5.  RE: Plex with Active Directory

    Posted Jan 09, 2011 11:44 AM
    A special case to manage is the anonymous user. We rejects anonymous users. You need to consider what to do with them.


  • 6.  RE: Plex with Active Directory
    Best Answer

    Posted Jan 11, 2011 11:54 AM
    Hello Jorge,

    I found the solution...


    On Error Resume Next
    set obj1 = dso.OpenDSObject(server, user, password, 1)
    If Err.Number >0 then
    msgbox "Error password"
    else
    Band = obj1.Class
    MsgBox "Successfull"
    end if

    Thanks