In meiner ersten Geschichte (So manipulieren Sie Ihre Azure AD B2C-Daten über Ihre REST-API) habe ich die grundlegende Einrichtung von Prisma für PostgreSQL (ich habe den kostenlosen Plan von Neon.tech verwendet) und wie man Benutzerobjekte im Azure AD-Objektspeicher aktualisieren kann, erklärt. Wir werden untersuchen, wie Sie Ihre Daten in beiden Quellen weiter manipulieren können.
Hier ist das GitHub repo mit dem vollständigen Code.
In meiner vorherigen Story über CRUD-Operationen in Azure AD B2C habe ich erklärt, wie Sie Datenattribute Ihrer Benutzerobjekte „patchen“ (ändern) können und wie Sie einen neuen Benutzerdatensatz mit dem bekannten ORM Prisma in Ihrer PostgreSQL-Datenbank erstellen können (ich habe das kostenlose Angebot von neon.tech genutzt).
Unten ist der Next.js-Codeausschnitt zum Speichern eines neuen Benutzers in der „roles“-Tabelle mit Prisma. Wir übergeben nur ein Attribut, „name“.
Prisma Schema
Hier ist die Modelldefinition für die Rollen-Tabellen in meiner „schema.prisma“-Datei.
Und hier ist die vollständige schema.prisma-Datei mit allen Tabellen, die wir in den letzten Stories definiert haben. Hier ein Link zur Übersicht aller Prisma-Anleitungen
Prisma Datensatz löschen
Wir benutzen dieses Code Snippet für das Löschen des Datensatzes
Hier ist der vollständige Code der Komponente „promoteUser.component.tsx“, in dem ich die Benutzer aus dem Azure AD B2C-Verzeichnis anzeige. In jeder Zeile gibt es ein „Select“ für die Rollen, die wir über Prisma in unserer „roles“-Tabelle definiert haben, sowie einen Button für die Rollenänderung und einen neuen Button für „Benutzer löschen“. Ich verwende die Table-Komponente von Tremor/React als Basisstruktur und drei verschiedene API-Aufrufe für CRUD-Operationen.
API für die Löschung von Benutzern in Azure AD B2C
Wenn wir ein gültiges Zugriffstoken in unserer ApiToken-Tabelle haben, verwenden wir dieses. Andernfalls generieren und speichern wir ein neues. Mit dem Token und der Azure AD B2C ID des Benutzerobjekts können wir den Löschaufruf durchführen.
Benötigte Azure AD B2C-Berechtigungen für die Löschung von Benutzern
Wir verwenden das Dienstprinzipal (App-Registrierung) "TestProd", das ich in dieser Story gezeigt habe. Allerdings ist die Berechtigung zur Löschung von Benutzern nicht gegeben, daher müssen wir diese anpassen.
Um das Problem zu beheben, müssen Sie Ihrem Dienstprinzipal eine Verzeichnisrolle zuweisen, z.B. Benutzeradministrator oder globaler Administrator. Navigieren Sie im Azure-Portal zu Azure Active Directory -> Rollen und Administratoren -> klicken Sie auf Benutzeradministrator oder globaler Administrator -> Zuweisung hinzufügen -> suchen Sie nach Ihrem Dienstprinzipalnamen (muss gesucht werden) -> finden und auswählen -> auf Auswählen klicken.
API für das Löschen der "Rollen" Datensätze mit Prisma
Wir übergeben die UserID aus unserer Komponente, die wir dann verwenden, um den entsprechenden Datensatz aus der Roles-Tabelle mit Prisma zu löschen.
Komponente für die Verwaltung der "Rollen" im Dashboardbereich
Unten finden Sie die Komponente, die wir verwenden, um die erstellten Rollen aufzulisten. Die Komponente zeigt in jeder Zeile eine „Löschen“-Schaltfläche an, damit Sie sie einfach löschen können.
Cloudapp-dev und bevor Sie uns verlassen
Danke, dass Sie bis zum Ende gelesen haben. Noch eine Bitte bevor Sie gehen: