0

ich in Visual Studio 2017.erstellen MVC-Anwendung AD-Authentifizierung unter Verwendung von (nicht ADFS)

ich Active Directory verwenden möchte eine neue MVC Intranet-Anwendung erschaffe zu authentifizieren (und Autorisierung) verschiedene Controllern, aber nicht Active Directory Federation-Server (wie wir ihn nicht benutzen).

Hier sind die Schritte, die ich getroffen habe:

  1. Neues Projekt -> ASP.NET Web-Anwendung (.NET Framework)
  2. Select MVC
  3. Klicken Sie auf Ändern Authentifizierung
  4. Select ‚Arbeit oder Schule Konten
  5. Wählen Sie 'On-Premises'

Nein w Die lokale Behörde benötigt eine Metadatendokument-URL. Ich verstehe, dass dies die externe URL für ein ADFS ist, die wir nicht haben.

Wie kann ich meine Anwendung so einrichten, dass sie unsere AD verwendet? Ich muss auch Gruppen in AD verwenden (z. B. erlauben Benutzern in WebAdmin Gruppe Zugriff auf die Admin Controller usw.).

Vielen Dank im Voraus

Antwort

0

Es scheint, dass ich die falsche Einstellung verwendet habe. Wenn Sie Standard-AD verwenden möchten, wählen Sie Windows-Authentifizierung.

"Work or School Accounts" scheint nur für ADFS.

Sobald Ihre Anwendung initialisiert ist, wechseln Sie zur Datei web.config.

Sie werden so etwas wie dieses

<system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
    <authentication mode="Windows" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
    </httpModules> 
</system.web> 

Wir müssen sehen die AD-Gruppen-Funktionalität in unseren web.config hinzuzufügen. Danach wird Ihr system.web Abschnitt getan wird, sollte wie folgt aussehen:

<system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
    <authentication mode="Windows" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 

    <!--NEW--> 
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"> 
     <providers> 
     <clear /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
     </providers> 
    </roleManager> 


    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
    </httpModules> 
    </system.web> 

Sie nun in der Lage sein, Ihre Controller-Klassen/Aktionsmethoden mit folgenden schmücken:

[autorisieren (Roles = @ "IhreDomäne \ Einige AD Gruppenname ")]

oder der übliche Code:

User.IsInRole (@" IhreDomäne \ Some AD Gruppenname "))

Verwandte Themen