0

Ich habe auf meiner Website eine Funktion entwickelt, mit der Sie sich mit Azure anmelden können.Synchronisierung mit Azure Active Directory mit einer mandantenfähigen App (Empfangen von Benutzerbenachrichtigungen)

So dass die Nutzer in meiner Web-Site kann Sign-in mit:

  • Azure (OAuth2). Wir verwenden eine Multi-Tenant-App. Wir verwenden die Anwendung nur, um Benutzer anzumelden. Daher verwenden wir das Access-Token nicht wirklich, um Anfragen zu stellen. Wir verwenden nur den Zugriffstoken, um die Benutzer-E-Mail zu erhalten (Dekodierung mit JWT).

  • Ihr eigenes E-Mail-Passwort können sie auf meiner Website setzen.


Dies schafft ein Problem:

eine Person vorstellen, die in einem Unternehmen arbeiten beginnt. Das IT-Team gibt ihm eine E-Mail, die zu seinem azurblauen Konto gehört (mit seiner Kontodomäne). Dieses Team hat auch ein Konto auf meiner Website (konfiguriert mit den gleichen Domains, die auf Azure verwendet werden). Daher versucht dieser Benutzer, sich mit seinen Anmeldeinformationen bei meiner Site anzumelden. Wir erstellen sein Profil in seinem Unternehmenskonto (aufgrund der E-Mail-Domäne). Er legt sein Passwort fest. Manchmal benutzt er Azure, um sich einzuloggen und manchmal benutzt er sein E-Mail-Passwort, um sich einzuloggen.

Der nächste Monat und diese Person gefeuert werden. Das IT-Team löscht ihn von Azure. Obwohl das IT-Team vergessen, ihn auch auf meiner Website zu löschen. Dieser Benutzer hat also die Berechtigung, sich mit seinen E-Mail-Passwort-Zugangsdaten anzumelden und trotzdem private Informationen zu sehen (er kann sogar private Dateien löschen).


Ich würde gerne wissen, ob es eine Möglichkeit gibt, meine App mit jedem Verzeichnis zu synchronisieren, das es verwendet. So könnte ich Benutzeraktionsbenachrichtigungen (wie Benutzerlöschungen) erhalten. Es wäre großartig, einen Anruf an einen Endpunkt mit Informationen über wichtige Aktionen des Benutzers zu erhalten. Auf diese Weise können wir den Benutzer auch von unserer Plattform löschen. So kann das Unternehmen vergessen, einen Benutzer auf meiner Website zu löschen, ohne das Problem mit gestohlenen Informationen zu haben.

PS: Ich habe gesehen, dass Sie eine Logout-Synchronisierung mit SAML haben, aber ich frage mich, ob wir andere Benachrichtigungen erhalten könnten, weil wir den Benutzer nicht abmelden wollen, wenn dieser abmeldet von Azure.

Antwort

0

ich mit Microsoft Support gesprochen haben, und es gibt keine Möglichkeit, dass Microsoft unseren Endpunkt anruft, um einige Benachrichtigungen zu erhalten.

So die einzige Lösung ist, fragen Sie nach Admin-Berechtigung oder, mit der Refresh_Token von Oauth2, überprüfen Sie den Benutzer immer noch auf Graph (https://graph.microsoft.com/v1.0/me).

0

Wenn Sie die Berechtigung aus dem Ex-Benutzer Mieter Administrator haben ihr Verzeichnis zuzugreifen, können Sie überprüfen, ob der Benutzer aufgeführt ist oder nicht unter Verwendung Microsoft Graph API

+0

Das ist eine gute Idee. Das Problem ist: Wann muss ich überprüfen, ob der Benutzer zu diesem Konto gehört? Nehmen wir an, ich mache es jedes Mal, wenn er sich anmeldet, dann werde ich diesen Benutzer nicht löschen, wenn er sich bereits eingeloggt hat. Also brauche ich noch eine um eine Benachrichtigung zu erhalten. Eine weitere Option ist das Abmelden von Benachrichtigungen mithilfe von SAML. Ich möchte jedoch nicht, dass sich meine Benutzer bei jedem Abmelden von der Website ausloggen. –

+0

Soweit ich weiß, sendet Azure AD keine solchen Benachrichtigungen du suchst nach. Ich glaube nicht, dass du einen brauchst.Wenn der Benutzer seine Anmeldeinformationen auf Ihrer Website angibt, bevor Sie ihm die Berechtigung erteilen, bestätigen Sie seine E-Mail-Adresse mit dem Verzeichnis des externen Unternehmens. Wenn der E-Mail-Account nicht vorhanden ist oder als inaktiv markiert ist, geben Sie ihm keinen Zugriff. –