Zum Hauptinhalt springen

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 eine link-Eigenschaft, du kannst deinen Einladungslink basierend auf der Einladungs-ID erstellen. Zum Beispiel:
    {
    "link": "https://your-app.com/invitation/accept/{your-invitation-id}"
    }
    Dementsprechend musst du eine Landingpage implementieren, wenn dein Eingeladener über den Einladungslink zu deiner Anwendung navigiert.
  • 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

hinweis

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.

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.