Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här genomgången innehåller instruktioner för att implementera en anpassad autentiseringsmetod för AD FS i Windows Server 2012 R2. Mer information finns i Ytterligare autentiseringsmetoder.
Warning
Det exempel som du kan skapa här är endast i utbildningssyfte. De här instruktionerna är för den enklaste, mest minimala implementeringen som är möjlig för att exponera de nödvändiga elementen i modellen. Det finns ingen bakände för autentisering, felhantering eller konfigurationsdata.
Konfigurera utvecklingsmiljön
Den här genomgången använder Visual Studio 2012. Projektet kan skapas med valfri utvecklingsmiljö som kan skapa en .NET-klass för Windows. The project must target .NET 4.5 because the BeginAuthentication and TryEndAuthentication methods use the type System.Security.Claims.Claim, part of .NET Framework version 4.5. Det finns en referens som krävs för projektet:
| Reference dll | Här hittar du den | Required for |
|---|---|---|
| Microsoft.IdentityServer.Web.dll | DLL-filen finns i %windir%\ADFS på en Windows Server 2012 R2-server där AD FS har installerats. Den här dll-filen måste kopieras till utvecklingsdatorn och en explicit referens skapas i projektet. |
Gränssnittstyper som IAuthenticationContext, IProofData |
Skapa providern
I Visual Studio 2012: Välj Arkiv-Ny-Projekt>>...
Välj Klassbibliotek och se till att du riktar in dig på .NET 4.5.
Make a copy of Microsoft.IdentityServer.Web.dll from %windir%\ADFS on the Windows Server 2012 R2 server where AD FS has been installed and paste it in your Project folder on your development machine.
In Solution Explorer, right click References and Add Reference...
Browse to your local copy of Microsoft.IdentityServer.Web.dll and Add...
Click OK to confirm the new reference:
Du bör nu vara redo att lösa alla typer som krävs för leverantören.
Add a new class to your project (Right click your project, Add...Class...) and give it a name like MyAdapter, shown below:
I den nya filen MyAdapter.cs ersätter du den befintliga koden med följande:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Globalization; using System.IO; using System.Net; using System.Xml.Serialization; using Microsoft.IdentityServer.Web.Authentication.External; using Claim = System.Security.Claims.Claim; namespace MFAadapter { class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class } } }Vi är inte redo att bygga ännu... det finns två gränssnitt kvar.
Lägg till ytterligare två klasser i projektet: en är för metadata och den andra för presentationsformuläret. Du kan lägga till dessa i samma fil som klassen ovan.
class MyMetadata : IAuthenticationAdapterMetadata { } class MyPresentationForm : IAdapterPresentationForm { }Därefter kan du lägga till de medlemmar som krävs för var och en. Först metadata (med användbara infogade kommentarer)
class MyMetadata : IAuthenticationAdapterMetadata { //Returns the name of the provider that will be shown in the AD FS management UI (not visible to end users) public string AdminName { get { return "My Example MFA Adapter"; } } //Returns an array of strings containing URIs indicating the set of authentication methods implemented by the adapter /// AD FS requires that, if authentication is successful, the method actually employed will be returned by the /// final call to TryEndAuthentication(). If no authentication method is returned, or the method returned is not /// one of the methods listed in this property, the authentication attempt will fail. public virtual string[] AuthenticationMethods { get { return new[] { "http://example.com/myauthenticationmethod1", "http://example.com/myauthenticationmethod2" }; } } /// Returns an array indicating which languages are supported by the provider. AD FS uses this information /// to determine the best language\locale to display to the user. public int[] AvailableLcids { get { return new[] { new CultureInfo("en-us").LCID, new CultureInfo("fr").LCID}; } } /// Returns a Dictionary containing the set of localized friendly names of the provider, indexed by lcid. /// These Friendly Names are displayed in the "choice page" offered to the user when there is more than /// one secondary authentication provider available. public Dictionary<int, string> FriendlyNames { get { Dictionary<int, string> _friendlyNames = new Dictionary<int, string>(); _friendlyNames.Add(new CultureInfo("en-us").LCID, "Friendly name of My Example MFA Adapter for end users (en)"); _friendlyNames.Add(new CultureInfo("fr").LCID, "Friendly name translated to fr locale"); return _friendlyNames; } } /// Returns a Dictionary containing the set of localized descriptions (hover over help) of the provider, indexed by lcid. /// These descriptions are displayed in the "choice page" offered to the user when there is more than one /// secondary authentication provider available. public Dictionary<int, string> Descriptions { get { Dictionary<int, string> _descriptions = new Dictionary<int, string>(); _descriptions.Add(new CultureInfo("en-us").LCID, "Description of My Example MFA Adapter for end users (en)"); _descriptions.Add(new CultureInfo("fr").LCID, "Description translated to fr locale"); return _descriptions; } } /// Returns an array indicating the type of claim that the adapter uses to identify the user being authenticated. /// Note that although the property is an array, only the first element is currently used. /// MUST BE ONE OF THE FOLLOWING /// "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" /// "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" /// "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" /// "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" public string[] IdentityClaims { get { return new[] { "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" }; } } //All external providers must return a value of "true" for this property. public bool RequiresIdentity { get { return true; } } }Nu bör du kunna F12 (högerklicka – Gå till definition) på IAuthenticationAdapter för att se uppsättningen med nödvändiga gränssnittsmedlemmar.
Därefter kan du utföra en implementering av dessa.
Ersätt hela innehållet i klassen med följande:
namespace MFAadapter { class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class } } }Nu visas presentationsformuläret:
class MyPresentationForm : IAdapterPresentationForm { /// Returns the HTML Form fragment that contains the adapter user interface. This data will be included in the web page that is presented /// to the cient. public string GetFormHtml(int lcid) { string htmlTemplate = Resources.FormPageHtml; //todo we will implement this return htmlTemplate; } /// Return any external resources, ie references to libraries etc., that should be included in /// the HEAD section of the presentation form html. public string GetFormPreRenderHtml(int lcid) { return null; } //returns the title string for the web page which presents the HTML form content to the end user public string GetPageTitle(int lcid) { return "MFA Adapter"; } }Note the 'todo' for the Resources.FormPageHtml element above. Du kan åtgärda det på en minut, men först ska vi lägga till de sista obligatoriska returuttrycken, baserat på de nyligen implementerade typerna, i din ursprungliga MyAdapter-klass. Det gör du genom att lägga till följande i din befintliga IAuthenticationAdapter-implementering:
class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } get { return new MyMetadata(); } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class return new MyPresentationForm(); } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class return new MyPresentationForm(); } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class outgoingClaims = new Claim[0]; return new MyPresentationForm(); } }Nu till resursfilen som innehåller html-fragmentet. Skapa en ny textfil i projektmappen med följande innehåll:
<div id="loginArea"> <form method="post" id="loginForm" > <!-- These inputs are required by the presentation framework. Do not modify or remove --> <input id="authMethod" type="hidden" name="AuthMethod" value="%AuthMethod%" /> <input id="context" type="hidden" name="Context" value="%Context%" /> <!-- End inputs are required by the presentation framework. --> <p id="pageIntroductionText">This content is provided by the MFA sample adapter. Challenge inputs should be presented below.</p> <label for="challengeQuestionInput" class="block">Question text</label> <input id="challengeQuestionInput" name="ChallengeQuestionAnswer" type="text" value="" class="text" placeholder="Answer placeholder" /> <div id="submissionArea" class="submitMargin"> <input id="submitButton" type="submit" name="Submit" value="Submit" onclick="return AuthPage.submitAnswer()"/> </div> </form> <div id="intro" class="groupMargin"> <p id="supportEmail">Support information</p> </div> <script type="text/javascript" language="JavaScript"> //<![CDATA[ function AuthPage() { } AuthPage.submitAnswer = function () { return true; }; //]]> </script> </div>Välj sedan Projekt->Lägg till komponent... Resurser och ge filen namnet Resurser, och klicka på Lägg till:
Then, within the Resources.resx file, choose Add Resource...Add existing file. Gå till textfilen (som innehåller html-fragmentet) som du sparade ovan.
Se till att getFormHtml-koden matchar namnet på den nya resursen korrekt med namnprefixet för resursfilen (.resx-filen) följt av namnet på själva resursen:
public string GetFormHtml(int lcid) { string htmlTemplate = Resources.MfaFormHtml; //Resxfilename.resourcename return htmlTemplate; }
Nu bör du kunna bygga.
Skapa adaptern
Adaptern bör vara inbyggd i en starkt namngiven .NET-sammansättning som kan installeras i GAC i Windows. Slutför följande steg för att uppnå detta i ett Visual Studio-projekt:
Right click your project name in Solution Explorer and click Properties.
On the Signing tab, check Sign the assembly and choose <New...> under Choose a strong name key file: Enter a key file name and password and click OK. Kontrollera sedan att Signera sammansättningen är markerad och att Endast fördröjningstecknet är avmarkerat. The properties Signing page should look like this:
Skapa sedan lösningen.
Distribuera adaptern till AD FS-testdatorn
Innan en extern provider kan anropas av AD FS måste den registreras i systemet. Adapterprovidrar måste tillhandahålla ett installationsprogram som utför nödvändiga installationsåtgärder, inklusive installation i GAC, och installationsprogrammet måste ha stöd för registrering i AD FS. Om detta inte är gjort måste administratören köra Windows PowerShell-stegen nedan. De här stegen kan användas i labbet för att aktivera testning och felsökning.
Förbereda AD FS-testdatorn
Kopiera filer och lägg till i GAC.
Kontrollera att du har en Windows Server 2012 R2-dator eller virtuell dator.
Installera AD FS-rolltjänsten och konfigurera en servergrupp med minst en nod.
Detaljerade steg för att konfigurera en federationsserver i en labbmiljö finns i distributionsguiden för Windows Server 2012 R2 AD FS.
Kopiera Gacutil.exe-verktygen till servern.
Gacutil.exe finns i %homedrive%Program Files (x86)Microsoft SDKsWindowsv8.0AbinNETFX 4.0 Tools på en Windows 8-dator. You will need the gacutil.exe file itself and the 1033, en-US, and the other localized resource folder below the NETFX 4.0 Tools location.
Copy your provider file(s) (one or more strong name signed .dll files) to the same folder location as gacutil.exe (the location is just for convenience)
Lägg till dina .dll-filer i GAC på varje AD FS-federationsserver i servergruppen:
Exempel: använda kommandoradsverktyget GACutil.exe för att lägga till en dll i GAC:
C:>.gacutil.exe /if .<yourdllname>.dllSå här visar du det resulterande objektet i GAC:
C:>.gacutil.exe /l <yourassemblyname>
Registrera din leverantör i AD FS
När ovanstående förutsättningar har uppfyllts öppnar du ett Windows PowerShell-kommandofönster på federationsservern och anger följande kommandon (observera att om du använder federationsservergruppen som använder Intern Windows-databas måste du köra dessa kommandon på servergruppens primära federationsserver):
Register-AdfsAuthenticationProvider –TypeName YourTypeName –Name “AnyNameYouWish” [–ConfigurationFilePath (optional)]Där YourTypeName är ditt starka .NET-typnamn: "YourDefaultNamespace.YourIAuthenticationAdapterImplementationClassName, YourAssemblyName, Version=YourAssemblyVersion, Culture=neutral, PublicKeyToken=YourPublicKeyTokenValue, processorArchitecture=MSIL"
Detta registrerar din externa provider i AD FS, med namnet du angav som AnyNameYouWish ovan.
Starta om AD FS-tjänsten (till exempel med hjälp av snapin-tillägget Windows Services).
Kör följande kommando:
Get-AdfsAuthenticationProvider.Detta visar din leverantör som en av leverantörerna i systemet.
Example:
$typeName = "MFAadapter.MyAdapter, MFAadapter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL” Register-AdfsAuthenticationProvider -TypeName $typeName -Name “MyMFAAdapter” net stop adfssrv net start adfssrvOm du har aktiverat enhetsregistreringstjänsten i AD FS-miljön kör du även följande PowerShell-kommando:
net start drsOm du vill verifiera den registrerade providern använder du följande PowerShell-kommando:
Get-AdfsAuthenticationProvider.Detta visar din leverantör som en av leverantörerna i systemet.
Skapa den AD FS-autentiseringsprincip som anropar din adapter
Skapa autentiseringsprincipen med hjälp av snapin-modulen AD FS Management
Open the AD FS Management snap-in (from the Server Manager Tools menu).
Click Authentication Policies.
In the center pane, under Multi-Factor Authentication, click the Edit link to the right of Global Settings.
Under Välj ytterligare autentiseringsmetoder längst ned på sidan markerar du kryssrutan för providerns AdminName. Click Apply.
To provide a “trigger” to invoke MFA using your adapter, under Locations check both Extranet and Intranet, for example. Click OK. (Information om hur du konfigurerar utlösare per förlitande part finns i "Skapa autentiseringsprincipen med Windows PowerShell" nedan.)
Kontrollera resultaten med hjälp av följande kommandon:
Använd först
Get-AdfsGlobalAuthenticationPolicy. Du bör se providernamnet som ett av värdena för AdditionalAuthenticationProvider.Använd sedan
Get-AdfsAdditionalAuthenticationRule. Du bör se reglerna för extranät och intranät som konfigurerats som ett resultat av ditt principval i administratörsgränssnittet.
Skapa autentiseringsprincipen med Windows PowerShell
Aktivera först leverantören i den globala policyn.
Set-AdfsGlobalAuthenticationPolicy -AdditionalAuthenticationProvider “YourAuthProviderName”`Note
Observera att värdet som anges för parametern AdditionalAuthenticationProvider motsvarar det värde som du angav för parametern "Name" i Register-AdfsAuthenticationProvider cmdlet ovan och till egenskapen "Name" från Get-AdfsAuthenticationProvider cmdlet-utdata.
Set-AdfsGlobalAuthenticationPolicy –AdditionalAuthenticationProvider “MyMFAAdapter”`Konfigurera sedan globala eller förlitande partspecifika regler för att utlösa MFA:
Exempel 1: Skapa en global regel för att kräva MFA för externa begäranden:
Set-AdfsAdditionalAuthenticationRule –AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );'Exempel 2: Skapa MFA-regler för att kräva MFA för externa begäranden till en viss förlitande part. (Note: Individual providers cannot be connected to individual relying parties in AD FS in Windows Server 2012 R2).
$rp = Get-AdfsRelyingPartyTrust –Name <Relying Party Name> Set-AdfsRelyingPartyTrust –TargetRelyingParty $rp –AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );'
Autentisera med MFA med hjälp av adaptern
Utför slutligen stegen nedan för att testa adaptern:
Se till att den globala primära AD FS-autentiseringstypen är konfigurerad som formulärautentisering för både extranät och intranät (detta gör demonstrationen enklare att autentisera som en specifik användare)
In the AD FS snap-in, under Authentication Policies, in the Primary Authentication area, click Edit next to Global Settings.
- Or just click the Primary tab from the Multi-factor policy UI.
Ensure Forms Authentication is the only option checked for both the Extranet and the Intranet authentication method. Click OK.
Öppna html-sidan för IDP-initierad inloggning (https://< fsname>/adfs/ls/idpinitiatedsignon.htm) och logga in som en giltig AD-användare i testmiljön.
Ange autentiseringsuppgifter för primär autentisering.
Du bör se MFA-formulärsidan med exempel på utmaningsfrågor.
Om du har konfigurerat fler än en adapter visas MFA-valsidan med ditt användarvänliga namn.
Nu har du en fungerande implementering av gränssnittet och du har kunskap om hur modellen fungerar. Du kan prova som ett extra exempel för att ange brytpunkter i BeginAuthentication och TryEndAuthentication. Observera hur BeginAuthentication körs när användaren först anger MFA-formuläret, medan TryEndAuthentication utlöses vid varje Skicka i formuläret.
Uppdatera adaptern för lyckad autentisering
Men vänta lite – din exempeladapter kommer aldrig att lyckas autentisera sig! Det beror på att ingenting i koden returnerar null för TryEndAuthentication.
Genom att slutföra procedurerna ovan skapade du en grundläggande adapterimplementering och lade till den på en AD FS-server. Du kan hämta MFA-formulärsidan, men du kan inte autentiseras ännu eftersom du ännu inte har lagt rätt logik i implementeringen av TryEndAuthentication. Så låt oss lägga till det.
Kom ihåg implementeringen av TryEndAuthentication:
public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims)
{
//return new instance of IAdapterPresentationForm derived class
outgoingClaims = new Claim[0];
return new MyPresentationForm();
}
Nu ska vi uppdatera den så att den inte alltid returnerar MyPresentationForm(). För detta kan du skapa en enkel verktygsmetod i klassen:
static bool ValidateProofData(IProofData proofData, IAuthenticationContext authContext)
{
if (proofData == null || proofData.Properties == null || !proofData.Properties.ContainsKey("ChallengeQuestionAnswer"))
{
throw new ExternalAuthenticationException("Error - no answer found", authContext);
}
if ((string)proofData.Properties["ChallengeQuestionAnswer"] == "adfabric")
{
return true;
}
else
{
return false;
}
}
Uppdatera sedan TryEndAuthentication enligt nedan:
public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims)
{
outgoingClaims = new Claim[0];
if (ValidateProofData(proofData, authContext))
{
//authn complete - return authn method
outgoingClaims = new[]
{
// Return the required authentication method claim, indicating the particulate authentication method used.
new Claim( "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", "http://example.com/myauthenticationmethod1" )
};
return null;
}
else
{
//authentication not complete - return new instance of IAdapterPresentationForm derived class
return new MyPresentationForm();
}
}
Nu måste du uppdatera adaptern i testlådan. Du måste först ångra AD FS-principen, sedan avregistrera från AD FS och starta om AD FS, sedan ta bort .dll från GAC, sedan lägga till den nya .dll till GAC, registrera den i AD FS, starta om AD FS och konfigurera om AD FS-principen.
Distribuera och konfigurera det uppdaterade adaptern på din AD FS-testdator
Rensa AD FS-princip
Avmarkera alla MFA-relaterade kryssrutor i MFA-användargränssnittet, som visas nedan och klicka sedan på OK.
Avregistrera leverantör (Windows PowerShell)
PS C:> Unregister-AdfsAuthenticationProvider –Name “YourAuthProviderName”
Example:PS C:> Unregister-AdfsAuthenticationProvider –Name “MyMFAAdapter”
Värdet som du skickar för "Namn" är samma värde som "Namn" som du angav för cmdleten Register-AdfsAuthenticationProvider. Det är också egenskapen "Namn" som kommer från cmdleten Get-AdfsAuthenticationProvider.
Innan du avregistrerar en leverantör måste du ta bort leverantören från AdfsGlobalAuthenticationPolicy (antingen genom att avmarkera kryssrutorna som du har markerat i AD FS-hanteringens snapin-modul eller genom att använda Windows PowerShell.)
AD FS-tjänsten måste startas om efter den här åtgärden.
Ta bort sammansättning från GAC
Använd först följande kommando för att hitta det fullständigt kvalificerade starka namnet på posten:
C:>.gacutil.exe /l <yourAdapterAssemblyName>Example:
C:>.gacutil.exe /l mfaadapterAnvänd sedan följande kommando för att ta bort det från GAC:
.gacutil /u “<output from the above command>”Example:
C:>.gacutil /u “mfaadapter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL”
Lägg till den uppdaterade sammansättningen i GAC
Kontrollera att du klistrar in den uppdaterade .dll lokalt först. C:>.gacutil.exe /if .MFAAdapter.dll
Visa sammansättning i GAC (cmd-rad)
C:> .gacutil.exe /l mfaadapter
Registrera din leverantör i AD FS
PS C:>$typeName = "MFAadapter.MyAdapter, MFAadapter, Version=1.0.0.1, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL”PS C:>Register-AdfsAuthenticationProvider -TypeName $typeName -Name “MyMFAAdapter1”Starta om AD FS-tjänsten.
Skapa autentiseringsprincipen med hjälp av snapin-modulen AD FS Management
Open the AD FS Management snap-in (from the Server Manager Tools menu).
Click Authentication Policies.
Under Multi-Factor Authentication, click the Edit link to the right of Global Settings.
Under Välj ytterligare autentiseringsmetoder markerar du kryssrutan för leverantörens AdminName. Click Apply.
To provide a “trigger” to invoke MFA using your adapter, under Locations check both Extranet and Intranet, for example. Click OK.
Autentisera med MFA med hjälp av adaptern
Utför slutligen stegen nedan för att testa adaptern:
Ensure the AD FS global Primary authentication type is configured as Forms Authentication for both Extranet and Intranet (this makes it easier to authenticate as a specific user).
In the AD FS management snap-in, under Authentication Policies, in the Primary Authentication area, click Edit next to Global Settings.
- Or just click the Primary tab from the Multi-factor policy UI.
Ensure Forms Authentication is the only option checked for both the Extranet and the Intranet authentication method. Click OK.
Öppna html-sidan för IDP-initierad inloggning (https://< fsname>/adfs/ls/idpinitiatedsignon.htm) och logga in som en giltig AD-användare i testmiljön.
Ange autentiseringsuppgifterna för primär autentisering.
Du bör se MFA-formulärsidan med exempel på utmaningstext.
- Om du har konfigurerat fler än en adapter visas MFA val-sidan med ditt användarvänliga namn.
You should see a successful sign-in when entering adfabric at the MFA authentication page.
See Also
Other Resources
Ytterligare autentiseringsmetoder
Hantera risker med ytterligare multifaktorautentisering för känsliga program