Sobes.tech
Junior

Ի՞նչ է բազային նույնականացումը (Basic Auth):

sobes.tech AI

Պատասխան AI-ից

Հիմնական հաստատում՝ դա HTTP հաճախորդի ամենահեշտ հաստատման միջոցն է, որը սահմանված է RFC 7617 ստանդարտում:

Աշխատանքի սկզբունքը:

  1. Հաճախորդը ուղարկում է HTTP հարցում պաշտպանված ռեսուրսին:
  2. Սերվերը վերադարձնում է պատասխան 401 Unauthorized կարգավիճակով և WWW-Authenticate: Basic realm="<realm>" գլխով, որտեղ <realm> - դա պաշտպանվող տարածքի (ռեսուրսի) տեքստային նկարագրությունն է:
  3. Բրաուզերը կամ հաճախորդի հավելվածը ցուցադրում է մուտքի անուն և գաղտնաբառ մուտքագրելու պատուհան:
  4. Հաճախորդը կոդավորում է օգտանունը և գաղտնաբառը username:password ձևաչափով տողում:
  5. Ստացված տողը կոդավորվում է Base64-ով:
  6. Հաճախորդը կրկին ուղարկում է հարցումը, ավելացնելով Authorization: Basic <base64_encoded_string> գլխով, որտեղ <base64_encoded_string> - դա Base64-ով կոդավորված տողն է:
  7. Սերվերը դեկոդավորում է Base64 տողը, բաժանում է օգտանունը և գաղտնաբառը և ստուգում տվյալները:
  8. Եթե տվյալները ճիշտ են, սերվերը ուղարկում է պահանջվող ռեսուրսը, հակառակ դեպքում՝ կրկին վերադարձնում է 401 Unauthorized:

Authorization գլխի օրինակ:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

որտեղ YWxhZGRpbjpvcGVuc2VzYW1l - դա aladdin:opensesame տողը Base64-ով կոդավորված տարբերակն է:

Հատկություններ:

  • Հեշտություն՝ հեշտ է իրականացնել ինչպես հաճախորդի, այնպես էլ սերվերի կողմում:
  • Անվտանգություն՝ տվյալները փոխանցվում են Base64-ով կոդավորված տեսքով, բայց առանց ծածկագրման: Base64-ը կոդավորում է, ոչ թե ծածկագրում: Տեղեկատվության միջանցքում տվյալները հեշտությամբ դեկոդավորվում են: Միայն HTTPS-ի հետ միասին ապահովում է նվազագույն անվտանգության մակարդակ:
  • Կարգավիճակ՝ չի պահպանում վիճակ սերվերի վրա՝ հարցումների միջև (stateless): Յուրաքանչյուր հարցման համար անհրաժեշտ է Authorization գլխի առկայությունը:
  • Օգտագործողի փորձը՝ բրաուզերի դիալոգային պատուհանը ավելի քիչ ճկուն է և օգտվողին անհարմար, քան հատուկ ձևերը:

Օգտագործում՝ առավել հաճախ կիրառվում է API պաշտպանելու, ստատիկ ռեսուրսների կամ պարզ ներքին համակարգերի համար, որտեղ անվտանգության կարևորությունը չի բարձր, կամ պարտադիր է օգտագործել SSL/TLS (HTTPS) հետ միասին։