Organisationsmitglieder einladen
Als eine Multi-Organisation-Anwendung ist es eine häufige Anforderung, Mitglieder in deine Organisation einzuladen. In diesem Leitfaden führen wir dich durch die Schritte und technischen Details, um diese Funktion in deiner Anwendung zu implementieren.
Überblick über den Ablauf
Der gesamte Prozess wird im folgenden Diagramm veranschaulicht:
Organisationrollen erstellen
Bevor du Mitglieder in deine Organisation einlädst, musst du Organisationrollen erstellen. Sieh dir den Leitfaden Organisationen konfigurieren für detaillierte Anweisungen an.
In diesem Leitfaden erstellen wir zwei typische Organisationrollen: admin
und member
.
Die admin
-Rolle hat vollen Zugriff auf alle Ressourcen in der Organisation, während die member
-Rolle eingeschränkten Zugriff hat. Zum Beispiel kann jede Rolle einen Satz von Berechtigungen haben, wie folgt:
admin
-Rolle:read:data
- Lesezugriff auf alle Organisationsdatenressourcen.write:data
- Schreibzugriff auf alle Organisationsdatenressourcen.delete:data
- Löschzugriff auf alle Organisationsdatenressourcen.invite:member
- Mitglieder in die Organisation einladen.manage:member
- Mitglieder in der Organisation verwalten.delete:member
- Mitglieder aus der Organisation entfernen.
member
-Rolle:read:data
- Lesezugriff auf alle Organisationsdatenressourcen.write:data
- Schreibzugriff auf alle Organisationsdatenressourcen.invite:member
- Mitglieder in die Organisation einladen.
Dies kann einfach in der Logto Admin-Konsole durchgeführt werden. Du kannst auch die Logto Management API verwenden, um Organisationrollen programmgesteuert zu erstellen.
Deinen E-Mail-Connector konfigurieren
Da Einladungen per E-Mail versendet werden, stelle sicher, dass dein E-Mail-Connector ordnungsgemäß konfiguriert ist. Um Einladungen zu senden, musst du einen neu eingeführten E-Mail-Vorlagennutzungstyp konfigurieren - OrganizationInvitation
.
Hinweis
Der integrierte "Logto-E-Mail-Dienst" von Logto Cloud unterstützt derzeit nicht den Nutzungstyp OrganizationInvitation
. Stattdessen musst du deinen E-Mail-Connector (z.B. Sendgrid) konfigurieren und die OrganizationInvitation
-Vorlage einrichten.
Eine Beispiel-E-Mail-Vorlage für den Nutzungstyp OrganizationInvitation
wird unten gezeigt:
{
"subject": "Willkommen in meiner Organisation",
"content": "<p>Tritt meiner Organisation über diesen <a href=\"{{link}}\" target=\"_blank\">Link</a> bei.</p>",
"usageType": "OrganizationInvitation",
"type": "text/html"
}
Der Platzhalter {{link}}
im E-Mail-Inhalt wird beim Senden der E-Mail durch den tatsächlichen Einladungslink ersetzt. In diesem Leitfaden nehmen wir an, dass es https://your-app.com/invitation/accept/{your-invitation-id}
wäre.
Du kannst den Leitfaden Beliebte E-Mail-Dienste konfigurieren für weitere Details zur Einrichtung von E-Mail-Connectors einsehen.
Einladungen mit Logto Management API bearbeiten
Hinweis
Wenn du die Logto Management API noch nicht eingerichtet hast, sieh dir Interaktion mit Management API für Details an.
Wir haben eine Reihe von einladungsbezogenen Management APIs in der Organisationsfunktion bereitgestellt. Mit diesen APIs kannst du:
POST /api/organization-invitations
eine Organisationseinladung mit einer zugewiesenen Organisationrolle erstellen.POST /api/organization-invitations/{id}/message
die Organisationseinladung per E-Mail an den Eingeladenen senden. Hinweis: Diese API-Nutzlast unterstützt einelink
-Eigenschaft, du kannst deinen Einladungslink basierend auf der Einladungs-ID erstellen. Zum Beispiel:Dementsprechend musst du eine Landingpage implementieren, wenn dein Eingeladener über den Einladungslink zu deiner Anwendung navigiert.{
"link": "https://your-app.com/invitation/accept/{your-invitation-id}"
}GET /api/organization-invitations
&GET /api/organization-invitations/{id}
alle deine Einladungen oder eine bestimmte nach ID abrufen. Auf deiner Landingpage kannst du diese APIs verwenden, um alle Einladungen oder Details einer Einladung, die ein Benutzer erhalten hat, aufzulisten.PUT /api/organization-invitations/{id}/status
die Einladung annehmen oder ablehnen, indem du den Einladungsstatus aktualisierst. Verwende diese API, um die Antwort des Benutzers auf die Einladung zu bearbeiten.
Bitte beachte, dass alle oben aufgeführten APIs ein gültiges "Organisationstoken" erfordern. Sieh dir diesen Leitfaden an, um zu erfahren, wie du das Organisationstoken erhältst.
Organisation rollenbasierte Zugangskontrolle (RBAC) zur Verwaltung von Benutzerberechtigungen verwenden
Mit den obigen Einstellungen kannst du nun Einladungen per E-Mail senden, und Eingeladene können der Organisation mit der zugewiesenen Rolle beitreten.
Benutzer mit unterschiedlichen Organisationrollen haben unterschiedliche Berechtigungen in ihren Organisationstokens. Daher sollten sowohl deine Client-App als auch Backend-Dienste diese Berechtigungen überprüfen, um sichtbare Funktionen und erlaubte Aktionen zu bestimmen.
Berechtigungsaktualisierungen in Organisationstokens bearbeiten
Stelle sicher, dass du die Organisation in deine App integriert hast. Sieh dir den Integrationsleitfaden für weitere Details an.
Das Verwalten von Berechtigungsaktualisierungen in Organisationstokens umfasst:
Vorhandene Berechtigungen widerrufen
Zum Beispiel sollte das Herabstufen eines Admins zu einem Nicht-Admin-Mitglied Berechtigungen vom Benutzer entfernen. In einem solchen Fall kannst du einfach das zwischengespeicherte Organisationstoken löschen und ein neues mit Auffrischungstoken abrufen. Die reduzierten Berechtigungen werden sofort im neu ausgestellten Organisationstoken widergespiegelt.
Neue Berechtigungen gewähren
Dies kann weiter in zwei Szenarien unterteilt werden:
Neue Berechtigungen gewähren, die bereits in deinem Auth-System definiert sind
Ähnlich wie beim Widerrufen von Berechtigungen, wenn die neu gewährte Berechtigung bereits beim Auth-Server registriert ist, kannst du einfach ein neues Organisationstoken ausstellen, und die neuen Berechtigungen werden sofort widergespiegelt.
Neue Berechtigungen gewähren, die neu in deinem Auth-System eingeführt wurden
In diesem Fall musst du einen erneuten Anmelde- oder Zustimmungsvorgang auslösen, um das Organisationstoken des Benutzers zu aktualisieren. Zum Beispiel durch Aufrufen der signIn
-Methode im Logto SDK.
Erfahre mehr über das Ausstellen eines Organisationstokens
Echtzeit-Berechtigungsprüfung implementieren und Organisationstoken aktualisieren
Logto bietet Management API, um Echtzeit-Benutzerberechtigungen in der Organisation abzurufen.
GET /api/organizations/{id}/users/{userId}/scopes
(API-Referenzen)
Du kannst dann die Berechtigungen im Organisationstoken des Benutzers mit den Echtzeit-Berechtigungen vergleichen, um festzustellen, ob der Benutzer befördert oder herabgestuft wurde.
-
Wenn herabgestuft, kannst du einfach das zwischengespeicherte Organisationstoken löschen und das SDK wird automatisch ein neues mit den aktualisierten Berechtigungen ausstellen.
const { clearAccessToken } = useLogto();
...
// Wenn die abgerufenen Echtzeit-Berechtigungen weniger Berechtigungen haben als die Organisationstoken-Berechtigungen
await clearAccessToken();Dies erfordert keinen erneuten Anmelde- oder Zustimmungsvorgang. Neue Organisationstokens werden automatisch vom Logto SDK ausgestellt.
-
Wenn eine neue Berechtigung in dein Auth-System eingeführt wird, löse einen erneuten Anmelde- oder Zustimmungsvorgang aus, um das Organisationstoken des Benutzers zu aktualisieren. Nehmen wir das React SDK als Beispiel:
const { clearAllTokens, signIn } = useLogto();
...
// Wenn die abgerufenen Echtzeit-Berechtigungen neu zugewiesene Berechtigungen haben als die Organisationstoken-Berechtigungen
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});Der obige Code wird eine Seitennavigation zum Zustimmungsbildschirm auslösen und automatisch zurück zu deiner App umleiten, mit aktualisierten Berechtigungen im Organisationstoken des Benutzers.