Ինչպես REST API հրապարակել X-Road-ում¶
Ուղեցույցը նախատեսված է Անվտանգության սերվերի (Security Server) ադմինիստրատորների համար և ներկայացնում է X-Road-ում նոր ենթահամակարգ (subsystem) ավելացնելու և գրանցելու, ինչպես նաև վերջինիս համար REST API ծառայություն կարգավորելու գործընթացը։ Ուղեցույցն ընդգրկում է ինչպես արդեն գոյություն ունեցող ենթահամակարգի օգտագործման, այնպես էլ նոր ենթահամակարգ ստեղծելու դեպքերը՝ ներառյալ հաստատման քայլերն ու սպասվող կարգավիճակի փոփոխությունները։ Այն ներկայացնում է, թե ինչպես հրապարակել REST ծառայությունը OpenAPI 3 ծառայության նկարագրությամբ, ակտիվացնել այն, կարգավորել դրա հասանելիության իրավունքները և կառավարել TLS certificate-ի հաստատումը։ Ուղեցույցի նպատակն է ավարտին հասցնել հիմնական կարգավորումները, որոնք անհրաժեշտ են ADEL-ի այլ անդամների համար ծառայությունը հասանելի դարձնելու համար։
Բովանդակություն¶
- Ավելացնել նոր ենթահամակարգ
- Ենթահամակարգի կարգավիճակը և անվանման վարքագիծը
- Կարգավորել ծառայությունը
- Ակտիվացնել և հաստատել ծառայությունը
- Վերանայել և խմբագրել
- TLS Certificate-ի կառավարում
- Մուտքի իրավունքի կարգավորում
- Վերբեռնել TLS Certificate (անհրաժեշտության դեպքում)
- Ծառայության (Service) թեստավորում (ըստ ցանկության)
- Ինչպե՞ս ստեղծել Service URL-ը Client Security Server-ում (օրինակ)
1. Ավելացնել նոր ենթահամակարգ (subsystem)¶
1․ «Clients» բաժնում գտեք այն անդամին (Member), ով հրապարակում է ծառայությունը,
2․ սեղմեք «Add subsystem» տվյալ անդամի տողում,
3․ «Add subsystem»-ում՝ - սեղմեք «Select Subsystem» և ընտրեք այն ցանկից, եթե ենթահամակարգն առկա է գլոբալ կարգավորումներում,
- մուտքագրեք «Subsystem Code» և «Subsystem Name», եթե ենթահամակարգը գոյություն չունի (երկու դեպքում էլ անհրաժեշտ է, որպեսզի «Register subsystem» նշավանդակը նշված լինի),
4․ սեղմեք «Add subsystem»,
5․ հաստատման պատուհանում սեղմեք «Yes»` գրանցումը հաստատելու համար։
2. Ենթահամակարգի կարգավիճակը և անվանման վարքագիծը¶
- Դուք կտեղափոխվեք դեպի «Clients» էջ, որի ներքևում կհայտնվի «Subsystem added» ծանուցումը։
- Նոր ավելացված ենթահամակարգը կհայտնվի «Clients» ցանկում՝ «Registration in progress» կարգավիճակով:
- Եթե ենթահամակարգը նոր է ստեղծվել, վերջինիս անվանումը կցուցադրվի որպես «Undefined» և կթարմացվի գրանցման ավարտից հետո։
-
Եթե ենթահամակարգն արդեն գոյություն ունի, անմիջապես կցուցադրվի ճիշտ անվանումը։
-
Գրանցման հարցումը պետք է հաստատվի Կենտրոնական սերվերում (Central Server):
- Սա կարող է կատարվել ինքնաշխատ կամ ձեռքով՝ ըստ Կենտրոնական սերվերի կարգավորումների։
- Եթե գործընթացն ինքնաշխատ է, կարգավիճակը սովորաբար մի քանի րոպեի ընթացքում թարմացվում է՝ դառնալով «Registered»։ Անհրաժեշտ է թարմացնել «Clients»-ը՝ կարգավիճակի փոփոխությունը տեսնելու համար։
3. Կարգավորել ծառայությունը (Service)¶
1․ Սեղմեք ենթահամակարգի անվանը՝ մանրամասները դիտելու համար,
2․ անցեք «Services»,
- դուք կարող եք կարգավորել ծառայությունը նույնիսկ եթե ենթահամակարգի գրանցումը դեռ չի ավարտվել,
- ADEL-ի մյուս անդամները չեն կարող օգտագործել ծառայությունը մինչև գրանցումը և ծառայության կարգավորումը չավարտվեն։
3․ սեղմեք «Add REST»,
4․ «Add REST»-ում՝
- ընտրեք «OpenAPI 3 Description» որպես URL-ի տեսակ,
- մուտքագրեք OpenAPI 3 URL-ը «URL» դաշտում (օր․՝
https://d14r9k0rinox9f.cloudfront.net/yaml/x-road-stats.yaml), - մուտքագրեք «Service Code» (օր․՝ TestAPI),
- սեղմեք «Add»։
4. Ակտիվացնել և հաստատել ծառայությունը¶
- Անվտանգության սերվերը (Security Server) ներբեռնում և վերլուծում է OpenAPI նկարագրությունը։
- Ծառայությունն ավելացվում է «Services» ցանկում, սակայն այն լռելյայն ակտիվ չէ։
- Այն ակտիվացնելու համար անհրաժեշտ է միացնել աջ կողմում գտնվող անջատիչը համապատասխան տողի վրա։
- Կհայտնվի «Service description enabled» ծանուցումը։
- Սեղմեք ձախ կողմում գտնվող > նշանը՝ ծառայության մանրամասները դիտելու համար։
- Սեղմեք «Service Code»՝ մանրամասները դիտելու համար։
5. Վերանայել և խմբագրել Service URL-ը¶
- Service URL-ը վերցվում է OpenAPI-ի servers.url դաշտից։
- Այս URL-ն այն հասցեն է, որտեղ անվտանգության սերվերը փոխանցում է մուտքային հարցումները:
- Եթե վերլուծված արժեքը սխալ է, այն կարող եք խմբագրել ձեռքով։
6. TLS Certificate-ի կառավարում¶
- Լռելյայն «Verify TLS certificate» տարբերակը միացված է։
- Սա նշանակում է, որ անվտանգության սերվերը ստուգում է API-ի TLS certificate-ը։
-
Ստուգումն ակտիվացնելու համար վերբեռնեք API-ի սերտիֆիկատը «Internal servers» → «Information System TLS certificate» բաժնում։
-
Եթե նախընտրում եք չստուգել TLS certificate-ը․
- Հանեք նշումը «Verify TLS certificate» նշավանդակում,
- այս դեպքում անհրաժեշտ չէ վերբեռնել սերտիֆիկատը։
-
Սեղմեք «Save»՝ կարգավորումները կիրառելու համար։
7. Մուտքի իրավունքի կարգավորում¶
1․ «Access Rights» բաժնում սեղմեք «Add subjects»,
2․ սեղմեք «Search» առանց որոնման չափանիշները մուտքագրելու, որպեսզի ցուցադրվեն բոլոր գրանցված ենթահամակարգերը,
3․ ընտրեք անհրաժեշտ client ենթահամակարգ(եր)ը և սեղմեք «Add selected»,
4․ ընտրված ենթահամակարգերը այժմ երևում են «Access Rights» բաժնում։ Նրանք ունեն հասանելիություն REST API-ին պատկանող բոլոր endpoint-ներին։
5․ Որպես այլընտրանք, բոլոր API endpoint-ներին հասանելիություն տրամադրելու փոխարեն հնարավոր է սահմանել մուտքի իրավունքներ endpoint-ով։ Բացեք «Endpoints» ներդիրը՝ OpenAPI նկարագրության endpoint-ների ցանկը դիտելու և դրանց համար առանձին հասանելիություն սահմանելու համար։
6․ Սեղմեք «Close»՝ «Services» բաժին վերադառնալու համար։
8. Վերբեռնել TLS Certificate (անհրաժեշտության դեպքում)¶
- Եթե TLS ստուգումն ակտիվ է, անցեք «Internal servers»։
- «Information System TLS certificate» բաժնում սեղմեք «Add»՝ API-ի TLS certificate-ը վերբեռնելու համար։
9. Ծառայության թեստավորում (ըստ ցանկության)¶
- Մուտք գործեք անվտանգության սերվեր, որտեղ գրանցված է client ենթահամակարգը,
- անցեք client ենթահամակարգի «Internal Servers»,
- փոխեք «Connection type»-ը HTTP-ի (լռելյայն կերպով, միացման տեսակը HTTPS է)։
HTTP-ն անվտանգ չէ և այն պետք է օգտագործվի միայն թեստավորման նպատակներով։ Production միջավայրում անհրաժեշտ է օգտագործել HTTPS։
HTTPS -ի դեպքում սպառող տեղեկատվական համակարգի TLS client certificate-ը անհրաժեշտ է վերբեռնել սպառողի անվտանգության սերվերում: Այն վերբեռնվում է «Information System TLS Certificate» բաժնի client ենթահամակարգի «Internal Servers»-ում։
- Ուղարկեք թեստային հարցում client անվտանգության սերվերին։ Օրինակ՝
curl -X GET \
-H 'X-Road-Client: TEST/GOV/1234/TestClient' \
'http://<CLIENT_SECURITY_SERVER_HOST>:8080/r1/TEST/GOV/1234/TestService/TestAPI/instances'
Անհրաժեշտ է կիրառել միևնույն client և service նույնացուցիչները (identifier), որոնք կիրառվել են client-ի և ծառայության կարգավորման ժամանակ։
10. Ինչպե՞ս ստեղծել Service URL-ը Client Security Server-ում (օրինակ)¶
- Օրինակ՝ REST API-ի ուղին (base path) է
https://api.stats.x-road.global/v1, իսկ API-ը տրամադրում է/instancesendpoint-ը։ Endpoint-ով հարցում ուղարկելիս՝ հարցման URL-ը կլինի՝
- Սակայն նույն endpoint-ով X-Road-ում հարցում ուղարկելիս, անհրաժեշտ է REST API-ի ուղին (base path) փոխարինել client Security Server-ի REST interface-ի URL-ով և որպես ուղու պարամետրեր (path parameters) ավելացնել X-Road service identifier-ը հետևյալ ձևաչափով՝
http://<CLIENT_SECURITY_SERVER_HOST>:8080/r1/<INSTANCE_IDENTIFIER>/<MEMBER_CLASS>/<MEMBER_CODE>/<SUBSYSTEM_CODE>/<SERVICE_CODE>/<REST_API_ENDPOINT>
-
API endpoint-ի օրինակ՝
-
Վերը նշված API endpoint-ը X-Road-ով հարցում ուղարկելու դեպքում դառնում է հետևյալ URL-ը, երբ ծառայության նույնացուցիչն է (service identifier)՝
TEST/GOV/1234/TestService/TestAPI՝




















