Um zusätzliche Daten für meine Azure AD B2C-Benutzer zu erhalten, möchte ich ein neues benutzerdefiniertes Attribut für ein Benutzerobjekt (oder eine Erweiterungseigenschaft) erstellen nehme das gleiche an). So fand ich diese documentation. Ist das eine korrekte Methode, ein benutzerdefiniertes Attribut für einen Benutzer hinzuzufügen?Azure AD B2C - So fügen Sie benutzerdefinierte Attribute programmgesteuert hinzu (Erweiterungseigenschaft)
Antwort
Die korrekte Methode zum Hinzufügen von Attributen ist über das Administrationsportal 'portal.azure.com'.
Sie müssen auch einen Benutzer über eine Richtlinie erstellen, bevor diese Attribute tatsächlich für alle Benutzer verfügbar werden. Die andere Sache, die in Betracht gezogen werden muss, ist, dass der Erweiterungsname in jeder Umgebung anders ist. Daher benötigen Sie eine benutzerdefinierte Logik, um die JSON-Benutzer zu analysieren, die Sie von GraphApi erhalten. Vergewissern Sie sich, dass das Attribut endet Der Name, den Sie diesem Attribut gegeben haben.
Beispiel:
//Java, sorry
private YourCustomGraphApiUser populateCustomProperty(JsonNode jsonUser) throws JsonProcessingException{
YourCustomGraphApiUser azureUser = mapper.treeToValue(jsonUser, YourCustomGraphApiUser.class);
String[] customAttributeNames = new String()["one","two"]; //Replace this with some values from some injected properties
for(String attributeName : customAttributeNames){
JsonNode customAttribute = jsonUser.get(attributeName);
if(customAttribute != null){
azureUser.set(attributeName, customAttribute.asText());//Assuming custom attributes are stored in a map-like structure in YourCustomGraphApiUser.
}
else{
throw new NotFoundException("Error getting the name for custom attribute "+attributeName, e);
// OR you could ignore and just log an error. Whatever.
}
}
return azureUser;
}
Sie erstellen extensionProperty auf dem Objekt gewünschten Anwendungs Graph API.
Beispiel JSON Anfrage:
POST https://graph.windows.net/contoso.onmicrosoft.com/applications/269fc2f7-6420-4ea4-be90-9e1f93a87a64/extensionProperties?api-version=1.5 HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1Qi...r6Xh5KVA
Content-Type: application/json
Host: graph.windows.net
Content-Length: 104
{
"name": "skypeId",
"dataType": "String",
"targetObjects": [
"User"
]
}
Wenn der Vorgang erfolgreich ist, wird es einen HTTP-201 Erstellt Statuscode zusammen mit den vollständig qualifizierten Erweiterung Eigenschaftsnamen zurückgeben, die für das Schreiben von Werten an das Ziel verwendet werden kann, Art. Referenz:
- 1. Azure AD B2C Attribute bearbeiten
- 2. So fügen Sie benutzerdefinierte Radiogruppe programmgesteuert hinzu
- 3. Azure AD B2C Benutzerdefinierte Richtlinie
- 4. Benutzerdefinierte Azure AD-B2C-Richtlinien
- 5. Azure AD B2C benutzerdefinierte Richtlinienlogikflussübersicht?
- 6. Kombinieren Azure AD (b2c) benutzerdefinierte ClaimsIdentity
- 7. So fügen Sie den veröffentlichten Bereich in Azure AD hinzu B2C
- 8. Azure AD B2C-Anpassungsvorlagenfehler
- 9. Benutzerdefinierte Richtlinien in Azure AD B2C
- 10. Azure AD B2C - Benutzerdefinierte Benutzeroberfläche für resetpassword.html
- 11. Azure AD B2C-Anmeldungsrichtlinie
- 12. Azure AD vs. Azure AD B2C vs. Azure AD B2B
- 13. So erstellen Sie Azure AD-Benutzer programmgesteuert?
- 14. Feld wird nicht in Azure AD angezeigt B2C Benutzerdefinierte Richtlinie
- 15. Fehlender Azure AD B2C b2c-extensions-App
- 16. Azure AD B2C mit Azure AD - Profil bearbeiten
- 17. AppAuth mit Azure AD B2C
- 18. azure-ad-b2c userinfo_endpoint fehlt
- 19. azure-ad-b2c falscher Standort
- 20. Azure AD B2C Antwort URL
- 21. Winkelunterstützung für Azure AD B2C
- 22. Löschen Azure B2C AD Tenant
- 23. So erstellen Sie eine benutzerdefinierte Fehlerseite in Azure AD B2C | Benutzerdefinierte Richtlinien
- 24. Azure AD B2C-unterstützte Anwendungen
- 25. Registrieren Sie Benutzer mit Azure AD B2C
- 26. So fügen Sie Ansichten programmgesteuert Ansichten hinzu
- 27. Azure AD B2C Benutzerinformationen Xamarin
- 28. Azure Graph mit B2C AD
- 29. Azure AD B2C - Falsche URL
- 30. Azure AD B2C Authentifizierung hybrid
Warum kann ich benutzerdefinierte Attribute nicht programmgesteuert hinzufügen? Ich habe eine Bibliothek, die MyOwnUser definiert, und für diesen Benutzer brauche ich benutzerdefinierte Attribute. Warum sollte ich diese im Portal jedes Mal für verschiedene Verzeichnisse hinzufügen? – alvipeo
@alvipeo Das ist eine ausgezeichnete Frage! Ich habe es selbst oft gefragt. Es ist ebenso frustrierend, dass ich manuell ein Konto mit diesen Attributwerten erstellen musste, bevor sie verfügbar wurden. Wenn ich bei der programmatischen Erstellung tot wäre, würde ich vielleicht mehr in das B2C-Modul für die azurblaue Powershell schauen; Ich habe es noch nie gemacht, aber vielleicht könnten Sie ein Skript erstellen, das jede Umgebung einrichtet. Ich habe auch noch nicht mit benutzerdefinierten Richtlinien gearbeitet, aber ich verstehe, dass sie konfigurierbarer sind (XML und so), obwohl es mehr anfängliche Anstrengungen erfordert. – Pytry
Ich habe gerade eine Klasse erstellt, die Erweiterungseigenschaften in Code erstellt. Müssen Sie mit dem Setzen/Lesen seines Wertes von einem Benutzer fertig sein – alvipeo