MobiLink-Benutzer authentifizieren
Angepasste Benutzerauthentifizierung
MobiLink verfügt über vordefinierte Java-Synchronisationsskripten, die Ihnen die Authentifzierung bei externen Servern mithilfe des Ereignisses authenticate_user vereinfachen. Aktuell sind Skripten für folgende Authentifizierungsserver verfügbar:
POP3- oder IMAP-Server mit der JavaMail 1.2 API-Schnittstelle
LDAP-Server mit der JNDI-Schnittstelle (Java Naming and Directory Interface)
Wie Sie diese Skripten einsetzen, wird dadurch bestimmt, ob Ihre ml_user-Werte direkt den Benutzer-IDs in Ihrem externen Authentifizierungssystem zugeordnet sind.
Wenn der ml_user-Wert einfach direkt einer gültigen Benutzer-ID in Ihrem Authetifizierungssystem zugeordnet ist, kann der Code direkt als Reaktion auf das authenticate_user-Verbindungsereignis aufgerufen werden. Der Authentifizierungscode initialisiert sich selbst basierend auf den Eigenschaften, die in der ml_property-Tabelle gespeichert sind.
So verwenden Sie vordefinierte Skripten direkt in authenticate_user
Fügen Sie der MobiLink-Systemtabelle ml_scripts das vordefinierte Java-Synchronisationsskript hinzu. Sie können dazu eine gespeicherte Prozedur oder Sybase Central benutzen.
Bei der Verwendung der gespeicherten Prozedur ml_add_java_connection_script geben Sie Folgendes an einer Eingabeaufforderung ein:
call ml_add_java_connection_script( 'MyVersion' 'authenticate_user' 'ianywhere.ml.authentication.ServerType.authenticate' )
Dabei gilt: MyVersion ist der Name einer Skriptversion und ServerType ist LDAP, POP3 oder IMAP.
Bei der Verwendung des Assistenten "Verbindungsskript hinzufügen" in Sybase Central wählen Sie den Skripttyp authenticate_user und geben Folgendes im Code-Editor ein:
ianywhere.ml.authentication.ServerType.authenticate
Dabei gilt: ServerType ist LDAP, POP3 oder IMAP.
Fügen Sie Eigenschaften für diesen Authentifizierungsserver hinzu.
Verwenden Sie für die Festlegung der verschiedenen Eigenschaften die gespeicherte Prozedur ml_add_property:
call ml_add_property( 'ScriptVersion' 'MyVersion' 'property_name' 'property_value' )
Dabei gilt: MyVersion ist der Name einer Skriptversion, property_name wird von Ihrem Authentifizierungsserver festgelegt und property_value ist ein Wert aus Ihrer Anwendung. Wiederholen Sie diesen Aufruf für jede festzulegende Eigenschaft.
Weitere Hinweise finden Sie unter Eigenschaften für externe Authentifizierer (Authenticators).
Wenn Ihre ml_user-Werte nicht den Benutzer-IDs entsprechen, muss der Code indirekt aufgerufen werden und Sie müssen die Benutzer-ID aus dem ml_user-Wert extrahieren bzw. eine Zuordnung vornehmen. Dazu schreiben Sie eine entsprechende Java-Klasse.
Weitere Hinweise zum Schreiben von Java-Klassen finden Sie unter Synchronisationsskripten in Java schreiben.
Es folgt ein einfaches Beispiel: In diesem Beispiel wurde der Code in extractUserID weggelassen, da er davon abhängt, wie die Zuordnung des ml_user-Werts zu einer userid erfolgt. Die Verarbeitung erfolgt komplett in der authenticate-Methode der authentication-Klasse.
package com.mycompany.mycode;
import ianywhere.ml.authentication.*;
import ianywhere.ml.script.*;
public class MLEvents
{
private DBConnectionContext _context;
private POP3 _pop3;
public MLEvents( DBConnectionContext context )
{
_context = context;
_pop3 = new POP3( context );
} public void authenticateUser(
InOutInteger status,
String userID,
String password,
String newPassword )
{
String realUserID = extractUserID( userID );
_pop3.authenticate( status, realUserID, password, newPassword );
}
private String extractUserID( String userID )
{
// code here to map ml_user to a "real" POP3 user
}
}In diesem Beispiel muss das POP3-Objekt mit dem DBConnectContext-Objekt initialisiert werden, damit es seine Initialisierungseigenschaften finden kann. Wenn Sie die Initialisierung nicht auf diese Weise vornehmen, müssen Sie die Eigenschaften im Code definieren. Beispiel:
POP3 pop3 = new POP3(); pop3.setServerName( "smtp.sybase.com" ); pop3.setServerPort( 25 );
Dies gilt für alle authentication-Klassen, obwohl die Eigenschaften nach Klasse unterschiedlich sind.
Eigenschaften für externe Authentifizierer (Authenticators)
SQL Anywhere Studio 9.0.1
Copyright © 1989–2004 Sybase Inc. Teil-Copyright © 2001–2004 iAnywhere Solutions Inc. Alle Rechte vorbehalten.