WSO2is SCIM 2 создает нового пользователя с настраиваемыми полями

Я могу создавать новых пользователей, следуя образцу, найденному здесь:

curl -v -k --user [email protected]@tenant1.com:admin --data '{"schemas":[],"name":{"familyName":"jackson","givenName":"kim"},"phoneNumbers":[{"type":"mobile","value":"9999"}],"addresses":[{"type":"work","streetAddress":"100 Universal City Plaza","locality":"Hollywood","region":"CA","postalCode":"90068","country":"USA","formatted":"100 Universal City Plaza\nHollywood, CA 90068 USA","primary":true},{"type":"home","streetAddress":"456 Hollywood Blvd","locality":"Hollywood","region":"CA","postalCode":"91608","country":"USA","formatted":"456 Hollywood Blvd\nHollywood, CA 91608 USA"}],"userName":"[email protected]","password":"kimwso2","nickName":"abc","title":"Operations Chief","urn:ietf:params:scim:schemas:core:2.0:User:streetAddress":"Miami, florida","emails":[{"primary":true,"value":"[email protected]","type":"home"},{"value":"[email protected]","type":"work"}]}' --header "Content-Type:application/json" https://localhost:9443/t/tenant1.com/scim2/Users

Я хочу добавить поддержку поля departments для нового пользователя.

В претензиях для urn:ietf:params:scim:schemas:extension:enterprise:2.0:User я убедился, что отдел претензий существует с сопоставлением с http://wso2.org/claims

введите здесь описание изображения

введите здесь описание изображения

скрипт с добавленным отделом

curl -v -k --user [email protected]@tenant1.com:admin --data '{"schemas":[],"name":{"familyName":"jackson","givenName":"kim"},"phoneNumbers":[{"type":"mobile","value":"9999"}],"addresses":[{"type":"work","streetAddress":"100 Universal City Plaza","locality":"Hollywood","region":"CA","postalCode":"90068","country":"USA","formatted":"100 Universal City Plaza\nHollywood, CA 90068 USA","primary":true},{"type":"home","streetAddress":"456 Hollywood Blvd","locality":"Hollywood","region":"CA","postalCode":"91608","country":"USA","formatted":"456 Hollywood Blvd\nHollywood, CA 91608 USA"}],"department":["Accounting","Marketing and Advertising"],"userName":"[email protected]","password":"kimwso2","nickName":"abc","title":"bhhhxxs","urn:ietf:params:scim:schemas:core:2.0:User:streetAddress":"bhhhxxs","emails":[{"primary":true,"value":"[email protected]","type":"home"},{"value":"[email protected]","type":"work"}]}' --header "Content-Type:application/json" https://localhost:9443/t/tenant1.com/scim2/Users

Если я добавлю поле отдела в скрипт, это создаст, но не вернет, когда я сделаю запрос для этого идентификатора пользователя:

результат curl -v -k --user [email protected]@tenant1.com:admin https://localhost:9443/t/tenant1.com/scim2/Users/44c7b532-09fe-4530-a199-cf81bff95b3a | jq .

{
    "emails": [{
            "type": "work",
            "value": "[email protected]"
        },
        {
            "type": "home",
            "value": "[email protected]"
        }
    ],
    "addresses": [{
            "type": "work",
            "value": "100 Universal City Plaza\nHollywood, CA 90068 USA"
        },
        {
            "type": "home",
            "value": "456 Hollywood Blvd\nHollywood, CA 91608 USA"
        }
    ],
    "meta": {
        "created": "2020-04-08T12:46:30.549Z",
        "location": "https://localhost:9443/t/tenant1.com/scim2/Users/44c7b532-09fe-4530-a199-cf81bff95b3a",
        "lastModified": "2020-04-08T12:46:30.549Z",
        "resourceType": "User"
    },
    "nickName": "abc",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
    ],
    "roles": [{
        "type": "default",
        "value": "Internal/everyone"
    }],
    "name": {
        "givenName": "kim",
        "familyName": "jackson"
    },
    "id": "44c7b532-09fe-4530-a199-cf81bff95b3a",
    "userName": "[email protected]",
    "title": "bhhhxxs",
    "phoneNumbers": [{
        "type": "mobile",
        "value": "9999"
    }]
}

Я уже безуспешно читал эту документацию: https://is.docs.wso2.com/en/latest/develop/extensible-scim-user-schemas-with-wso2-identity-server/#extensible-scim-user-schemas-with-wso2-identity-server

https://is.docs.wso2.com/en/latest/develop/extending-scim2-user-schemas/#extending-the-scim-20-api

Моя установка: wso2is 5.10


person BryGom    schedule 08.04.2020    source источник


Ответы (1)


Вы можете найти пример запроса на создание пользователя с расширенным атрибутом схемы в https://github.com/wso2/docs-is/issues/1556

Хитрость заключается в том, чтобы представить расширенный атрибут, как показано ниже, в запросе на создание.

"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "department": [
        "Accounting",
        "Marketing and Advertising"
    ]
}

Обновление: по умолчанию urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department не является многозначным атрибутом в схеме scim2, определенной на сервере. Вы можете сделать его многозначным, отредактировав файл IS_HOME/repository/conf/scim2-schema-extension.config, чтобы сделать его многозначным атрибутом.

{
"attributeURI":"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department",
"attributeName":"department",
"dataType":"string",
"multiValued":"true",
"description":"Identifies the name of a department",
"required":"false",
"caseExact":"false",
"mutability":"readWrite",
"returned":"default",
"uniqueness":"none",
"subAttributes":"null",
"canonicalValues":[],
"referenceTypes":[]
}

Обратите внимание, как был обновлен атрибут «multiValue».

person farasath    schedule 08.04.2020
comment
Привет, @farasath, я попробовал этот трюк, добавил этот атрибут к моему фактическому завитку, но у меня есть эта ошибка: {"schemas":["urn:ietf:params:scim:api:messages:2.0:Error"],"scimType":"invalidSyntax","detail":"Request is unparsable, syntactically incorrect, or violates schema.","status":"400"} - person BryGom; 08.04.2020
comment
По умолчанию urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department не является атрибутом с несколькими значениями в схеме. Вероятно, поэтому вы получили ошибку при попытке установить многократные значения для атрибута. Я обновил свой ответ. Кажется, работает после исправления свойства многозначного атрибута - person farasath; 09.04.2020
comment
Благодарю вас ! теперь работает, я думаю, что документация wso2 должна быть лучше. - person BryGom; 10.04.2020
comment
У меня аналогичная проблема в wso2 5.6.0. Я сопоставил новый атрибут в файле конфигурации scim2 accountDisable, а также сопоставил с локальным требованием .../claims/identity/accountDisabled при использовании вызова scim2 get, ответ не получает этот атрибут, - person Asad Shakeel; 18.05.2020
comment
Можете ли вы создать новый вопрос? с деталями - person farasath; 19.05.2020