AzureAD UserType

Im Azure AD gibt es normale Benutzer, Gast-Benutzer, Gruppen und noch einige andere Objekte. Zumindest die Benutzer haben auch ein Feld "User Type", welches die Unterscheidung nach Gästen und Anmeldekonten möglich macht. Bei einer Auswertung hinsichtlich Gästen habe ich in einem sehr lange bestehenden Tenant aber Lücken gefunden. Hier meine Analyse

Feld UserType ist leer

Bei der Kontrolle meiner produktiven und Demo-Benutzer ist mir aufgefallen, dass mein Benutzer keinen "User Type" hat:

Genau genommen ist mir das aufgefallen, als ich alle Gäste per Powershell ermitteln wollte und die Zahlen nicht gepasst haben:

$azureaduser=Get-AzureADUser -All:$true 
$azureaduser | group usertype -noelement

Count Name 
----- ---- 
282   Member 
517   Guest 
57

Die 282 Member kann ich verstehen und 517 Gäste sind auch noch im Rahmen aber 57 Objekte ohne Eintrag?. Also habe ich mir diese Objekte schnell per PowerShell ausgegeben

$azureaduser | ? {$_.usertype -eq $null}

ObjectId            DisplayName       UserPrincipalName              UserType
--------            -----------       -----------------              --------
xxxxxxxxxx          xxxxxxx           xxxxxxxxxxxxxxx                Member
....

Ich habe die 57 Objekte hier nicht aufgeführt aber es waren alles "Benutzer", die entweder per ADSync angelegt wurden oder direkt in der Cloud angelegt wurden. Als Gemeinsamkeit habe ich aber das Datum gefunden.

$azureaduser | select @{Name='Created';Expression={get-date($_.ExtensionProperty.createdDateTime)}},usertype | sort created

Created UserType
------- --------
13.04.2011 08:23:12
23.05.2011 08:48:09
23.05.2011 09:32:35
23.05.2011 11:25:31
10.06.2011 07:28:19
27.06.2011 12:08:55
29.06.2011 10:09:46
29.06.2011 10:22:53
04.07.2011 11:43:20
05.01.2012 09:43:34
05.01.2012 09:44:20
05.01.2012 09:45:18
05.01.2012 10:06:42
14.01.2012 11:51:29
01.03.2012 15:50:19
26.03.2012 11:42:46
27.09.2012 11:28:24
27.09.2012 11:28:24
19.12.2012 14:01:13
07.01.2013 14:14:00
12.04.2013 10:06:06
12.04.2013 10:06:06
11.12.2013 15:00:19 Member
21.01.2014 08:56:06 Member
24.01.2014 11:17:35 Member
31.01.2014 16:47:29 Member
03.02.2014 09:32:28 Member
24.02.2014 15:07:50 Member
27.02.2015 10:32:29 Guest
03.03.2015 09:16:59 Guest
04.03.2015 15:58:40 Guest
09.03.2015 15:17:45 Guest
15.03.2015 09:40:42 Guest
....

Leider ist die Spanne zwischen dem 12.4.2013 und 11.12.2013 recht groß, in der keine neuen Benutzer angelegt wurden. Ich kann also nicht genau bestimmen, wann Microsoft dieses Verhalten geändert hat. Ich gehe aber davon aus, dass Tenants ab 2014 alle korrekt provisioniert sind.

Korrigieren

Bislang habe ich keine Probleme mit Benutzern feststellen können, aber es stört natürlich bei Auswertungen, wenn ich nach '$_.usertype -eq "member"' filtern möchte und nicht alle Benutzer geliefert bekomme. Zuerst dachte ich an einen "Full Export" mit ADSync aber das hilft nicht weiter, weil einige der Benutzer eine "onmicrosoft.com"-Adresse hatten und "CloudOnly"-Benutzer warten.

Also habe ich es einfach per AzureAD-PowerShell versucht.

Get-AzureADUser `
   | ? {$_.usertype -eq $null} `
   | Set-AzureADUser -UserType member

Es gab keinen Fehler und das Feld war umgehend gesetzt.

Weitere Links