在没有域名的情况下登录 Azure Active Directory

Posted

技术标签:

【中文标题】在没有域名的情况下登录 Azure Active Directory【英文标题】:Logging into Azure Active Directory without a Domain Name 【发布时间】:2013-09-18 19:29:38 【问题描述】:

我们希望将 Azure Active Directory 用作面向外部的应用程序的用户存储。目前,我们的 MVC/C# 4.5 应用程序(使用 WIF)正在通过被动联合对本地 ADFS 2.0 代理/服务器进行身份验证,我们希望将其“移植”到 Azure。我们这样做的方式是,我们让 ACS 位于 AAD 和我们的应用程序之间,这样 ACS 正在取代 ADFS,而 AAD 正在取代 Active Directory(本地)。

从技术角度来看,我们可以做到这一点。但是,我们有一个主要问题是用户不仅必须使用他们的用户名登录,还必须使用域名登录。强迫我们的用户使用虚构的电子邮件地址作为用户名是不合理的(而且只是破坏交易)。

有没有什么方法可以让用户不用输入域名?在我们的例子中,ACS 后面只有一个识别方:一个 AAD 目录。所以我们总是提前知道域名应该是什么。

提前致谢!

【问题讨论】:

【参考方案1】:

您是否希望用户仅使用他们的用户名(例如“mcollier”)而不是他们的完整帐户名(例如“mcollier@mytenant.onmicrosoft.com”)对 Windows Azure AD 进行身份验证?如果是这样,我不认为这是目前可以。

如果我的理解正确,该应用程序使用 ACS 作为 Windows Azure AD 的联合提供程序。只有 Windows Azure AD,对吗?如果只使用一个身份提供者,ACS 在这种情况下提供什么好处?

目标是在 Windows Azure AD 中拥有与本地 Windows Server AD 相同的用户吗?如果是这样,利用启用密码哈希同步的新 DirSync 应该可以解决问题。

【讨论】:

你说得对,我需要他们能够输入“mcollier”而不是“mcollier@mytenant.onmicrosoft.com”,或者在我们的例子中是“mcollier@gold2environment.mydomain.com” ”。 ACS 的好处是我可以稍后将我们客户的本地活动目录(或其他)添加为 IP。但是,如果放弃这个好处可以解决我们的问题,那么我绝对愿意接受这个想法!否则,我无法使用 AAD,我需要一些其他 IP。 :-( 我对此进行的研究越多,我就越认为您是对的,即我想做的事情是不可能的。 :-( 现在可以使用用户名和密码来验证用户身份。查看示例:github.com/AzureADSamples/NativeClient-Headless-DotNet 自 2014 年以来这方面有什么变化吗? Headless Sample 应用程序仍然是实现它的方法吗?实际上,我宁愿不滚动自己的登录屏幕。我希望到目前为止,MS 已经在 Azure 中内置了一些配置,以允许用户登录 sans 域(例如“@mytenant.onmicrosoft.com”)。有什么新东西吗??【参考方案2】:

我可以建议一种解决方法。您可以显示一个屏幕,让他们只输入用户名。获得用户名后,您可以在授权 url 中发送带有 login_hint 参数的 username@mytenant.onmicrosoft.com。它将填写用户名,因此他们只会输入用户名而不输入电子邮件部分。

【讨论】:

以上是关于在没有域名的情况下登录 Azure Active Directory的主要内容,如果未能解决你的问题,请参考以下文章

Azure Active Directory JWT 公钥更改

使用 Keycloak 和 Azure Active Directory 的 SSO

如何在不使用 ADAL.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成

Azure China (11) 域名备案问题

如何在登录时在 JWT 令牌中从 Azure Active Directory 传递自定义扩展属性?

在没有Azure帐户的情况下安装Powershell for Azure