为什么 samAccountName 中的 a 和 o 可以替换为丹麦语 å 和 ø?

mic*_*lkc 30 windows active-directory

一位同事刚刚向我展示了我们的测试 AD 中的帐户能够asamAccountName用丹麦字符å(ASCII 134 / å)替换其中的每个字符时进行身份验证。

例如,用户<domain>\aaa可以身份验证为ååå

我尝试在新配置的 W2K12R2 AD(单个服务器,所有标准值)中重现它,它也可以在那里工作。我创建了一个帐户aaaå在此过程中从未接触过这封信,因此没有包含å)并运行:

PS C:\Users\Administrator> runas /user:ååå notepad
Enter the password for ååå:
Attempting to start notepad as user "DEV-DLI\ååå" ...
PS C:\Users\Administrator>
Run Code Online (Sandbox Code Playgroud)

这导致记事本启动,以aaa.

o和丹麦字符似乎也是如此ø,而最后一个丹麦特殊字符æ似乎不对应任何其他字符。对于aaaAD 中的用户,尝试使用 samAccountName 创建用户ååå将失败,并通知您The user logon name you have chosen is already in use (...).

我像疯子一样用谷歌搜索,但一直无法找出发生了什么。有没有人有任何关于为什么这有效的提示?

jsc*_*ott 33

这是设计使然。简而言之,Active Directory 将重音/变音字符映射到它们的“简单”形式。请参阅以下 Microsoft 支持文章。

如果您的用户名包含带有重音符号或其他变音符号的字符(死链接)(此处存档的实时版本),则 Windows 登录行为

如果您在 Active Directory 目录服务中的用户名包含一个或多个带有重音符号或其他变音符号的字符,您可能会发现在键入用户名登录 Windows 时不必使用变音符号。您可以使用字符或字符的简单形式登录。例如,如果您在 Active Directory 中的用户名是 jésush,您可以在登录到 Windows 对话框的用户名框中键入 jesush 以登录到 Windows。

发生这种情况是为了在您必须从未安装首选键盘映射的计算机登录到 Windows 的情况下,您仍然可以使用不带变音符号的用户名登录到 Windows。

  • @РСТȢѸФХѾЦЧШЩЪЫЬѢѤЮѦѪѨѬѠѺѮѰѲѴ 顺便说一下,用户名和评论的最佳组合我还没有在这里看到。 (20认同)
  • 我不是微软的粉丝,但在那种情况下,我真的很惊讶这家美国公司已经将键盘输入的问题视为真正的问题,并以非常优雅的方式解决它。 (13认同)
  • @kasperd 这也取决于语言;在瑞典语中,'ä' 是它自己的字母,在德语中它是一个带有变音符号的'a'。 (7认同)
  • 实际上那些不是变音符号,它们是完全独立的字母。用变音符号调用 ø an o 和用变音符调用 q an o 一样有意义。实际上 o、q 和 ø 是三个不同的字母,只是碰巧其中两个是 ASCII,其中一个不是。是否为 ASCII 不是变音符号定义的一部分。但是是否使用 ASCII 会影响登录的难易程度。 (5认同)
  • 有人想知道他们这样做可能会留下什么样的安全漏洞:) (2认同)
  • @beerbajay 我什至没有想到可以认为同一个字符在一种语言中具有变音符号,而在另一种语言中则没有。但既然你提到它,那就完全有道理了。 (2认同)

HBr*_*ijn 17

这是“整理”的结果

除了@jscott 的参考(+1)和评论有点太长之外:
对案例做了类似的事情,虽然用户名存储在正确的案例中,但您可以使用所有小,大和甚至混合大小写。HBruijn = hbruijn = HbRuIjN, AD区分大小写,但在某些字段中不区分大小写

正确的术语(在 IT 中最常出现在数据库配置中)是Collat​​ion,它控制着排序、匹配和规范等价。整理规则通常还取决于区域设置。

感兴趣的可能是