2017-10-23 1 views
1

Haftungsausschluss: Ich bin sehr neu in all dem, bitte haben Sie also etwas Geduld. :)Die Verzeichnisschemaerweiterung kann nicht auf Benutzerressourcen angewendet werden, die mit Graph Explorer erstellt wurden.

Mein Ziel ist es, eine Verzeichnisschemaerweiterung zu erstellen, die auf die Benutzerressourcen meines O365-Unternehmensverzeichnisses abzielt. Die Erweiterung ist sehr einfach mit nur 3 String-Feldern. Die Idee ist, dass jeder Benutzer im Verzeichnis diese Erweiterung auf sein Benutzerobjekt mit spezifischen Werten für die 3 Felder, die es enthält, anwenden soll.

Dazu habe ich den Graph Explorer verwendet, wo ich mein Admin-Mandantenkonto verwendet habe, um eine einfache (domainüberprüfte) Verzeichnisschemaerweiterung (domain_schemaname) mit drei Feldern zu erstellen, die auf die Benutzerressource abzielt.

Ich kann bestätigen, dass die Verzeichnisschemaerweiterung mit dem Status Available mit /v1.0/schemaExtensions erstellt wird.

Nachdem ich das Verzeichnis aktualisiert habe, habe ich eine Graph Explorer-Abfrage ausgeführt, um die Extensions für mich selbst (dh /v1.0/me/extensions) sowie anderer Benutzer im Verzeichnis zu erhalten, jedoch gibt der Wert des Extensionsknotens immer ein leeres/null zurück Wert ([]).

Ich bin verwirrt, da ich den Eindruck hatte, dass sobald ich eine Verzeichnisschemaerweiterung für ein bestimmtes Ressourcenziel (dh die Ressource user) erstellen würde, die Schemaerweiterung sofort in den Eigenschaften einer vorhandenen oder neuen Instanz von angezeigt würde eine user Ressource. Dann wäre ich in der Lage PATCH der spezifische Benutzer mit den Werten für die Verzeichnisschemaerweiterung.

Das Problem ist, dass, wenn ich versuche, eine Erweiterung zu einer Benutzerinstanz über den Graph Explorer hinzuzufügen, erstellt es immer eine openTypeExtension Art von Erweiterung, während ich nur den Benutzer nur den Inhalt einer Verzeichnisschemaerweiterung zuweisen möchten bereits in der schemaExtensions für meine Organisation erstellt.

So, es scheint, dass ich Graph Explorer nicht verwenden kann, um eine Verzeichnisschemaerweiterung auf ein bestimmtes Benutzerobjekt anzuwenden.

Benutze ich das falsche Werkzeug für den Job?

Können Sie angeben, wie ich alle Benutzer in meinem O365-Verzeichnis mit der jeweiligen Verzeichnisschemaerweiterung füllen und jedem Benutzer einen eindeutigen Wert zuweisen soll?

Muss ich die Microsoft Graph Client-Bibliothek und MSAL/ADAL verwenden, um eine Konsolenanwendung zum Erstellen meiner Verzeichnisschemaerweiterung zu erstellen und sie auf jeden Benutzer in meinem Verzeichnis anzuwenden und dann ihren Wert für jeden anderen Benutzer zu aktualisieren?

Vielen Dank für Ihre Hilfe.

+1

Ich empfehle Ihnen, Ihre Frage aktualisieren mit einigen der REST-Abfragen, die Sie im Graph-Explorer, und die nachfolgenden ausgegebenen Ergebnisse machen. Es wird allen immens helfen. –

Antwort

0

Ich kann bestätigen, dass die Verzeichnisschemalextension mit dem Status Available erstellt wird und/v1.0/schemaExtensions verwendet.

Nachdem ich das Verzeichnis aktualisiert habe, habe ich eine Graph Explorer-Abfrage ausgeführt, um die Erweiterungen für mich selbst (dh/v1.0/me/extensions), sowie anderer Benutzer im Verzeichnis, jedoch den Wert von Erweiterungen zu erhalten Der Knoten gibt immer einen leeren/null-Wert ([]) zurück.

Nach dem Erstellen der Schemaerweiterung müssen wir den Wert der Erweiterungseigenschaft aktualisieren, bevor wir den Wert abrufen können.

Zum Beispiel habe ich registrieren eine Schemaerweiterung wie Anfrage unter:

POST: https://graph.microsoft.com/v1.0/schemaExtensions 
Content-type: application/json 
authorization: bearer {access_token} 

{ 
    "id": "coursesforuser", 
    "description": "Graph Learn training courses extensions", 
    "targetTypes": [ 
    "User" 
    ], 
    "properties": [ 
    { 
     "name": "courseId", 
     "type": "Integer" 
    }, 
    { 
     "name": "courseName", 
     "type": "String" 
    }, 
    { 
     "name": "courseType", 
     "type": "String" 
    } 
    ] 
} 

Dann aktualisiere ich diese Eigenschaft auf den jeweiligen Benutzer:

PATHCH:https://graph.microsoft.com/v1.0/me 
Content-type: application/json 
authorization: bearer {access_token} 

{ 
    "exte5t2z4fr_coursesforuser":{ 
     "courseId":"123", 
     "courseName":"New Managers", 
     "courseType":"Online" 
    } 
} 

Danach können wir diese Eigenschaft erhalten die Verwendung von Parameter:

GET: https://graph.microsoft.com/v1.0/me?$select=exte5t2z4fr_coursesforuser 
authorization: bearer {access_token} 

Mehr Details über th e Schema-Erweiterung, können Sie folgenden Link folgen:

Add custom data to groups using schema extensions

+0

Hallo Fei Xue und danke für die Eingabe. Ich habe es versucht und bekomme immer BadRequest. Diese ist die Schemaerweiterung ich in meinem Verzeichnis definiert haben: 'Code' { "id": "domain_TestMetadata1", "description": "Test-Metadaten 1", "targetTypes": [ "User" ], "Status": "Verfügbar", "Besitzer": "74bf95dc-d299-4e44-9f52-b081677b2d3c", "Eigenschaften": [{ "name": "AX", "type": "String" } ] } – devshed

+0

Würde es Ihnen etwas ausmachen, teilen Sie die genaue Anfrage für die Aktualisierung der Wert der Erweiterung der detaillierten äh ror Nachricht? –

Verwandte Themen