Frage

Ein Kunde von uns hat uns angesprochen, eine Anwendung zu entwickeln, und wie üblich der Umfang wächst Tag für Tag.

Zunächst begann es als dedizierten App in ihrem Firmennetzwerk beschränkt. Benutzerauthentifizierung wurde gegründet von dem Windows-Anmeldung des Benutzers aquiring und mit einer SQLServer-Datenbank der Zugriffsrechte hosten. Alle ganz einfach.

Sie wollen nun folgendes:
- Anwendung auf sein Web Based
- Anwendung werden außerhalb des Firmennetzwerks
gehostet - Benutzerauthentifizierung auf die gleiche Weise (keine Verwendung von Passwörtern, nur Windows-Logins)

arbeiten

Um es noch komplizierter, sie wollen, dass die verschiedenen Funktionen der Anwendung, die von einer anderen Anwendung verwendbar sein, welche nur Brände von HTTP-Anfragen.
- Benutzer loggt sich in Firmennetzwerk
- Benutzer startet Corporate Anwendung
- Benutzer verarbeitet Kundendaten
- Der Benutzer klickt auf eine Schaltfläche
- Corporate Application feuert auf unseren gehosteten Web-App
eine HTTP-Anforderung - HTTP-Anforderung enthalten notwendige Authentifizierung und Kundendetails
- Benutzerauthentifizierung abgeschlossen ist ‚automatisch‘ (keine menschliche Beteiligung)
- Kundendaten übertragen werden sicher

Sie sind sehr daran interessiert, uns dies für sie zu tun, wie unser erster Ansatz sehr viel war, was sie wollten. Sie wollen immer noch uns, dies zu tun, obwohl solche gehostete Web-Anwendungen sind nicht unsere besonder. So gehe ich jetzt die Experten;
- Hat jemand irgendwelche Ratschläge, wie man diesen Ansatz
? - Hat jemand eine Warnung über die möglichen Gefahren zu vermeiden

War es hilfreich?

Lösung

Im Grunde sie reden Verbundzugriff. Sie würden einen Authentifizierungspunkt in ihrem Netzwerk gehostet, was wiederum ein Zeichen für Ihre Anwendung weiterleitet, die sie analysiert und ermöglicht (oder stoppt Zugriff). Das ist ziemlich Standard, und MS eine gute Basis für diese in der Geneva Framework zur Verfügung stellen . Dies wird auch für Web-Service-Aufrufe arbeitet, sofern sie ihre Anwendung ändern können WSFed als Protokoll zu verwenden und zu einem Sicherheitstoken-Dienst, die im Stillen gibt die Authentifizierungstoken zu sprechen. In den meisten Fällen werden Sie SAML für diese verwenden. Es hat auch den zusätzlichen Bonus von Authentifizierungsdaten nie außerhalb ihres Firmennetz gehen.

Der Vorschlag von Certificate Based Authentifizierung ist interessant, aber mehr Arbeit erfordert in eine PKI-Infrastruktur Ausrollen. Dies kann teuer werden.

Cardspace wird nicht funktionieren - es ist nicht zu schweigen, wie sie scheinen zu wollen. OpenID ist ein nicht-Starter als auch, es ist entweder nicht schweigen.

Extrapunkte, wenn man sich Azure freuen - die Authentifizierung Bits von Azure auch SAML / WSFed unter der Haube verwenden, und haben Bits von Genf in ihm. Also, wenn Sie in den Cloud dann jeden Ihrer Kunden bewegt würde nur eine Login-Seite in ihrem Netzwerk konfigurieren müssen - alles, was Sie tun würden, ist Vertrauen, der Seite Authentifizierungs Sie auszustellen und analysiert sie nach Ihren Regeln

Andere Tipps

Vielleicht WCF Communciation mit Zertifikatsbasierte Authentifizierung das heißt an externen Benutzer, die den Dienst nutzen, das Unternehmen sie mit einem gültigen Zertifikat zur Verfügung stellt. Dies würde dann kein Benutzername Passwort erfordern, aber den Benutzer gerade durch übernehmen.

Haben Sie schon einen Blick auf SAML ?

Schauen Sie sich Windows Cardspace , da es mit Ihren Anmelde nicht integrieren und ermöglicht die SSO Szenario, das sie benötigen.

Je nachdem, wie Ihre Anwendung aufgebaut ist, können Sie mit dem machineKey in Ihrem web.config Geige zu ermöglichen AJAX-Aufrufe mit Single-Sign-On (SSO). Dies würde ein kleines asp.net app innerhalb des Firmennetzwerkes beinhaltet nur Authentifizierungs-Token auszuteilen und auf Ihre gehostete Anwendung weitergeleitet werden.

Wenn die beiden Apps teilen die gleiche machineKey dann das asp.net Authentifizierungssystem wird gerne Benutzer in Ihre gehostete Anwendung ermöglichen.

Es gibt Probleme mit diesem Ansatz:

  • Sie vorstellen eine andere Abhängigkeit in Ihr System (die Authentifizierung App innerhalb des Firmennetzwerks.) Es wird eine einfache Anwendung sein, aber Sie werden Probleme, wenn sie versuchen Probleme zu diagnostizieren, wenn Sie keinen Zugriff haben.
  • Sie benötigen eine gehostete Dienst der in der gleichen Domäne wie die Authentifizierung app (so das Authentifizierungsticket in dem HTTP-Cookie wird herumgereicht.)
  • Sie werden auch ein SSL-Zertifikat für Ihren gehosteten Dienst benötigen die Informationen zu sichern. (Nicht wirklich ein Nachteil per-se, dann würden Sie wahrscheinlich wollen dies trotzdem tun.)
  • Da Sie und Ihre Kunden werden eine gemeinsame machineKey haben, werden Sie eine Instanz Ihrer App zu diesem bestimmten Client binden.

würde ich einen privaten OpenID-Provider / Server für diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top