如何通过自动 SSO 登录改进 Azure AD 企业应用程序中的非租户用户体验?

How to improve non-tenant UX in an Azure AD enterprise app with automatic SSO sign-in?

我有一个 Angular 应用程序,它通过 spring 安全后端支持 Azure AD 身份验证。它支持匿名(非租户)访问,但不支持其他身份验证方法。

加载时,如果没有现有会话,应用程序会尝试通过 Azure AD 自动登录,方法是对后端的 Azure 端点(重定向到 Microsoft)执行整页重定向,成功后会重定向回应用程序.

对于拥有现有帐户的用户来说,这一切都运行良好并且运行良好。然而,对于不熟悉该应用程序的非租户用户来说,当他们没有帐户时被重定向到登录页面可能会有点混乱,而且如何继续操作也不是很直观。

我的问题是是否可以 'wrap' Azure AD 登录页面带有一些品牌/消息(例如类似于嵌入式 iframe),或者在流程开始时添加一个额外的步骤.或者,有没有办法在执行重定向之前检测用户是否是非租户用户?这样我就可以解释可怕的登录屏幕意味着什么(或完全避免它)。

我已经尝试为 Azure 端点使用 iframe(似乎由于 Microsoft 安全策略而被阻止),并使用弹出窗口 window(在客户端被阻止,因为它不是通过用户调用的动作)。

我应该提一下,我目前没有使用 Microsoft 的 Azure AD JS 库,但添加它没有问题。

感谢任何帮助!

My question is if it's possible to 'wrap' the Azure AD sign-in page with some branding / messaging (e.g. similar to an embedded iframe), or to add an extra step at the beginning of the process.

是的,可以通过在您的 azure AD sign-in 页面上添加您的组织徽标和自定义配色方案,使用一些 branding/messaging 自定义 azure sign-in 页面。当用户登录到您的组织注册的应用程序(其中 AzureAD 被定义为 IDP)时,将显示此 sign-in 页面。您将为 sign-in 页面执行的 Azure AD 自定义品牌将需要 15 分钟或更长时间才能在用户 sign-in.

之后显示

请注意,sign-in 页面品牌不适用于个人 Microsoft 帐户或个人帐户 sign-in 也

要为您的 Azure AD sign-in 页面配置品牌,请参阅此 MICROSOFT DOCUMENTATION 以进行实施。

有关在 Azure AD 应用程序上添加品牌的指南,请参阅此 MICROSOFT DOCUMENTATION

Alternatively, is there a way to detect if the user is a non-tenant user in advance of performing a redirect?

是的,有一种方法可以通过配置 home realm 发现机制来了解用户是否 non-tenanthome realm 发现是联邦的身份验证行为使用 HRD 策略的用户。它使用自动加速来跳过用户名输入屏幕并自动将用户转发到 Azure AD 应用程序端点。因此,要为您的 Azure AD 租户配置 HRD 策略,请参阅此 MICROSOFT DOCUMENTATION 以进行实施。此外,为了提示用户使用您的租户特定用户名登录您的租户,您可以在授权代码中添加 login_hint 参数身份验证请求。

认证请求中的login_hint parameter详情请参考MICROSOFT DOCUMENTATION

有关更多信息,请参阅此