Получение данных об организации#
Получение данных об организациях возможно только при использовании offline-режима получения данных о пользователе. Этот процесс включает следующие шаги:
Проведение аутентификации пользователя с помощью offline-режима, по результатам которого у вызывающей системы будет следующая информация:
идентификатор (
oid
) организации, по которой необходимо получить детальную информацию. Для полученияoid
можно воспользоваться блоком о ролях пользователя (roles
), который доступен при наличии разрешенияПросмотр списка организаций пользователя
(usr_org
);актуальное значение ключа доступа
scsToken
.
Вызов специального сервиса ESIA-Bridge, позволяющего получить данные об организации. Для этого необходимо выполнить HTTP-запрос методом POST на адрес точки получения данных об организации (
/blitz/bridge/organization
). Особенности запроса:в теле (
body
) запроса необходимо указать параметрыtoken
(значение актуального ключа доступа),oid
(идентификатор организации) иredirect_url
(адрес обработчика успешной аутентификации на стороне вызывающей системы);в заголовке (
http header
) необходимо указать параметрContent-Type
со значениемapplication/x-www-form-urlencoded
.
Пример запроса на получение данных об организации:
POST https://esia.client.testcase.ru/blitz/bridge/organization
Content-Type: application/x-www-form-urlencoded
token=MIrS8L..l_JLTz5YgENWc&oid=1000323157&redirect_url=http://localhost:9000/ofCb
Возможные варианты ответа ESIA-Bridge на такой запрос:
если ключ доступа не позволяет получить данные указанной организации, то в ответе содержится ссылка (
link
) с запросом для получения корректного ключа доступа.Пример ответа:
{ “redirect” : { “link” : “/blitz/bridge/entrance?redirect_url=http://localhost:9000/ofCb&oids=1000323157&mode=offline&state=dfa6e47e-576b-460e-9476-ce9597415188“, “state” : “dfa6e47e-576b-460e-9476-ce9597415188" } }
Все, что требуется системе, – направить браузер пользователя по ссылке из ответа, указав корректный
hostname
ESIA-Bridge. Переход по этой ссылке инициирует в ЕСИА получение разрешения на доступ к данной организации. После того, как пользователь даст разрешение, ESIA-Bridge вернет пользователя по адресу, указанному вredirect_url
и поставит новую сессионную cookie с новым ключом доступаtokenSCS
. Получив обновленный ключ доступа, система должна повторно вызвать сервис получения данных об организации.если ключ доступа позволяет получить данные указанной организации, то в ответе будет получен json со следующими данными:
обновленный ключ доступа
scsToken
, при этом старый ключ перестает действовать;сведения об организации согласно спецификациям ЕСИА.
Пример ответа, содержащего в себе данные организации, ее сотрудников и филиалов:
{ "orgResponse": { "scsToken": "esMNcjW0qPQ51zcTMiI8w881PiaMUfHBdNGjLo0-V2Tu8U8NGbP86tVxDXeoPQIOyjiQwz2K4ml0ymIqajcvmxoEpOc7IVs-sux0QKS4GKWxAUFBhcB-odAZJVTS_Sl0oZB8Xn5rKJh2p3zS92v-JbMVWzwL0OS6LB58If0vLIu1gdgwqKq1ee7B7vSsc8te|MTUxMzk4MzQ5MA|U0gxQVMxMjhDQkM|ls9NJJklcIDvAtQr_DgZ0w|_7qL6n1KC_M5da77ohg03FRAxwQ", "organization": { "stateFacts": [ "Identifiable" ], "eTag": "8DF580E06129CA1190B283E6764D68ADD88CBDB9", "oid": 1000323157, "shortName": "ООО \"РЕАК СОФТ\"", "fullName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"РЕАК СОФТ\"", "type": "AGENCY", "ogrn": "1147746651733", "inn": "7715434658", "leg": "12200", "kpp": "771501001", "agencyTerRange": "00", "agencyType": "10.FED", "oktmo": "45359000", "contacts": { "stateFacts": [ "hasSize" ], "size": 3, "eTag": "711FD22A0ADEA3FB05BEB780FF6E2B25F9BF39A1", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "326468E0BC693CE48B87646B758EE54FB0737010", "id": 14283140, "type": "OFX", "vrfStu": "NOT_VERIFIED", "value": "+7(342)2875843" }, { "stateFacts": [ "Identifiable" ], "eTag": "3288F9165AD8A0C2D956DB8CA9B3799BD7CECE18", "id": 14283139, "type": "OPH", "vrfStu": "NOT_VERIFIED", "value": "+7(342)2409435*984398" }, { "stateFacts": [ "Identifiable" ], "eTag": "BA3D328687D1538B7AFF0CC153E704738BC78253", "id": 14240474, "type": "OEM", "vrfStu": "NOT_VERIFIED", "value": "mvanin@reaxoft.ru" } ] }, "addresses": { "stateFacts": [ "hasSize" ], "size": 2, "eTag": "7B82EB88BCA0425E2BC3B6914AFC6F9D0702DF3B", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "5E2BA4DB9268FED5079B2F5B5463E9FFE3CC4E50", "id": 27443, "type": "OPS", "region": "Пермский", "city": "Пермь", "addressStr": "Пермский край, Пермь город, Комсомольский проспект", "countryId": "RUS", "zipCode": "614000", "street": "Комсомольский", "house": "31В", "flat": "37" }, { "stateFacts": [ "Identifiable" ], "eTag": "8CA439D7A477D899C0E67E513B2B72C4B4F962E3", "id": 16378, "type": "OLG", "region": "г МОСКВА", "addressStr": "г МОСКВА,ул РИМСКОГО ", "countryId": "RUS", "zipCode": "127566", "street": "ул РИМСКОГО ", "house": "95", "flat": "36" } ] }, "employees": { "stateFacts": [ "LastPage", "FirstPage", "Paginated" ], "pageSize": 100, "pageIndex": 1, "elements": [ { "stateFacts": [ "EntityRoot" ], "eTag": "E7ECC603BCEC866C6ACD0738A077CA39BADA9EFA", "prnOid": 1000299331, "orgOid": 1000323157, "position": "Руководитель", "chief": true, "person": { "stateFacts": [ "EntityRoot" ], "eTag": "5B64DACFE84502F3B4A73F66A3F4D07F23360ACB", "firstName": "Михаил", "lastName": "Юрьев", "middleName": "Владимирович", "birthDate": "13.11.1981", "gender": "M", "citizenship": "RUS", "snils": "123-456-789 58", "inn": "123456789012", "updatedOn": 1492174836, "status": "REGISTERED", "verifying": false, "rIdDoc": 3303 }, "blocked": false }, { "stateFacts": [ "EntityRoot" ], "eTag": "D90F86B8FAE7DB8567D3679D97309AF821D5025D", "prnOid": 1000323269, "orgOid": 1000323157, "chief": false, "person": { "stateFacts": [ "EntityRoot" ], "eTag": "CBB725A26583BBD55980751FAE85FAD2BC828833", "firstName": "Петр", "lastName": "Петров", "middleName": "Петрович", "birthDate": "11.11.1981", "birthPlace": "Москва", "gender": "M", "citizenship": "RUS", "snils": "000-333-444 39", "updatedOn": 1513856314, "status": "REGISTERED", "verifying": false }, "blocked": false }, { "stateFacts": [ "EntityRoot" ], "eTag": "48C5A569574766A15287584DC057897BF20B9BF5", "prnOid": 1000348301, "orgOid": 1000323157, "chief": false, "person": { "stateFacts": [ "EntityRoot" ], "eTag": "3A4A8EA83413C3076B34485561BB6FDE518C58D8", "firstName": "Семен", "lastName": "Иванов", "middleName": "Петрович", "birthDate": "14.03.1996", "birthPlace": "Москва", "gender": "M", "trusted": true, "citizenship": "RUS", "snils": "000-555-444 39", "inn": "520791835020", "updatedOn": 1513937119, "status": "REGISTERED", "verifying": false, "rIdDoc": 38957 }, "blocked": false } ] }, "branches": { "stateFacts": [ "LastPage", "FirstPage", "Paginated" ], "pageSize": 100, "pageIndex": 1, "eTag": "B854C2B28B54083C063C9319950B148A1D87EDCB", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "BDD1049E273023D50516686F7FF4CD14CC938150", "brhOid": 1000355069, "name": "Московский", "kpp": "435354354", "leg": "30002", "contacts": { "stateFacts": [ "hasSize" ], "size": 3, "eTag": "BB7C4789C938FBF59F60744EC31215239D20B94F", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "5649E98457FAD7C4B38B091EABAAE497D7C24666", "id": 14283146, "type": "OEM", "vrfStu": "NOT_VERIFIED", "value": "test@example.com" }, { "stateFacts": [ "Identifiable" ], "eTag": "E3B691F0DC97A07F271F337EF6000F671299E1C6", "id": 14283149, "type": "OPH", "vrfStu": "NOT_VERIFIED", "value": "+7(495)8736847*684764" }, { "stateFacts": [ "Identifiable" ], "eTag": "D3A1E4715F456DD2D54544E387B6159DB6E486D4", "id": 14283150, "type": "OFX", "vrfStu": "NOT_VERIFIED", "value": "+7(499)9990930" } ] }, "addresses": { "stateFacts": [ "hasSize" ], "size": 1, "eTag": "8051E7E5247D83DEBFA5FFAC9410C81D1E5E1597", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "EC676F9CDB0F1344A8EED5444A8CC0DEB98D994C", "id": 27445, "type": "OPS", "region": "Москва", "addressStr": "Москва город, Московско-Минской Дивизии площадь", "countryId": "RUS", "zipCode": "121096", "street": "Московско-Минской Дивизии", "house": "6", "flat": "67" } ] } }, { "stateFacts": [ "Identifiable" ], "eTag": "9438AF6F3D163DFD6A258078BC3F77D337A44B3E", "brhOid": 1000355068, "name": "Дальневосточный", "kpp": "948745837", "leg": "30001", "contacts": { "stateFacts": [ "hasSize" ], "size": 3, "eTag": "FBBF6052BCF619EF40E2B2D888DC294AB9776BDB", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "C725D7760632612B18CBEDE303ADBA8612340488", "id": 14283143, "type": "OEM", "vrfStu": "NOT_VERIFIED", "value": "none@example.com" }, { "stateFacts": [ "Identifiable" ], "eTag": "8CE333D782D4D75A8600210BBB1E78F73B2EC5F4", "id": 14283145, "type": "OFX", "vrfStu": "NOT_VERIFIED", "value": "+7(34343)90586" }, { "stateFacts": [ "Identifiable" ], "eTag": "69344CDC7A35BD367284CB119ED237D2DBA30590", "id": 14283144, "type": "OPH", "vrfStu": "NOT_VERIFIED", "value": "+7(343)3354654*235642" } ] }, "addresses": { "stateFacts": [ "hasSize" ], "size": 1, "eTag": "3786BD82486EF0DE78B9B4BF4594B00D5C660F3D", "elements": [ { "stateFacts": [ "Identifiable" ], "eTag": "E56F04079933C955AC0C24DC8DD5E1722F912224", "id": 27444, "type": "OPS", "region": "Хабаровский", "addressStr": "Хабаровский край, Николаевский район, Нижнее Пронге поселок, Школьная улица", "area": "Николаевский", "settlement": "Нижнее Пронге", "countryId": "RUS", "zipCode": "682444", "street": "Школьная", "house": "40" } ] } } ] } } } }
После получения ответа рекомендуется сохранить данные обновленного ключа
доступа scsToken
. Это позволит в будущем обновить данные об организации,
ее сотрудниках и филиалах в offline-режиме, т.е. без участия
пользователя.