2017-06-01 3 views
0

Ich baue eine B2B-SaaS-Anwendung und versuche, die Autorisierung zu implementieren.DotNetCore Identity Multi Tenancy mit Rollen

Benutzer haben ihre eigenen login und werden mit mindestens einer account assoziiert. Die login ist spezifisch für die Person und die account ist spezifisch für die Organisation/Rechnungseinheit. Viele logins können ein Mitglied eines account sein und ein einzelnes login kann auf viele accounts zugreifen, eine einfache viele zu viele Beziehung.

Wie kann ich dies mit Identity-Rollen und -Ansprüchen umsetzen?

Mein Rand-Case-Szenario, das ich kann nicht ganz meinen Kopf um, wenn login A mit account A als Administrator und account B als Nur-Lese-Benutzer zugeordnet ist, dann von meinem Verständnis davon, wie die aus dem Box-Identity-System ist funktioniert, wenn login A arbeitet unter account B, seine Rolle würde fälschlicherweise als ein Administrator und nicht als ein schreibgeschützter Benutzer als die Rollen/Ansprüche Implementierung wird nicht multi tenanted gemeldet werden.

Ich habe eine Menge darüber gegraben und kann nur Informationen/Beispiele dazu finden, wo ein einzelner Benutzer nur unter einem einzigen Mandanten arbeitet (obwohl es mehrere Mandanten innerhalb des Systems gibt).

Kann mir irgendjemand in die richtige Richtung zeigen oder belle ich den falschen Baum an, indem ich versuche, das Out-of-the-Box-Identitätssystem zu benutzen?

+0

Ich denke, der Aufbau eines eigenen Systems wird weniger Zeit in Anspruch nehmen als die Arbeit am Out-of-the-Box-Identitätssystem. – Thibault

Antwort

0

In dem neuen Identitätssystem roles sind nur claims ... Aber Rollen sind nicht dein Freund in diesem Szenario. Ansprüche sind. Wenn sich die Anwendung anmeldet, fügen Sie x Forderungen für Konto A und y für Konto B usw. hinzu. Dann auf Acccount A überprüfen Sie für diesen bestimmten Anspruch und autorisieren Sie entsprechend.

Beispiel:

Konto A Ansprüche könnte wie

over18, canwrite_accountA

Konto B Ansprüche wie

sein kann read_only_account_B

Auf diese Weise sollte der Benutzer entsprechenden Zugriff haben, basierend auf welchem ​​Anspruch Sie autorisieren.

+0

Sie analysieren also Strings, um die Autorisierung zu bestimmen? Irgendwie scheint das keine sehr saubere Lösung zu sein! –

Verwandte Themen