Aufrufen der Erweiterungs-DLLs

Hinweis

Internet Authentication Service (IAS) wurde ab Windows Server 2008 in 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, RadiusExtensionProcessExoder RadiusExtensionProcess2. NPS ruft diese Funktion für jedes gültige Authentifizierungs- oder Buchhaltungspaket auf, das er vom Network Access Server (NAS) empfängt. NPS ruft diese Funktionen in jeder der DLLs auf, die unterhalb des NPS-Registrierungsschlüssels Parameters aufgeführt sind. Die DLLs werden in der Reihenfolge aufgerufen, in der sie aufgeführt sind.

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

Hinweis

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

NPS-Erweiterungs-DLLs können auch radiusExtensionInit- und RadiusExtensionTerm-Funktionen 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 Vom NPS-Autorisierungsdienst generierten Attribute. Dies sind die Attribute, die im Paket Access-Accept werden.

Nach dem Aufruf 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 Authentifizierungserweiterungs-DLL Autorisierungserweiterungs-DLL
Akzeptieren Umgeht alle weiteren Authentifizierungserweiterungs-DLLs und umgeht auch den NPS-Authentifizierungsmechanismus. Akzeptieren ist nicht zulä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 in der Registrierung keine mehr Authentifizierungserweiterungs-DLLs aufgeführt sind. Das Paket wird an die nächste Autorisierungserweiterungs-DLL oder an das NPS-Kontoführungsprotokoll gesendet, wenn in der Registrierung keine weitere Autorisierungserweiterungs-DLLs 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-Kontoführungsprotokoll verarbeitet.

Wenn ein Fehler auftritt, veröffentlicht NPS ein generisches Fehlerereignis im Ereignisprotokoll. Es wird empfohlen, dass die Erweiterungs-DLL zusätzliche Fehlerprotokollierung bietet.

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 Kontoführungspakets ist der pfAction-Parameter NULL, sodass pfAction nicht festgelegt werden kann. Das Zurückgeben eines Fehlers von der RadiusExtensionProcess-Funktion beim Verarbeiten einer Buchhaltungsanforderung bewirkt, dass die Anforderung vom NPS verworfen wird.

Hinweis

Nach dem Empfang einer Accept-Datei wird RadiusExtensionProcess von NPS in den verbleibenden DLLs in der Sequenz nicht mehr aufruft. Da einige Authentifizierungsfunktionen möglicherweise auch Autorisierungen implementieren, kann das Überspringen solcher Authentifizierungsfunktionen dazu führen, dass Autorisierungen ausgelassen werden. Wenn eine Instanz 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 zurückgesandt.

Authentifizierungserweiterungs-DLLs sollten so konzipiert sein, dass sie mit den integrierten NPS-Authentifizierungsanbietern und anderen Erweiterungs-DLLs koexistiert. Wenn eine Erweiterung nur für eine bestimmte Benutzerdatenbank (z. B. Windows Active Directory) gilt, sollte sie das ratProvider-Attribut überprüfen, das im pAttrs-Parameter übergeben wurde, bevor die Anforderung verarbeitet wird. Das ratProvider-Attribut wäre eines 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 sind Informationen darüber, welche Authentifizierungsdatenbank verwendet werden soll, für die Funktion verfügbar, sodass die Funktion in der entsprechenden Authentifizierungsdatenbank nach den Autorisierungen des Benutzers überprüfen kann. NPS unterstützt verschiedene Authentifizierungsdatenbanken, einschließlich Windows Active Directory.

RadiusExtensionProcessEx-Rückruffunktion

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

Die gleichen Informationen, die im Abschnitt RadiusExtensionProcess Callback Function beschrieben werden, gelten 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 Möglichkeit in der Verwendung der NPS-Benutzeroberfläche, um sicherzustellen, dass die Attribute nicht vorhanden sind. Standardmäßig sind keine Autorisierungsattribute vorhanden. Alle vorhanden sind, müssen über die Benutzeroberfläche hinzugefügt worden sein.

Wenn mehrere Autorisierungs-DLLs konfiguriert sind und einige dieser DLLs RadiusExtensionProcessEximplementieren, erhält die RadiusExtensionProcess/Ex-Funktion in einer bestimmten DLL nicht die Attribute aus den zuvor als Autorisierungs-DLLs bezeichneten DLLs. Sie empfängt nur die Attribute, die vom NPS-Autorisierungsdienst generiert wurden.

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 zur und aus der Authentifizierungsanforderung oder -antwort.

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

Einrichten der Erweiterungs-DLLs

Benutzeridentifikationsattribute