Мы пишем провайдера SCIM для приложения, и он отлично работает с Azure AD.Код был реализован с использованием Microsoft.SystemForCrossDomainIdentityManagement.
Мы пытаемся поддерживать oneLogin, и создание работает нормально, но при тестировании функциональности обновления это не удалось, поскольку идентификатор указан только в запросе, а не в теле.
public class MyProvider : ProviderBase, IProvider
{
public override Task<Resource> ReplaceAsync(Resource resource, string correlationIdentifier)
{
switch (resource)
{
case Core2User user:
var existingUser = GetUser(applicationId, user.Identifier);
}
}
}
Таким образом, метод не имеет никакого представления об идентификаторе и завершается неудачно, так как user.Identifier имеет значение null.
Я попытался добавить идентификатор в schima, следуя документациив их веб-сайте но идентификатор на самом деле является их идентификатором, а не тем, который мы им передаем.
{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
"active": "{$user.status}",
"emails": {
"value": "{$user.email}",
"type": "work",
"primary": true
},
"userName":"{$parameters.scimusername}",
"id": "{$user.id}",
"name": {
"givenName": "{$user.firstname}",
"familyName": "{$user.lastname}",
"formatted": "{$user.display_name}"
}
}
Как решить эту проблему?