Жоспарланған тапсырма мен кіру сұранысының алдында тұрған адам бір API-ге әртүрлі куәліктермен, әртүрлі өмір сүру мерзімімен және әртүрлі иелермен жүгінеді. Тапсырмаға желі жолы, қолданба тұлғасы және рұқсаттар жиынтығы қажет; адамға кіру, екінші фактор және сессия қажет. Екеуін араластыру адамның құпиясөзі өзгерген сайын бұзылатын автоматтандыруды немесе cron тапсырмасын тірі ұстау үшін дәл сонша әлсіретілген көпфакторлы саясатты тудырады.

Бір сияқты көрінетін үш қақпа

Дереккөз мекенжайы ережесі сұраныстың қайдан келгенін сұрайды. Аутентификация кім қоңырау шалып жатқанын және қандай дәлелдер ұсынылғанын сұрайды. Авторизация осы субъектінің осы операцияны орындай алатынын сұрайды. VPN тек үшеуінің біріншісін өзгертеді және оны тапсырмаға ғана емес, хосттағы әрбір процеске өзгертеді, сондықтан оқиға жазбасында үш байқауды бөлек ұстаңыз.

Сондықтан шығу түйінін ауыстыру дереккөз мекенжайына байланысты бас тартуды түзетіп, жарамсыз токенді тиіспеген күйде қалдыруы мүмкін. Сондықтан жарамды API токені оған жолы жоқ тапсырмадан жеке соңғы нүктені қолжетімді етпейді.

Интерактивті жол — автоматтандырудың нашар үлгісі

Адамның кіруін скриптке айналдыру тартымды, өйткені ол бір рет жұмыс істейді. Скрипт құпиясөзді, мүмкін бір реттік құпиясөз тұқымын сақтайды, содан кейін адамды талап етуге арналған сынаққа тәуелді болады. OAuth қауіпсіздігінің қазіргі үздік тәжірибесі, RFC 9700, resource-owner-password-credentials грантына тыйым салады және оның екіфакторлы және көпқадамды аутентификацияға неге нашар сәйкес келетінін түсіндіреді.

Қолдау көрсетілетін балама әдетте құпия клиент ағыны болып табылады, онда авторизация сервері қолданбаны аутентификациялайды және токен шығарады. RFC 6749-дың 4.4 бөліміндегі client-credentials гранты соның бір мысалы. Оның болуы әрбір API оны қабылдайды дегенді білдірмейді, не пайдаланушы өкілеттік берген тапсырманы онымен алмастыруға болады дегенді білдірмейді, өйткені бұл қызмет иесіне қойылатын сұрақтар. Код жазбас бұрын қызмет қандай қадағалаусыз модельді қолдайтынын сұраңыз.

VPN әлі де қайда орынды

VPN жеке API талап ететін желі жолын ұсына алады, және бұл заңды рөл. Ол тапсырманы қолданба алдында аутентификацияламайды және тапсырманың не істей алатынын шектемейді. Ортақ шығу мекенжайы да тапсырманы емес, хостты сәйкестендіреді, сондықтан сол мекенжайға арналған рұқсат тізіміндегі жазба оның үстінде жұмыс істейтін әрбір процесті жібереді.

Егер тапсырма ортақ runner-де жұмыс істесе, бұл айырмашылық азырақ емес, көбірек маңызды. Сол хосттағы басқа жұмыс ағыны маршрут пен мекенжайды мұраға алады, және API екеуін ажырата алмайды. Бұл ортақ құпиясөзбен бірдей әлсіздік, бір қабат төмен жылжытылған. Шектеуді қолданба орындай алатын жерге қойыңыз, ал рұқсат тізімін тарырақ ете алмасаңыз, runner-ді оқшаулаңыз.

Екі дизайнды адал салыстырыңыз

Адамның кіруі сізге нақты адамды, нақты екінші факторды және аудиттелетін сессияны береді, және ол қадағалаусыз жұмыс істей алмайды. Қолданба тұлғасы сізге қадағалаусыз орындауды, қаралатын ауқымды және айналдыруға болатын куәлікті береді, және ол ештеңе өкілеттік бермеген пайдаланушының атынан әрекет ете алмайды. Ешқайсысы екіншісінің әлсіз нұсқасы емес; олар әртүрлі сұрақтарға жауап береді. Тапсырманың ешкімсіз жұмыс істеуі керек пе және операция нақты пайдаланушыға телуі керек пе деп сұрау арқылы таңдаңыз.

Егер екі жауап та иә болса, дизайнға қарызға алынған құпиясөз емес, өкілеттік беру моделі қажет. Бұл шешімді келесі қызметкер табатын жерге жазыңыз.

Тапсыру алдында нені тексеру керек

Нақты жұмысшыдан бір рұқсат етілген операцияны және бір міндетті бас тартуды орындап, екі нәтижені де сақтаңыз. Содан кейін мерзімі өткен куәлікті және желі жолы қолжетімсіз болғандағы мінез-құлықты тексеріңіз, өйткені бұл түнде біреуді оятатын екі ақау.

curl -sS -o /dev/null -w '%{http_code}\n' \
  -H "Authorization: Bearer TOKEN" https://api.example.com/v1/records

Субъектіні, ауқымды, айналдыру иесін және орындау ортасын сол нәтиженің жанына жазыңыз. Дәл сол жазба келесі айналдыруды оқиға емес, күнделікті іс етеді. Ол сондай-ақ аудитор сұрайтын бөлік.

Қатысты мақалалар