ASP.NET MVC4-Sicherheit, -Authentifizierung und -Autorisierung

Ich arbeite an einem neuen asp.net mvc4-Projekt mit Visual Studio 2011 Beta und versuche, mich mit der gesamten Sicherheitssache vertraut zu machen. Es handelt sich um eine interne Intranetanwendung, die anfänglich die einmalige Anmeldung verwendet, sodass der Benutzer (noch) nicht zur Eingabe einer Windows-ID / eines Windows-Kennworts aufgefordert wird. Das Unternehmen verfügt über eine benutzerdefinierte Anwendung zum Speichern von Rollen für verschiedene Anwendungen und ist über einen Aufruf einer gespeicherten Prozedur verfügbar. Es nimmt die Anmelde-ID eines Benutzers und gibt eine Art Sammlung zurück, die Rollen enthält, z. "MyApp.Data", "MyApp.User", "MyApp.Admin". Also, was ist das? Ist dies ein benutzerdefinierter Mitgliedschaftsanbieter, ein benutzerdefinierter Rollenanbieter oder etwas anderes?

Ich habe alle Details zu Autorisierung, Authentifizierung, Mitgliedschaft, Rollen usw. nachgelesen und kann im Moment den Wald vor lauter Bäumen nicht sehen. Ich habe gelesen, dass die vorhandenen ASP.NET-Sicherheitsobjekte getestet und getestet wurden. Sofern keine sehr komplexen Anforderungen vorliegen, reichen die integrierten Anforderungen aus. Daher verwende ich gerne die bereits vorhandenen.

Wenn ein Benutzer bereits im Netzwerk angemeldet ist, bedeutet dies, dass er authentifiziert ist - richtig? In diesem Fall muss ich nur die Autorisierung implementieren. Muss jeder Controller oder jede Aktion mit dem Attribut "Autorisieren" versehen werden? Wenn ja, wie wird der Teil "ABC" von [Authorize (Roles = "ABC")] festgelegt, wenn ich Rollen von meiner benutzerdefinierten Rollenspeicher-App abrufe?

Ich habe mehrere Artikel und Blogposts gelesen, darunter diesen von Jon Galloway, aber gegen Ende habe ich mich verlaufen:

Authentifizierung und Autorisierung richtig anpassen

So viele Fragen ... wenn jemand eine gute Beschreibung auf hohem Niveau darüber kennt, wie das alles zusammen hängt, dann bin ich ganz Ohr :)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage