Նույնականացում, անվտանգություն և կատարողականություն
Drupal JSON:API մոդուլը տրամադրում է հզոր միջոց՝ ձեր բովանդակությունը API-ի միջոցով ցուցադրելու համար, սակայն ճիշտ հավաստագրման մեթոդի ընտրությունը կարևոր է անվտանգության և օգտագործման համար։ Այս ակնարկը ուսումնասիրում է Drupal-ի JSON մոդուլի հետ աշխատելիս հասանելի տարբեր հավաստագրման ընտրանքները։
Հիմնական հավաստագրման մեթոդներ
Drupal REST & JSON API Authentication մոդուլը սահմանափակում և ապահովում է թույլ չտրված մուտքը ձեր Drupal կայքի API-ների համար՝ օգտագործելով տարբեր հավաստագրման մեթոդներ, այդ թվում՝
Այս մոդուլը թույլ է տալիս նաև API կանչերի հավաստագրումը Headless/Decoupled Drupal կարգավորմամբ։
- Հիմնական (Basic) հավաստագրում
- API բանալիով (API Key) հավաստագրում
- Մուտքի տոկեն/ OAuth հիմքով հավաստագրում
- JWT տոկենով հավաստագրում
- Երրորդ կողմի մատակարարի տոկենով հավաստագրում
Cookie-հիմնական հավաստագրում
Drupal-ում լռելյայն հավաստագրման մեթոդը օգտագործում է session cookies։ Երբ օգտատերը մտնում է Drupal մուտքի ձևի միջոցով, ստեղծվում է session cookie, որը կարող է օգտագործվել JSON հարցումների հավաստագրման համար։
Առավելություններ՝
- Պարզ է իրականացնել բրաուզերային հավելվածների համար
- Օգտագործում է Drupal-ի առկա հավաստագրման համակարգը
- Լավ աշխատում է նույն տիրույթում տեղադրված JavaScript հավելվածների հետ
Ասպեկտներ՝
- Չի հարմար跨դոմեյն հարցումների համար առանց հավելյալ կարգավորում
- Երրորդ կողմի ինտեգրացիաների կամ մոբայլ հավելվածների համար քիչ հարմար է
- Դիմումի սեսսիայի կառավարման ծանրաբեռնվածություն
Հիմնական (Basic) հավաստագրում
Հիմնական հավաստագրումը ներառում է մուտքանունի և գաղտնաբառի ուղարկում Authorization հեդերում՝ յուրաքանչյուր հարցման հետ միասին։
Առավելություններ՝
- Պարզ է իրականացնել
- Լայնորեն աջակցվում է HTTP հաճախորդների կողմից
Ասպեկտներ՝
- ՍտեղծCredentials ուղարկվում են ամեն հարցման հետ
- Աշխատում է միայն HTTPS կապի դեպքում
- Տոկենի ժամկետի ավարտ չկա ներմուծված
Արտադրված (Contributed) հավաստագրման մոդուլներ
Simple OAuth (OAuth 2.0)
Simple OAuth-ը իրականացնում է OAuth 2.0 պրոտոկոլը Drupal API-ի հավաստագրման համար։
Առավելություններ՝
- Ապահով տոկեն-հիմնված հավաստագրում
- Հարցման տոկենների թարմացման աջակցություն
- Բարետարած թույլտվությունների դիրեկտոր
- Լավ հարմար երրորդ կողմի ինտեգրացիաների համար
- Լայնորեն ընդունված ստանդարտ
Ասպեկտներ՝
- Համեմատաբար բարդ կարգավորում՝ համեմատած հիմնական հավաստագրման հետ
- Պահանջում է OAuth 2.0 հոսքերի լավ ըմբռնում
JWT (JSON Web Token)
JWT մոդուլը թույլ է տալիս հավաստագրում JSON Web Token-ների միջոցով։
Առավելություններ՝
- Անպահանջ կամ վիճակապահ չունեցող հավաստագրում
- Կրճատում է բազայի հարցումները վավերացման համար
- Տոկենում կարող է ներառվել պնդումներ/մետատվյալներ
- Լավ արագություն և կատարողականության մեծածավալ դեպքերում
Ասպեկտներ՝
- Պահանջում է ճիշտ բանալիի կառավարում
- Անվտանգության ռիսկեր սխալ իրականացման դեպքում
- Տոկենի չեղարկում բացակայում է (առանց հավելյալ մեխանիզմների)
Key Auth
Key Auth-ը տրամադրում է API բանալիով հավաստագրում Drupal-ի համար։
Առավելություններ՝
- Պարզ API բանալի մեթոդ
- Լավ հարմար մեքենա-մեքենա հաղորդակցության համար
- Փոքր կարգավորումների պահանջ
Ասպեկտներ՝
- Ապահովությունը ցածր է՝ համեմատած OAuth-ի հետ, եթե մուտքը օգտատիրոջ կենտրոնացված է
- Սահմանափակված հնարավորություններ վերանայման համար
- Թարմացնող տոկենի մեխանիզմ չկա
Consumer Auth
Consumer Auth-ը ընդլայնում է Drupal-ի API համակարգի Consumer էնտիթիների հնարավորությունները։
Առավելություններ՝
- Միացվում է Drupal-ի consumer համակարգին
- Բազմակողմանի consumer-հիմնված թույլտվություններ
- Լրացնում է այլ հավաստագրման մեթոդները
Ասպեկտներ՝
- Պահանջում է այլ մեթոդների հետ միասին օգտագործում
- Չի հանդիսանում անկախ լուծում
Նշումներ հավաստագրման մեթոդ ընտրելիս
JSON API-ի համար հավաստագրման մեթոդ ընտրելիս հաշվի առեք հետևյալը՝
- Անվտանգության պահանջներ. Քանի՞ս է ձեր տվյալների զգայունությունը։
- Հաճախորդի տեսակը. Բրաուզերային, մոբայլ հավելված, թե սերվեր-առ-սերվեր հաղորդակցություն։
- Օգտագործողի փորձը. Արդյո՞ք օգտատերերը հաճախ պետք է մուտք գործեն։
- Կատարողականության պահանջներ. Հավաստագրման արագությունը որքան կարևոր է։
- Ինտեգրման պահանջներ. Արդյո՞ք երրորդ կողմի ծառայությունները պետք է մուտք ունենան API։
Լավագույն պրակտիկա
- Միշտ օգտագործեք HTTPS ցանկացած հավաստագրման մեթոդի համար
- Կիրառեք ճիշտ CORS վերնագրեր բրաուզերային հավելվածների համար
- Ուշադիր դիտարկեք տոկենների ժամկետի ավարտի քաղաքականությունները
- Օգտագործեք թարմացնող տոկեններ, որտեղ համապատասխան է
- Կիրառեք արագության սահմանափակում՝ հարձակումների կանխարգելման համար
- Լոգավորեք հավաստագրման փորձերը անվտանգության դիտարկման համար