Freigeben über


Aufrufen der Erweiterungs-DLLs

Hinweis

Der Internetauthentifizierungsdienst (Internet Authentication Service, IAS) wurde ab Windows Server 2008 in Netzwerkrichtlinienserver (Network Policy Server, NPS) umbenannt. Der Inhalt dieses Themas gilt sowohl für IAS als auch für NPS. Im gesamten Text wird NPS verwendet, um auf alle Versionen des Diensts zu verweisen, einschließlich der Versionen, die ursprünglich als IAS bezeichnet wurden.

 

NPS-Erweiterungs-DLLs müssen mindestens eine der folgenden Rückruffunktionen exportieren: RadiusExtensionProcess, RadiusExtensionProcessEx oder RadiusExtensionProcess2. NPS ruft diese Funktion für jedes gültige Authentifizierungs- oder Buchhaltungspaket auf, das er vom Netzwerkzugriffsserver (NAS) empfängt. NPS ruft diese Funktionen in jeder der DLLs auf, die unter dem Registrierungsschlüssel Parameters des NPS aufgeführt sind. Die DLLs werden in der Reihenfolge aufgerufen, in der sie aufgelistet sind.

Wenn eine NPS-Erweiterungs-DLL mehr als eine der oben genannten Funktionen exportiert, ruft NPS nur eine davon auf: die neueste Funktion, die vom Betriebssystem unterstützt wird.

Hinweis

IAS hat ursprünglich nur RadiusExtensionProcess unterstützt. IAS unterstützt auch RadiusExtensionProcessExEx. IAS (und höher NPS) unterstützt auch RadiusExtensionProcess2.

 

NPS-Erweiterungs-DLLs können auch die Funktionen RadiusExtensionInit und RadiusExtensionTerm exportieren. Wenn sie vorhanden sind, ruft NPS diese Funktionen auf, wenn der Dienst gestartet bzw. beendet wird.

RadiusExtensionProcess-Rückruffunktion

In einer Authentifizierungserweiterungs-DLL empfängt RadiusExtensionProcess alle Attribute, die von NPS in der Authentifizierungs- oder Buchhaltungsanforderung empfangen werden. Mit diesen Attributen kann die Funktion zusätzliche Überprüfungen durchführen, die Autorisierungen des Benutzers überprüfen oder Buchhaltungsdatensätze an einen zentralen Zustandsserver senden.

In einer Autorisierungserweiterungs-DLL empfängt RadiusExtensionProcess alle Attribute, die vom NPS-Autorisierungsdienst generiert werden. Dies sind die Attribute, die im Access-Accept-Paket zurückgegeben werden.

Nach dem Aufrufen von RadiusExtensionProcess hängt die von NPS ausgeführte Aktion vom Rückgabewert von RadiusExtensionProcess und dem im pfAction-Parameter zurückgegebenen Wert ab. Diese Werte sind in der folgenden Tabelle aufgeführt.

pfAction DLL für die Authentifizierungserweiterung Autorisierungserweiterungs-DLL
Akzeptieren Umgeht alle weiteren Authentifizierungserweiterungs-DLLs und umgeht auch den NPS-Authentifizierungsmechanismus. Akzeptieren Sie unzulässig.
Reject Umgeht alle weiteren Authentifizierungserweiterungs-DLLs und umgeht auch den NPS-Authentifizierungsmechanismus. Access-Reject Paket wird gesendet. Umgeht alle weiteren Autorisierungserweiterungs-DLLs.
Weiter Das Paket wird an die nächste Authentifizierungserweiterungs-DLL oder an den NPS-Authentifizierungsmechanismus gesendet, wenn keine weiteren Authentifizierungserweiterungs-DLLs in der Registrierung aufgeführt sind. Das Paket wird an die nächste Autorisierungserweiterungs-DLL oder an das NPS-Buchhaltungsprotokoll gesendet, wenn keine weiteren Autorisierungserweiterungs-DLLs in der Registrierung aufgeführt sind.

 

Wenn RadiusExtensionProcess für alle Erweiterungs-DLLs einen Fehler zurückgibt, wird das Paket verworfen. Pakete, die aufgrund eines Fehlers verworfen werden, werden nicht vom NPS-Buchhaltungsprotokoll verarbeitet.

Wenn ein Fehler auftritt, sendet NPS ein generisches Fehlerereignis im Ereignisprotokoll. Es wird empfohlen, dass die Erweiterungs-DLL zusätzliche Fehlerprotokollierung bereitstellt.

Weitere Informationen und ein Diagramm, das den vorherigen Prozess darstellt, finden Sie unter Informationen zu NPS-Erweiterungen.

RadiusExtensionProcess sollte einen Fehler zurückgeben, wenn die Annahme oder Ablehnung des Pakets nicht überprüft werden kann. Diese Situation kann auftreten, wenn ein Netzwerkproblem verhindert, dass RadiusExtensionProcess mit seiner Benutzerauthentifizierungsdatenbank kommuniziert.

Bei der Verarbeitung eines Buchhaltungspakets ist der pfAction-ParameterNULL, sodass pfAction nicht festgelegt werden kann. Wenn während der Verarbeitung einer Buchhaltungsanforderung ein Fehler von der RadiusExtensionProcess-Funktion zurückgegeben wird, wird die Anforderung vom NPS verworfen.

