sichere Weise authentifizieren administrator ASP.NET Website mit OpenID mit DotNetOpenID

StackOverflow https://stackoverflow.com/questions/56944

  •  09-06-2019
  •  | 
  •  

Frage

Ermutigt durch SO, bin ich versucht zu schreiben, eine ASP.NET Website mit OpenID für die Authentifizierung der Benutzer.Es ist eine regelmäßige WinForms-Website (nicht MVC.NET), mit der DotNetOpenId Bibliothek für die Authentifizierung.

Ist es sicher für mich zulassen/verweigern administrative Funktionen auf der Website, indem Sie einfach einen Vergleich der aktuellen Sitzung "ClaimedID" (als zurückgegeben, in den OpenIdLogin_LoggedIn Ereignis, als Mitglied DotNetOpenId.RelyingParty,OpenIdEventArgs.Antwort.ClaimedIdentifier) zu einem bekannten administrator ' s OpenID (d.h.mir)?

Wenn ja, ist es sicher für Sie diese ID, um sichtbar zu sein (z.B.im open-source-code"), oder sollte es sein, "versteckt" in einer Konfigurationsdatei oder einer Datenbank-Reihe?(Ich weiß, es ist besser, das design zu machen es konfigurierbar ist, ist meine Frage nur zur Sicherheit.)

War es hilfreich?

Lösung

Jarrett macht einige gute Kommentare über die Verwendung von Datenbank-Tabellen.

Nur zu beantworten, die anderen Fragen, Nein, es ist nicht eine Vertraulichkeit Sache zu setzen Sie Ihre OpenID in Ihrem code ist in der Regel.Wenn das einrichten von Rollen scheint übertrieben für Ihre Website, eine einfache überprüfung auf Gleichheit gegen Ihre ClaimedIdentifier ist einfach perfekt.

Andere Tipps

Meine Lösung ist, befolgen Sie die gleiche Vorstellung von der Rollen-Tabelle.Nach der Authentifizierung der Benutzer, suchen Sie den Benutzer-Rollen.Wenn der Benutzer über die Rolle "Administrator" in der UserRoles-Tabelle, dann können Sie tun, was der Administrator tun können.

Ich glaube nicht, broadcast-open-ID ' s in my app.Sie sind in der Tabelle gespeichert.Auf jede Aktion Ergebnis, ich bin schlagen Sie die Benutzer-Tabelle, da habe ich auch verändert, mir zum speichern von verschiedenen Benutzer-Status-Informationen.Mit Ausnahme der Startseite, gibt es einige Benutzer, die Informationen, die ich brauche, aus dieser Tabelle.Ich bin mit LINQ, so habe ich auch die .LoadWith() zum laden des Benutzers mit seiner Liste von Rollen, wenn es serialisiert.

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