Collection Contents Zurück Weiter PDF

MobiLink Benutzerhandbuch

MobiLink-Benutzer authentifizieren

Angepasste Benutzerauthentifizierung

Authentifizierung bei externen Servern


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:

Wie Sie diese Skripten einsetzen, wird dadurch bestimmt, ob Ihre ml_user-Werte direkt den Benutzer-IDs in Ihrem externen Authentifizierungssystem zugeordnet sind.

Wenn Ihre ml_user-Werte direkt Ihren Benutzer-IDs 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

  1. Fügen Sie der MobiLink-Systemtabelle ml_scripts das vordefinierte Java-Synchronisationsskript hinzu. Sie können dazu eine gespeicherte Prozedur oder Sybase Central benutzen.

  2. 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 direkt Ihren Benutzer-IDs zugeordnet sind 

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)

Collection Contents Zurück Weiter PDF