Hinweis

Nach dem Empfang einer Annahme ruft NPS RadiusExtensionProcess in den verbleibenden DLLs in der Sequenz nicht auf. Da einige Authentifizierungsfunktionen auch Autorisierungen implementieren können, kann das Überspringen solcher Authentifizierungsfunktionen dazu führen, dass Autorisierungen weggelassen werden. Wenn eine instance von RadiusExtensionProcess Accept zurückgibt, ist es wichtig, keine Annahmen über die abgerufenen Autorisierungen zu treffen.

 

Wenn Continue oder Accept zurückgegeben wird, wird das Profil, das dem Bereich entspricht, im Access-Accept Paket zurückgesendet.

Authentifizierungserweiterungs-DLLs sollten so konzipiert werden, dass sie mit den integrierten NPS-Authentifizierungsanbietern und mit anderen Erweiterungs-DLLs gleichzeitig vorhanden sind. Wenn eine Erweiterung nur für eine bestimmte Benutzerdatenbank (z. B. Windows Active Directory) gilt, sollte sie das im pAttrs-Parameter übergebene ratProvider-Attribut überprüfen, bevor die Anforderung verarbeitet wird. Das ratProvider-Attribut wäre eines aus einer Liste von Attributen, auf die der pAttrs-Parameter verweist.

Erweiterungs-DLLs sollten Anforderungen nicht ablehnen, da erforderliche Attribute fehlen. Wenn eine Authentifizierungserweiterung beispielsweise das User-Password-Attribut ratUserPassword erfordert und das Attribut nicht vorhanden ist, sollte die Erweiterung eine Aktion von raContinue zurückgeben, um anderen Erweiterungen und Anbietern die Möglichkeit zu geben, die Anforderung zu verarbeiten.

NPS ruft die RadiusExtensionProcess-Funktion auf, nachdem die Entscheidung zur Verwendung einer bestimmten Authentifizierungsdatenbank getroffen wurde, aber bevor der Benutzer authentifiziert wird. Daher stehen der Funktion Informationen darüber zur Verfügung, welche Authentifizierungsdatenbank verwendet werden soll, damit die Funktion die Autorisierungen des Benutzers in der entsprechenden Authentifizierungsdatenbank überprüfen kann. NPS unterstützt verschiedene Authentifizierungsdatenbanken, einschließlich Windows Active Directory.

RadiusExtensionProcessEx-Rückruffunktion

NPS-Erweiterungs-DLLs können RadiusExtensionProcessExex anstelle von oder zusätzlich zu RadiusExtensionProcess exportieren. Mit dieser Funktion kann die DLL zusätzliche Autorisierungsattribute an die Authentifizierungsantwort anfügen.

Die im Abschnitt RadiusExtensionProcess-Rückruffunktion beschriebenen Informationen gelten auch für die RadiusExtensionProcessEx-Funktion .

RadiusExtensionProcessEx kann keines der vorhandenen Attribute ändern oder entfernen. Wenn ein Szenario auftritt, in dem die DLL Attribute ändern oder entfernen muss, besteht die einzige Option darin, die NPS-Benutzeroberfläche zu verwenden, um sicherzustellen, dass die Attribute nicht vorhanden sind. Standardmäßig sind keine Autorisierungsattribute vorhanden. Alle, die vorhanden sind, müssen über die Benutzeroberfläche hinzugefügt worden sein.

Wenn mehrere Autorisierungs-DLLs konfiguriert sind und einige dieser DLLs RadiusExtensionProcessExEx implementieren, empfängt die RadiusExtensionProcess/Ex-Funktion in einer bestimmten DLL nicht die Attribute der zuvor als Autorisierungs-DLLs bezeichneten. Es empfängt nur die Attribute, die vom NPS-Autorisierungsdienst generiert werden.

RadiusExtensionProcess2-Rückruffunktion

NPS-Erweiterungs-DLLs können auch RadiusExtensionProcess2 anstelle von oder zusätzlich zu RadiusExtensionProcess und RadiusExtensionProcessEx exportieren. Diese Funktion ermöglicht der DLL das Hinzufügen, Ändern und Entfernen von Attributen zu und aus der Authentifizierungsanforderung oder -antwort.

Die gleichen Informationen, die im Abschnitt RadiusExtensionProcessEx Callback Function beschrieben werden, gelten für die RadiusExtensionProcess2-Funktion , mit den folgenden Ausnahmen:

  • In einer Autorisierungs-DLL empfängt RadiusExtensionProcess2 sowohl die attribute, die vom NPS-Autorisierungsdienst generiert werden, als auch die Attribute, die aus zuvor als Autorisierungs-DLLs bezeichnet wurden.
  • RadiusExtensionProcess2 verfügt nicht über einen pfAction-Parameter . RadiusExtensionProcess2 legt die endgültige Disposition der Anforderung mithilfe der SetResponseType-Funktion fest, die in der RADIUS_EXTENSION_CONTROL_BLOCK-Struktur bereitgestellt wird.
  • NPS ruft immer die RadiusExtensionProcess2-Funktion in allen verbleibenden DLLs auf, unabhängig davon, ob Funktionen in früheren DLLs Accept zurückgegeben haben.

Einrichten der Erweiterungs-DLLs

Benutzeridentifikationsattribute