Verwenden OWIN Ws-Federation-Paket zu authentifizieren ADFS 3.0
Habe ich ein MVC-intranet-site, die Anforderungen für die Verwendung von AD-Konten für die Authentifizierung.
Ich setup ADFS 3.0 (Win Server 2012 R2) und folgte diese zur Einrichtung des ADFS Relying Party Vertrauen.
Diese anderen post stellt die Ws-Federation-OWIN-Komponenten, und ich würde gerne, es zu benutzen. Er erwähnt, wie eine Verbindung zu einem Azure AD, aber nichts über ADFS.
Ich habe versucht, die Einstellung des Konfigurations-Eigenschaften "MetadataAddress" und "Wtrealm" zu entsprechen, was ich in ADFS konfiguriert, sondern zur Laufzeit bekomme ich eine Fehlermeldung:
A default value for SignInAsAuthenticationType was not found in IAppBuilder Properties.
This can happen if your authentication middleware are added in the wrong order, or if one is missing.
Ich bin auf der Suche für den richtigen Weg entfernen Sie diese Fehler
InformationsquelleAutor der Frage oscarmorasu | 2014-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yeah.. ich stieß auf das gleiche Problem. Tun Sie einfach das folgende-und es sollte funktionieren:
InformationsquelleAutor der Antwort LyphTEC
Ich habe versucht, meinen Kopf um dieses für eine Weile jetzt, und mit Dank speziell auf Lars Kemmann und Tratcherich glaube, dass die akzeptierte Möglichkeit dazu lautet wie folgt:
Es scheint counter-intuitive, dass Sie konfigurieren die Standard-Authentifizierungstyp als "Cookie-Authentifizierung", um WsFederation zu arbeiten, aber diese sind wirklich nur strings identifiziert jedes Stück der middleware (dieser ermöglicht Ihnen die Registrierung die gleiche Art von middleware mehrere Male, zum Beispiel), Sie bewerten Sie wie folgt vor:
CookieAuthenticationDefaults.AuthenticationType
= "Cookies"WsFederationAuthenticationDefaults.AuthenticationType
= "Föderation"Was hier passiert ist, dass wir sagen, OWIN, dass die middleware mit der Aufschrift "Cookies" ein, der standardmäßig verwendet werden soll, um die Authentifizierung von Anforderungen, wir fügen Sie dann die CookieAuthentication middleware (dies ist standardmäßig mit der Bezeichnung "Cookies" von der
CookieAuthenticationDefaults.AuthenticationType
Wert, so haben wir nicht zu schreiben zusätzlichen code, um es einzurichten), und schließlich fügen wir die FederationAuthentication middleware (dies ist gekennzeichnet durchWsFederationAuthenticationDefaults.AuthenticationType
- d.h. "Föderation"), mein Verständnis ist, dass die Föderation middleware nutzt die Cookie-middleware zur Verwaltung von Authentifizierung-bezogene cookies.Alle, dass die linken es zu tun ist, konfigurieren Sie Ihre app aufrufen, die middleware zu einem Zeitpunkt Ihrer Wahl, dies kann erreicht werden in einer Reihe von Möglichkeiten, von denen einige sind wie folgt:
[Authorize]
- Attribut auf eine MVC-ControllerIAuthenticationManager
'sChallenge
Methode (übergabe in der Bezeichnung Föderation middleware)Wenn ich diese Frage gestellt hierLars antwortete mit einem praktischen Beispiel, wie die Anforderung der Authentifizierung für alle Anfragen, die ich dann gebündelt in der OWIN-pipeline wie folgt:
Beachten Sie, dass im ersten Beispiel oben, ich zog die Wtrealm und MetadataAddress Werte in meiner config-Datei für eine einfache Wartung, Sie sind nur einfacher Anwendung-Einstellungen:
Ich hoffe, das hilft.
InformationsquelleAutor der Antwort Tom Tregenna
Eigentlich fehlt Ihnen nur noch diese Linie, die ist in der Regel vor der UseCookieAuthentication Methode aufrufen.
in deinem Fall wäre es
Dies ist, was tatsächlich ausgeführt wird, wenn Sie anrufen UseExternalSignInCookie(...), externalAuthenticationType ist, was Sie übergeben als string-parameter.
So, wenn man die Einstellung ist der AuthenticationType, können Sie sicher rufen UseExternalSignInCookie, wie er es für Sie tut.
InformationsquelleAutor der Antwort John C