Perché a e o in samAccountName possono essere sostituiti con danese å e ø?


27

Un collega mi ha appena dimostrato che gli account nel nostro test AD sono stati in grado di autenticare quando si sostituisce ogni apersonaggio nel loro samAccountName con carattere danese å(ASCII 134 / å).

Ad esempio l'utente <domain>\aaapuò autenticarsi come ååå.

Ho provato a riprodurlo in un AD W2K12R2 appena fornito (server singolo, tutti i valori standard), e funziona anche lì. Ho creato un account aaa(non toccando mai la lettera ånel processo, in modo che nulla contenga å) ed ho eseguito:

PS C: \ Users \ Administrator> runas / user: blocco note

Inserisci la password per ååå:

Tentativo di avviare il blocco note come utente "DEV-DLI \ ååå" ...

PS C: \ Utenti \ Amministratore>

che ha causato l'avvio del blocco note, in esecuzione come aaa.

Lo stesso sembra valere per oe il personaggio danese ø, mentre l'ultimo carattere speciale danese ænon sembra corrispondere a nessun altro personaggio. Con l'utente aaain Active Directory, il tentativo di creare un utente con samAccountName åååfallirà, informandoti che The user logon name you have chosen is already in use (...).

Ho cercato su Google come un pazzo, ma non sono stato in grado di scoprire cosa sta succedendo. Qualcuno ha qualche suggerimento sul perché questo funziona?


5
Il personaggio ædovrebbe corrispondere a ae(la lettera aseguita dalla lettera e), FWIW.
HopelessN00b,

4
Il personaggio ånon esiste in ASCII.
TRiG

1
Sì. Nitpick, ma non esiste "ASCII 134", perché ASCII arriva fino a 127.
hobbs

1
Secondo man ascii: ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes (e.g., ISO 8859-1) contain ASCII as their lower half. The international counterpart of ASCII is known as ISO 646-IRV.Sembra che åsia ISO 8859-1 # 229 ed øè ISO 8859-1 # 248.
Jayhendren,

2
Come madrelingua danese, posso dirti che neanche per me ha senso. Non esiste un sostituto ASCII per le lettere æ e ø. Ci sono alcuni sostituti usati di frequente, ma non sono ortografie valide e in alcuni casi producono una parola completamente diversa. Nel caso di å, è stato aggiunto all'alfabeto meno di un secolo fa e l'uso della vecchia ortografia non introduce alcuna ambiguità. Tuttavia la vecchia ortografia sarebbe usare aa invece di å. Sostituire una singola a con la lettera å non è un'ortografia corretta.
Kasperd,

Risposte:


30

Questo è di progettazione. In breve, Active Directory associa i caratteri accentati / diacritici alla loro forma "semplice". Consultare il seguente articolo di supporto Microsoft.

Comportamento di accesso a Windows se il nome utente contiene caratteri con accenti o altri segni diacritici :

Se il nome utente nel servizio directory di Active Directory contiene uno o più caratteri con accenti o altri segni diacritici, è possibile che non si debba utilizzare il segno diacritico mentre si digita il nome utente per accedere a Windows. È possibile accedere utilizzando la forma semplice del carattere o dei caratteri. Ad esempio, se il nome utente in Active Directory è jésush, è possibile digitare jesush nella casella Nome utente nella finestra di dialogo Accedi a Windows per accedere a Windows.

Questo comportamento si verifica in modo tale che nelle situazioni in cui è necessario accedere a Windows da un computer in cui non è installata la mappatura della tastiera preferita, è comunque possibile accedere a Windows utilizzando il proprio nome utente senza i segni diacritici.


13
Non sono un fan di Microsoft, ma in questo caso sono davvero impressionato dal fatto che la società americana abbia visto i problemi con gli input da tastiera come il vero problema e li abbia affrontati in un modo così elegante.
Danubian Sailor,

20
@ РСТȢѸФХѾЦЧШЩЪЫЬѢѤЮѦѪѨѬѠѺѮѰѲѴ La migliore combinazione di nome utente e commento che devo ancora vedere qui, a proposito.
HopelessN00b,

2
Ci si chiede che tipo di falle di sicurezza potrebbero essersi lasciati alle spalle facendo questo :)
hobbs

5
In realtà quelli non sono segni diacritici, sono lettere completamente separate. Chiamare ø an o con un segno diacritico ha tanto senso quanto chiamare q an o con un segno diacritico. In realtà o, qe ø sono tre lettere diverse, succede solo che due di loro sono in ASCII e una no. Essere in ASCII o no non fa parte della definizione di un segno diacritico. Ma essere in ASCII o no può fare la differenza in quanto è facile accedere.
Kasperd

7
@kasperd Anche questo dipende dalla lingua; in svedese "ä" è una sua lettera, in tedesco è una "a" con un'umlaut come segno diacritico.
Beerbajay,

14

Oltre al riferimento di @ jscott (+1) e leggermente troppo lungo per un commento: qualcosa di simile viene fatto con il caso, come se il nome utente sia memorizzato nel caso corretto, è possibile accedere con un nome utente in tutte le dimensioni minuscole, superiore e anche caso misto. HBruijn = hbruijn = HbRuIjN, AD fa distinzione tra maiuscole e minuscole ma non fa distinzione tra maiuscole e minuscole in alcuni dei campi.

Il termine corretto (nell'IT più spesso visto nella configurazione del database) è Collation ed è ciò che regola l'ordinamento, la corrispondenza e l'equivalenza canonica . Le regole di confronto dipendono in genere anche dalle impostazioni internazionali.

Di interesse può essere https://msdn.microsoft.com/en-us/library/windows/desktop/dd318144(v=vs.85).aspx e http://www.unicode.org/reports/tr10/# Collation_And_Code_Chart_Order

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.