Subroutine authenticatex
Zweck
Überprüft den Namen und das Kennwort eines Benutzers.
Bibliothek
Sicherheitsbibliothek (libc.a)
Syntax
Beschreibung
- Rufen Sie die Subroutine loginrestrictionsx auf, um festzustellen, welche Verwaltungsdomänen dem Benutzer die Anmeldung erlauben.
- Rufen Sie die Subroutine authenticatex auf, um die Authentifizierung mit den Verwaltungsdomänen durchzuführen, die Anmeldezugriff erteilen.
- Rufen Sie die Subroutine passwdexpiredx auf, um zu ermitteln, ob eines der Kennwörter, die während des Authentifizierungsprozesses verwendet wurden, abgelaufen ist und geändert werden muss, damit dem Benutzer Zugriff erteilt wird.
- Wenn die Subroutine passwdexpiredx angibt, dass mindestens ein Kennwort abgelaufen ist und vom Benutzer geändert werden muss, rufen Sie die Subroutine chpassx auf, um alle Kennwörter zu aktualisieren, die für den Authentifizierungsprozess verwendet wurden.
Der Parameter Erneut eingeben bleibt ein Wert ungleich null, bis der Benutzer alle Eingabeaufforderungsnachrichten oder falsch beantwortet. Wenn der Parameter Erneut eingeben auf 0 gesetzt ist, signalisiert der Rückkehrcode, ob die Authentifizierung erfolgreich war oder fehlgeschlagen ist. Der Wert des Parameters Erneut eingeben muss beim ersten Aufruf 0 sein. Ein Wert ungleich null für den Parameter Erneut eingeben muss bei nachfolgenden Aufrufen an die Subroutine authenticatex übergeben werden. Eine neue Authentifizierung kann durch Aufrufen der Subroutine authenticatex mit dem Wert 0 für den Parameter Erneut eingeben oder durch Verwendung eines anderen Werts für UserNamegestartet werden.
Der Parameter Status enthält Informationen zum Authentifizierungsprozess. Der Parameter State aus einem früheren Aufruf von loginrestrictionsx kann verwendet werden, um zu steuern, wie die Authentifizierung ausgeführt wird. Verwaltungsdomänen, die die Anmeldung des Benutzers nicht zulassen, führen dazu, dass diese Verwaltungsdomänen während der Authentifizierung ignoriert werden, auch wenn der Benutzer über die richtigen Authentifizierungsinformationen verfügt.
Die Subroutine authenticatex ermittelt die Authentifizierungsdomänen, die der Benutzer versuchen kann. Die Subroutine verwendet das Attribut SYSTEM für den Benutzer. Jedes in der Zeile SYSTEM angezeigte Token entspricht einer Methode, die dynamisch geladen und verarbeitet werden kann. Ebenso kann das System mehrere oder alternative Authentifizierungspfade bereitstellen.
Die Subroutine authenticatex verwaltet interne Statusinformationen zur nächsten Eingabeaufforderungsnachricht, die dem Benutzer angezeigt wird. Wenn das aufrufende Programm einen anderen Benutzernamen angibt, bevor alle Bedienerführungen für den Benutzer abgeschlossen sind, werden die internen Statusinformationen zurückgesetzt und die Bedienerführungsnachrichten beginnen erneut. Die Subroutine authenticatex erfordert, dass der Parameter State initialisiert wird, um auf einen Nullwert zu verweisen, wenn Benutzernamen geändert werden, oder dass der Parameter State eines früheren Aufrufs von loginrestrictionsx für den neuen Benutzer angegeben wird.
Wenn für den Benutzer kein Kennwort definiert ist oder die Grammatik SYSTEM explizit angibt, dass keine Authentifizierung erforderlich ist, muss der Benutzer keine Eingabeaufforderungsnachrichten beantworten. Andernfalls wird der Benutzer zunächst immer zur Eingabe eines Kennworts aufgefordert.
Die Subroutine authenticatex kann anfänglich mit dem Kennwort cleartext im Parameter Response aufgerufen werden. Wenn der Benutzer während des ersten Aufrufs ein Kennwort angibt, aber kein Kennwort hat, schlägt die Authentifizierung fehl. Wenn der Benutzer möchte, dass die Subroutine authenticatex eine Eingabeaufforderungsnachricht liefert, ist der Parameter Response ein Nullzeiger beim ersten Aufruf.
Die Subroutine authenticatex legt die Umgebungsvariable AUTHSTATE fest, die von Subroutinen zur Namensauflösung verwendet wird, z. B. die Subroutine getpwnam . Diese Umgebungsvariable gibt die erste Registry an, bei der sich der Benutzer authentifiziert hat. Zu den Werten für die Umgebungsvariable AUTHSTATE gehören DCE, compatund Tokennamen, die in einer SYSTEM -Grammatik vorkommen. Ein Nullwert kann vorhanden sein, wenn der Dämon cron oder ein anderes Dienstprogramm, das keine Authentifizierung erfordert, aufgerufen wird.
Parameter
| Element | Beschreibung |
|---|---|
| Nachricht | Verweist auf einen Zeiger, den die Subroutine authenticatex Speicher zuordnet und füllt. Diese Zeichenfolge eignet sich zum Drucken und Ausgeben von Eingabeaufforderungsnachrichten (wenn der Parameter Erneut eingeben einen Wert ungleich null hat). Außerdem werden Informationsnachrichten ausgegeben, z. B. warum die Authentifizierung des Benutzers fehlgeschlagen ist (wenn der Parameter Erneut eingeben auf 0 gesetzt ist). Die aufrufende Anwendung ist für die Freigabe dieses Speichers verantwortlich. |
| Erneut eingeben | Verweist auf einen ganzzahligen Wert, der signalisiert, ob die Subroutine authenticatex die Verarbeitung abgeschlossen hat. Wenn die ganze Zahl, auf die der Parameter Erneut eingeben verweist, ein Wert ungleich null ist, erwartet die Subroutine authenticatex , dass der Benutzer die vom Parameter Nachricht bereitgestellte Eingabeaufforderungsnachricht erfüllt. Wenn die ganze Zahl, auf die der Parameter Erneut eingeben verweist, 0 ist, hat die Subroutine authenticatex die Verarbeitung abgeschlossen. Der Anfangswert der Ganzzahl, die von Reenter referenziert wird, muss 0 sein, wenn die Funktion authenticatex zum ersten Mal aufgerufen wird, und darf von der aufrufenden Anwendung erst geändert werden, wenn die Verarbeitung der Subroutine authenticationx abgeschlossen ist. |
| Response | Gibt eine Zeichenfolge an, die die Antwort des Benutzers auf eine Authentifizierungsaufforderung enthält. |
| state | Verweist auf einen Zeiger, den die Subroutine authenticatex Speicher zuordnet und füllt. Der Parameter Status kann auch das Ergebnis eines früheren Aufrufs der Subroutine loginrestrictionsx sein. Dieser Parameter enthält Informationen zu den Ergebnissen des Authentifizierungsprozesses für jeden Begriff im Attribut SYSTEM des Benutzers. Die aufrufende Anwendung ist für die Freigabe dieses Speichers verantwortlich, wenn er für einen nachfolgenden Aufruf der Subroutinen passwdexpiredx oder chpassx nicht mehr erforderlich ist. |
| UserName | Verweist auf den Namen des Benutzers, der authentifiziert werden soll |
Rückgabewerte
Nach erfolgreicher Beendigung gibt die Subroutine authenticatex den Wert 0 zurück. Wenn diese Subroutine fehlschlägt, gibt sie den Wert 1 zurück.
Fehlercodes
Die Subroutine authenticatex ist nicht erfolgreich, wenn einer der folgenden Werte zutrifft:
| Element | Beschreibung |
|---|---|
| EINVAL | Die Parameter sind ungültig. |
| ENOENT | Der Benutzer ist dem System unbekannt. |
| ENOMEM | Speicherzuordnung (malloc) fehlgeschlagen. |
| ESAD | Die Authentifizierung wird verweigert. |