1

Wir verfügen über eine Anwendung, die die nahtlose Anmeldung mit unserem Azure AD-Mandantenkonto über den impliziten OpenID Connect-Flow unterstützt. Wenn der Benutzer berechtigt ist, auf die App zuzugreifen, die von Azure AD ausgestellte Beweise liefert - der Zugriff wird automatisch gewährt, andernfalls zeigen wir den normalen Anmeldebildschirm für die Anwendung an.Azure AD mit prompt = none zeigt ungültige Anforderung an, wenn der Benutzer bei einem anderen Mandanten angemeldet ist

Jedes Mal, wenn eine Benutzerauthentifizierung erforderlich ist, leiten wir den Benutzer zur Anmeldeseite von Azure AD (https://login.microsoftonline.com/xyz) um, die prompt=none angibt.

Die Einhaltung der ODIC specification solche Flagge sollte den folgenden Effekt haben.

Der Autorisierungsserver darf nicht Anzeige jeder Authentifizierung oder Seiten Benutzeroberfläche Zustimmung. Ein Fehler wird zurückgegeben, wenn ein Endnutzer nicht bereits authentifiziert ist oder der Kunde keine vorkonfigurierte Zustimmung für die angeforderten Ansprüche hat oder die anderen Bedingungen für die Bearbeitung der Anfrage nicht erfüllt. Der Fehlercode lautet normalerweise login_required, interaction_required. Dies kann als eine Methode zu Prüfung auf vorhandene Authentifizierung und/oder Zustimmung verwendet werden.

Es funktioniert im Allgemeinen wie erwartet, aber es ist ein Fall, wo Azure AD Anmeldeseite einen Fehler Bildschirm an die Endbenutzer zeigen und es geschieht, wenn Benutzer in einer anderen Azure AD Mieter angemeldet.

Benutzerkonto ‚...‘ von Identitätsanbieter ‚https://sts.windows.net/.../‘ existiert nicht Mieter ‚...‘ und kann nicht auf die Anwendung ‚...‘ in diesem Mieter. Das Konto muss zuerst als externer Benutzer im Mandanten hinzugefügt werden. Melden Sie sich mit einem anderen Azure Active Directory-Benutzerkonto unter ab und wieder an.

Die Fragen sind:

  1. Ist es nicht die ODIC Spezifikation verstoßen?
  2. Wie man solche Fälle in der nahtlosen für Benutzerart und Weise richtig behandelt? (Die App ist nicht dafür verantwortlich, was nach der Weiterleitung an Azure AD passiert).

screenshot

Antwort

2

Obwohl ich auch zustimme, dass dies eine Verletzung der Spezifikation ist, kann ich einen Workaround anbieten?

Ich glaube, dass Sie versuchen können, domain_hint oder login_hint Parameter auch zu spezifizieren, um dem System zu helfen, gültige Sitzung zu bestimmen. Ich hoffe, Sie erhalten die richtige Antwort, unabhängig davon, welcher Sitzungsbenutzer gerade angemeldet ist.

+0

domain_hint macht den Trick! –

1

Ja, das unter Verletzung der Spezifikation ist und besiegt den Zweck des prompt=none da die Anwendung nicht mehr die Kontrolle über die Benutzererfahrung halten. @vibronet kann in der Lage sein, den Datensatz gerade auf MS-Seite einzustellen.

+0

Schätzen Sie Ihre Antwort! @vibronet, wir rufen nach dir :) –

+0

Oh, @vibronet ist Vittorio Bertocci! Liebe deine Artikel ... Danke, dass du die Welt zu einem besseren Ort gemacht hast! –

2

Ja, dies ist eine Verletzung der OIDC-Spezifikation. Wir haben einen Fehler erstellt.

Wenn der Fehler nur auftritt, weil der STS die falsche Sitzung auswählt, können Sie login_hint oder domain_hint verwenden, um dem STS zu helfen, die richtige Sitzung auszuwählen.