Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » MobiLink - Clientadministration » Einführung in MobiLink-Clients » MobiLink-Benutzer

 

Authentifizierungsprozess

Im Folgenden finden Sie eine Beschreibung der Ereignisabfolge während der Authentifizierung.

  1. Eine entfernte Anwendung startet eine Synchronisationsanforderung mit einer entfernten ID, einem MobiLink-Benutzernamen und wahlweise mit einem Kennwort und einem neuen Kennwort. Der MobiLink-Server beginnt eine neue Transaktion und löst das Ereignis begin_connection_autocommit und begin_connection aus.

  2. MobiLink stellt sicher, dass die entfernte ID derzeit nicht bereits eine Synchronisation gestartet hat und setzt authentication_status auf 4000.

  3. Wenn Sie ein authenticate_user-Skript definiert haben, tritt Folgendes ein:

    1. Wenn das authenticate_user-Skript in SQL geschrieben wurde, wird das Skript mit dem voreingestellten authentication_status-Parameter 4000, dem angegebenen MobiLink-Benutzernamen und optional mit dem Kennwort und dem neuen Kennwort aufgerufen.

      Wenn das authenticate_user-Skript in Java oder .NET geschrieben wurde und eine SQL-Anweisung zurückgibt, wird diese SQL-Anweisung mit dem voreingestellten authentication_status-Parameter 4000, dem angegebenen MobiLink-Benutzernamen und optional mit dem Kennwort und dem neuen Kennwort aufgerufen.

    2. Falls das authenticate_user-Skript einen Ausnahmefehler auslöst oder bei der Ausführung des Skripts ein Fehler auftritt, stoppt der Synchronisationsprozess.

    Das authenticate_user-Skript oder die zurückgegebene SQL-Anweisung müssen ein Aufruf einer gespeicherten Prozedur sein, die 2 bis 4 Argumente hat. Der voreingestellte Wert für authentication_status wird als erster Parameter übergeben und kann von der gespeicherten Prozedur aktualisiert werden. Der Rückgabewert des ersten Parameters ist der Wert von authentication_status aus dem Skript authenticate_user.

  4. Wenn ein authenticate_user_hashed-Skript vorhanden ist, tritt Folgendes ein:

    1. Falls ein Kennwort angegeben wurde, wird ein Hash-Wert dafür berechnet. Bei der Angabe eines neuen Kennworts, wird ein Hash-Wert dafür berechnet.

    2. Das Skript authenticate_user_hashed wird mit dem aktuellen Wert von authentication_status (voreingestellter Wert von authentication_status, wenn das Skript authenticate_user nicht existiert, oder der Wert von authentication_status, den das Skript authenticate_user zurückgegeben hat) und den Hash-Kennwörtern aufgerufen. Das Verhalten entspricht Schritt 3. Der Rückgabewert des ersten Parameters wird als Wert von authentication_status des Skripts authenticate_user_hashed verwendet.

  5. Der MobiLink-Server nimmt den größeren Wert des auth_user-Status aus den Skripten authenticate_user und authenticate_user_hashed, sofern vorhanden, oder den voreingestellen Status von Wert von authentication_status, wenn keines der Skripten existiert.

  6. Der MobiLink-Server fragt den von Ihnen angegebenen MobiLink-Benutzernamen in der Tabelle ml_user ab.

    1. Wenn eines der angepassten Skripten authenticate_user oder authenticate_user_hashed aufgerufen wurde, aber der von Ihnen angegebene MobiLink-Benutzername nicht in der Tabelle ml_user vorhanden und authentication_status gültig ist (1000 oder 2000), wird der MobiLink-Benutzername zur MobiLink-Systemtabelle ml_user hinzugefügt. Falls authentication_status nicht gültig ist, wird ml_user nicht aktualisiert und es kommt zu einem Fehler.

    2. Wenn die angepassten Skripten nicht aufgerufen wurden und der von Ihnen bereitgestellte MobiLink-Benutzername nicht in der Tabelle ml_user enthalten ist, wird der MobiLink-Benutzername zu ml_user hinzugefügt, sofern Sie den MobiLink-Server mit der Option -zu+ gestartet haben. Andernfalls tritt ein Fehler ein und authentication_status wird auf ungültig gesetzt.

    3. Wenn die angepassten Skripten aufgerufen wurden und der von Ihnen bereitgestellte MobiLink-Benutzername in der Tabelle ml_user enthalten ist, geschieht nichts.

    4. Wenn die angepassten Skripten nicht aufgerufen wurden und der von Ihnen angegebene MobiLink-Benutzername in der Tabelle ml_user enthalten ist, werden die Kennwörter mit dem Wert in der Tabelle ml_user verglichen. Wenn das Kennwort dem in der Tabelle ml_user für den MobiLink-Benutzer entspricht, wird authentication_status auf gültig gesetzt. Andernfalls wird authentication_status auf ungültig gesetzt.

  7. Falls authentication_status gültig ist und weder das Skript authenticate_user noch authenticate_user_hashed aufgerufen wurde und Sie ein neues Kennwort in der Tabelle ml_user für diesen MobiLink-Benutzer bereitgestellt haben, wird das Kennwort auf das von Ihnen bereitgestellte Kennwort gesetzt.

  8. Wenn Sie ein authenticate_parameters-Skript definiert haben und authentication_status gültig ist (1000 oder 2000), tritt Folgendes ein:

    1. Die Parameter werden an das Skript authentication_parameters übergeben.

    2. Falls das Skript authenticate_parameters einen authentication_status-Wert zurückgibt, der größer als der aktuelle Wert von authentication_status ist, überschreibt der neue Wert von authentication_status den alten Wert.

  9. Falls authentication_status nicht zulässig ist, wird die Synchronisation abgebrochen.

  10. Falls Sie das modify_user-Skript definiert haben, wird es aufgerufen, um den von Ihnen angegebenen MobiLink-Benutzernamen durch einen neuen, von diesem Skript zurückgegebenen MobiLink-Benutzernamen zu ersetzen.

  11. Der MobiLink-Server führt die Transaktion immer nach der Benutzerauthentifizierung in MobiLink durch, unabhängig vom authentication_status. Wenn authentication_status einen gültigen Wert hat (1000 oder 2000), wird die Synchronisation fortgesetzt. Falls authentication_status nicht zulässig ist, wird die Synchronisation abgebrochen.