Skip to content

MFA extension for Microsoft AD FS that performs remote Second Factor Authentication calls to OpenConext-Stepup using the Stepup Second Factory Only (SFO) protocol

License

Notifications You must be signed in to change notification settings

SURFnet/ADFS-MFA-SAML2.0-Extension

Repository files navigation

ADFS-MFA-SAML2.0-Extension

This is a MFA extension for Microsoft AD FS 3.0 (Windows 2012R2), 4.0 (Windows 2016) and 5.0 (Windows 2019) that authenticates a user's second factor in OpenConext-Stepup. It uses the second factor only (SFO) endpoint of the Stepup-Gateway to authenticate the second factor of the user.

Requirements

  • This version of the plugin requires at least version 2.7.0 of the Stepup-Gateway. Recommended version is 4.1.2 or later.
  • The setup program must be executed from an elevated command prompt on each AD FS server in the farm

Precompiled versions

Precompiled versions of the extension can be downloaded from the github releases page. Note that these prebuild versions are targeted to SURF's SURFsecureID service, and contain SURFsecureID specific configuration.

However, since version 2.0 of the plugin you no longer need to recompile the plugin to support other Stepup installations. To use the setup program with your own environments, update the SURFnet.Authentication.MFA.plugin.Environments.json file in the "config" directory of the SetupPackage with the configuration for your own installation(s).

The SetupPackage-2.x.x and the included Setup.exe have been codesigned with "SURF B.V.".

Installation and Upgrading

  • See the included INSTALL file for installation instructions
  • See the included UPGRADE file for upgrade instructions

Configuration

Basic configuration is done using the Setup program. Advanced configuration requires manual editing of the configuration files. See the included CONFIGURATION.md file for more information.

Known issues and troubleshooting

See the included KNOWN_ISSUES file for known issues and their solutions.

Logging

The Event Viewer contains two locations with log events that are useful for troubleshooting:

  1. "Application and Services Logs" --> "AD FS" --> "Admin"
  2. "Application and Services Logs" --> "AD FS Plugin"

Building from Source

  • Use Visual Studio 2019 with the ".NET desktop development" workload installed to open the solution. Using the Visual Studio Community edition is fine. Visual Studio 2017 builds have been verified not to work, later editions have not been verified.

  • This project uses the NuGet package manager. Before building you must Restore the NuGet packages (e.g. run "nuget restore" from the console).

  • You need a .snk private key for signing the plugin dll's and generating strong names:

    • Put your .snk in SolutionItems/SURFnet.Authentication.Adfs.Plugin.snk. You can use sn.exe from the Windows 10 SDK to generate a .snk file and to extract its public key (token).
    • Use SignSustainsys.cmd to sign the Sustainsys component
  • Update src\SURFnet.Authentication.Adfs.Plugin.Setup\Versions\CurrentPublicTokenKey.cs with the PublicKeyToken of your SolutionItems/SURFnet.Authentication.Adfs.Plugin.snk

  • To make a release, run the SolutionItems/MakeRelease.cmd script. This script requires:

    • 7z.exe in C:\Program Files\7-Zip\ (download from https://www.7-zip.org/) Additionally to codesign the zip (optional) you need:
    • signtool.exe from a Windows SDK. This tool is included in the Windows 10 SDK
    • A code signing certificate in the certificate store Run the script:
    • Change to the SolutionItems directory
    • Run MakeRelease.cmd <version>

Resources

About

MFA extension for Microsoft AD FS that performs remote Second Factor Authentication calls to OpenConext-Stepup using the Stepup Second Factory Only (SFO) protocol

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published