SSO mit Azure ADFS und OWIN

8

Vielen Dank für Ihre Hilfe. Ich habe eine Site, die sich mit Active Directory-Verbunddiensten für Single Sign On authentifizieren kann. Zur Zeit funktioniert meine Site so, dass mein Code standardmäßig versucht, wenn ein Benutzer meine Site besucht, sich dann in SSO einzuloggen (ich benutze dazu die OWIN-Bibliothek). Wenn sich der Benutzer nicht in unserem Netzwerk befindet, kann er sich nicht authentifizieren. Er wird zur Anmeldeseite meines Unternehmens weitergeleitet, wo er seine Unternehmensanmeldeinformationen eingeben kann.

Ich möchte dieses Verhalten jedoch ändern. Wenn der Benutzer meine Seite aufruft, sollte er stattdessen wie üblich weiterarbeiten und auf meine Site umgeleitet werden. Aber wenn sie sich nicht authentifizieren, möchte ich nicht, dass sie auf unsere Anmeldeseite weitergeleitet werden. Stattdessen möchte ich, dass sie auf meine Website zurückgeleitet werden, wo mein Code bestimmt, was sie auf der Website tun können und was nicht. Ich möchte dann einen Link bereitstellen, damit sie sich entscheiden können, auf die Login-Seite zu gehen.

Ich möchte dieses Verhalten, weil die Mehrheit der Benutzer dieser Site nicht Teil des Firmennetzwerkes sein wird und sich nicht authentifizieren kann. SO sollten sie standardmäßig unsere Homepage sehen. Es kann jedoch vorkommen, dass ein Firmenmitglied von zu Hause aus arbeitet und sich nicht in unserem Netzwerk befindet, um sich zu authentifizieren. In diesem Fall würden sie dann den Link verwenden, der sie an die Azure-Anmeldeseite sendet.

Hier ist der Code, den ich derzeit verwende (Site ist ASP.net, Formular Webseite (nicht MVC)):

Startup.Auth.vb:

%Vor%

Dann mache ich das auf meinem Default.aspx.vb-Seitenladeereignis:

%Vor%

Das Problem ist, ich weiß nicht, wie ich versuchen soll, den Benutzer zu authentifizieren, festzustellen, ob sie authentifiziert sind, und sie entsprechend umzuleiten. Jede Hilfe würde sehr geschätzt werden.

Danke

    
jason 09.01.2018, 17:53
quelle

2 Antworten

2

Es gibt keine solide / korrekte Methode, um zu überprüfen, ob sich ein anonymer Benutzer in Ihrem Netzwerk befindet (oder mir nicht bekannt ist). Möglich ist die Überprüfung der IP-Adresse (Reichweite), die Benutzer in Ihrem Netzwerk öffentlich im Internet haben. Dies können Sie mit dem / den Netzwerkadministrator (en) überprüfen. Sie können Ihnen die öffentliche IP-Adresse (Bereich) mitteilen.

Sobald Sie die öffentliche IP-Adresse (Bereich) kennen, können Sie die eingehende Anfrage prüfen, um zu vergleichen, ob die Anfrage von der bekannten Reichweite der IP-Adresse (Bereich) in RedirectToIdentityProvider function kommt.

%Vor%

Vielleicht möchten Sie es ein wenig optimieren, da ich es nicht versucht habe, aber Sie möglicherweise in die richtige Richtung zeigen.

    
cloudikka 25.01.2018, 12:48
quelle
-1

Es tut mir leid, dass ich kein vollständiges Codebeispiel angegeben habe, aber meiner Meinung nach:

  • Sie können versuchen, die Anmeldeseite Eingabeaufforderungen zu umgehen, werfen Sie einen Blick hier , die erklären, wie Sie:
  

Bypass das Anmelde-Seite fordert von Ihrem Unternehmen bestehende Verbunddomäne Namen an das Ende der Windows Azure Management Portal URL Hinzufügen

  

Wenn sich Benutzer mit Azure AD anmelden, überprüft diese Funktion die Passwörter der Benutzer direkt gegen Ihr lokales Active Directory.

Schließlich fand ich, dass die Diese Frage kann sich auf Ihre Frage beziehen.

    
A STEFANI 24.01.2018 11:47
quelle