Статья опубликована в рамках: Научного журнала «Студенческий» № 4(300)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6
NET ПЛАТФОРМАСЫНДАҒЫ АУТЕНТИФИКАЦИЯ ЖӘНЕ АВТОРИЗАЦИЯ МЕХАНИЗМДЕРІ
AUTHENTICATION AND AUTHORIZATION MECHANISMS ON THE .NET PLATFORM
Aman Rakhimov
2nd-year master's student, department of cybersecurity and cryptology, Al-Farabi Kazakh National University,
Kazakhstan, Almaty
Yernur Oxikbaev
Senior Lecturer at the department of cybersecurity and cryptology, Al-Farabi Kazakh National University,
Kazakhstan, Almaty
АҢДАТПА
Бұл мақалада .NET платформасындағы аутентификация және авторизация механизмдері жан-жақты талданады. Жұмыстың мақсаты – қолданушыны растау мен жүйеге кіру рұқсатын басқарудың негізгі қағидаттарын, технологиялық ерекшеліктерін анықтап, қауіпсіздік талаптарына сай шешімдерді ұсыну. Зерттеу барысында аутентификация мен авторизацияның әртүрлі әдістері, .NET-те қолжетімді кітапханалар мен инструменттер, токен негізіндегі қауіпсіздік және көпфакторлы идентификация тәсілдері қарастырылды.
Алынған нәтижелер .NET платформасында бағдарламалық жасақтама әзірлеу кезінде қауіпсіздік деңгейін арттыруға, деректерді қорғау шараларын нығайтуға және пайдаланушыларға ыңғайлы қолжетімділік мүмкіндігін қамтамасыз етуге арналған нақты ұсыныстарды қамтиды. Бұл зерттеу ақпараттық қауіпсіздікті қамтамасыз етуде маңызды орын алатын аутентификация мен авторизацияның тиімді тетіктерін іске асыру жолдарын ұсынады.
ABSTRACT
This article will comprehensively analyze the authentication and authorization mechanisms on the .NET platform . The purpose of the work is to identify the basic principles, technological features of user verification and access control, and provide solutions that meet security requirements. The study examined various methods of authentication and authorization, libraries and tools available in .NET, token-based security and multifactorial identification approaches .
The results obtained include specific recommendations designed to increase the level of security when developing software on the .NET platform, strengthen data protection measures and provide users with the possibility of convenient access. This study provides ways to implement effective authentication and authorization mechanisms that play an important role in ensuring information security.
Түйін сөздер: аутентификация, авторизация, .NET, программалау, қауіпсіздік.
Keywords: authentication, authorization, .NET, programming, security.
Кіріспе. Қазіргі ақпараттық технологиялар дәуірінде бағдарламалық жасақтамаға қойылатын басты талаптардың бірі – қауіпсіздік деңгейінің жоғары болуы. Интернеттің кең таралуы мен заманауи веб-қосымшалардың күрделенуі қолданушылардың жеке деректерін қорғаудың өзектілігін арттырып отыр. Осы орайда аутентификация мен авторизация механизмдері бағдарламалық өнімдердің қауіпсіздігін қамтамасыз етудегі негізгі құралдар болып саналады.
.NET платформасы – Microsoft компаниясы ұсынған әмбебап даму ортасы, оның негізінде әртүрлі типтегі қосымшаларды (веб, мобильді, десктоптық) жасауға болады. .NET әзірлеушілерге аутентификация мен авторизацияны жүзеге асыратын бірқатар дайын кітапханалар мен технологияларды ұсынады. Мысалы, ASP.NET Identity, .NET Core Identity секілді инструменттер, сондай-ақ OAuth, OpenID Connect сияқты протоколдарға арналған дайын шешімдер бар [1].
Бұл мақалада .NET платформасындағы аутентификация және авторизация тәсілдері жан-жақты талданып, олардың қолданылу ерекшеліктері мен қауіпсіздік талаптарына сәйкестігі қарастырылады. Зерттеудің басты мақсаты – .NET негізінде әзірленген қосымшаларда қолданушыны растау мен жүйеге кіру рұқсатын бөлудегі ең тиімді әдістерді анықтау және оларды тәжірибеде жүзеге асыру жолдарын ұсыну.
.NET платформасындағы аутентификация мен авторизацияның маңызы. Бағдарламалық өнімдерге қолжетімділікті басқару үшін қолданылатын аутентификация (authentication) мен авторизация (authorization) ұғымдары IT индустрияда орталық орын алады.
- Аутентификация – жүйеге кірмек болған қолданушының кім екенін анықтау процесі. Мысалы, логин/пароль енгізу, әлеуметтік желі арқылы кіру немесе бірнеше факторлы тексеру (two-factor authentication) жасау.
- Авторизация – аутентификациядан өткеннен кейін, қолданушыға қандай ресурстар мен функцияларға рұқсат берілетінін анықтау процесі. Яғни, қолданушының рөлдеріне (roles), топтарына немесе айрықша құқықтарына (claims) сүйене отырып, белгілі бір операцияларды жасауға мүмкіндік беру.
Аталған екі механизмнің дұрыс іске асырылуы деректердің құпиялылығын сақтап қана қоймай, ұйымдағы ішкі процестердің жүйелі жұмыс істеуіне де ықпал етеді. Ірі корпорациялардан бастап шағын стартаптарға дейін аутентификация мен авторизацияны дұрыс ұйымдастыру бизнес-үдерістердің тұралап қалуына не деректердің ұрлануына жол бермей, тұтынушылардың сенімін арттырады [2].
ASP.NET Identity және ASP.NET Core Identity: негізгі ерекшеліктер. ASP.NET Identity – Microsoft компаниясы ASP.NET қосымшаларында қолдануға арналған аутентификация/авторизация жүйесі. Бұрынғы Membership жүйесіне қарағанда, ол кестелер мен деректер қорын пайдалануда икемдірек әрі кеңейтуге қолайлы. ASP.NET Identity арқылы:
- Пайдаланушы есептік жазбасын (account) тіркеу, өшіру, жаңарту;
- Рөлдер тағайындап, әртүрлі қолжетімділік деңгейлерін орнату;
- Құпия сөзді қалпына келтіру, екі факторлы тексеруді (2FA) қосу, электронды пошта арқылы растау сілтемелерін жіберу секілді функцияларды оңай жүзеге асыруға болады.
Бұл технология пайдаланушыларды растау үшін cookie немесе token-based аутентификацияға мүмкіндік береді. Көптеген әзірлеушілер ASP.NET Identity-ді MVC үлгісіндегі және Web API қосымшаларында жиі пайдаланады.
ASP.NET Core Identity – ASP.NET Core қосымшаларына арналған жаңа буын механизм. Ол жеңілдетілген құрылымы мен модульдік архитектурасы арқылы ерекшеленеді 222. Бұл технология бұрынғы Identity жүйесінің әлеуетін толық пайдалана отырып, кроссплатформалық ортада да жұмыс істей алады (Windows, Linux, macOS) [3].
ASP.NET Core Identity аясында әзірлеушілерге мынандай мүмкіндіктер беріледі:
- Рөлдік авторизация (Role-based authorization) – белгілі бір ролі бар қолданушыға ғана сай функцияларды атқаруға рұқсат беру.
- Policy-based авторизация – ережелер жиынтығына (policy) сүйеніп, қолданушының құқықтарын анықтау. Мысалы, администраторға ғана көрінетін беттерді немесе деректерді шектеу.
- Claims-based авторизация – қолданушы туралы қосымша мәліметтер (claims) негізінде қолжетімділікті реттеу.
Осылайша, ASP.NET Core Identity механизмі қауіпсіздік талаптарына сай келетін, кеңейтуге оңай және түрлі қосымшаларға бейімделе алатын шешім ұсынады.
Аутентификация әдістері: cookie және token-based тәсілдер.
ASP.NET MVC қосымшаларында жиі кездесетін ескі, бірақ әлі де кеңінен қолданылатын әдіс – cookie-based аутентификация. Пайдаланушы логин мен пароль арқылы жүйеге кіргеннен кейін, сервер оған арнайы cookie файл жібереді. Бұл cookie файлында шифрланған сессия мәліметтері сақталады. Келесі ретте серверге сұраныс жібергенде, қолданушының кім екені автоматты түрде анықталады [4-5].
Алайда, cookie негізіндегі әдістің кемшіліктері де бар:
- Мобильді және бұлтты қосымшаларға бейімделу қиындау: cookie тек браузер сұраныстарына арналған, мобильді құрылғыларда немесе API шақыруларында қосымша баптауды талап етеді.
- Сеанстың сервер жағы: қолданушы туралы мәліметтерді сервер жағына да сақтайтын болғандықтан, үлкен жүктемеге ұшырауы мүмкін.
Token-based аутентификация – қазіргі заманауи веб-қосымшалар мен мобильді API-ларда кеңінен тараған әдіс. Бұл тәсілде қолданушы аутентификациядан өткен кезде сервер оған арнайы белгі (token) жібереді. JSON Web Token (JWT) ең танымал форматтардың бірі болып табылады 444.
- Жеңілдік: Token сұраныстарында қосымша ақпарат ретінде жіберіледі, cookie-ге тәуелді емес.
- Көпплатформалық сипат: Мобильді қосымшалардан бастап IoT құрылғыларына дейін JWT токенді қолдануға болады.
- Шифрлау және қолтаңба: JWT токеннің бүтіндігін және растығын тексеру үшін қолтаңба (signature) пайдаланылады. Бұл токенді сервер жағына сақтаудың қажеті жоқ, тек қолтаңбаны тексеру арқылы пайдаланушының кім екенін анықтауға болады.
Авторизацияны ұйымдастыру жолдары. Рөлдік авторизацияда қолданушылар белгілі бір топтарға бөлінеді, мысалы «Администратор», «Қарапайым пайдаланушы», «Менеджер» және т.б. ASP.NET немесе ASP.NET Core жобаларында рөлдік авторизацияны [Authorize(Roles = "Admin")] атрибуты арқылы оңай жүзеге асыруға болады. Бұл әдістің артықшылығы – қарапайым әрі түсінікті. Бірақ үлкен жобаларда тек рөлдермен шектелу икемсіздікке әкелуі мүмкін.
Policy-based әдісі ауқымды қосымшаларда пайдасын тигізеді. Мұнда әрбір ережеге (policy) нақты талаптар (requirements) қойылып, арнайы хендлер (handler) арқылы тексеріледі. Мысалы, «OnlyUsersOver18Policy» деген ереже болса, қолданушының жасы 18-ден жоғары екенін тексеретін логика жазылады.
Claims – қолданушы туралы қосымша сипаттамалар (аты-жөні, email, жас санаты, лауазымы, т.б.). .NET Core Identity бұл мәліметтерді қосымшаның кез келген жерінде пайдалануға мүмкіндік береді. Policy-based авторизация көбінесе claims мәліметтеріне сүйеніп жасалады [6].
Аутентификация мен авторизациядағы басты қиындықтар.
Аутентификация мен авторизация механизмдерін жобалау және жүзеге асыру барысында әзірлеушілер бірнеше маңызды қиындықтарға кезігеді. Бұл қиындықтар қосымшаның қауіпсіздік деңгейіне тікелей әсер етеді, сондықтан оларды ескеріп, тиісті шаралар қолдану өте маңызды.
- Парольді сақтау мен өңдеу мәселелері: Тым қарапайым немесе дұрыс хэштелмеген (мысалы, әлсіз алгоритмдермен хэштелген) парольдер шабуылға осал болады. Нәтижесінде деректердің таралуы мен жүйеге заңсыз кіру фактілері жиі кездеседі.
- Сеанс ұрлау (session hijacking): Cookie-based аутентификация кезінде cookie файлдары дұрыс қорғалмаса немесе HTTPS қосылмаса, шабуылдаушылар оларды ұстап қалып, өз мүдделеріне қолдануы мүмкін.
- Токенді қорғау: Token-based (JWT) әдісінде токеннің мерзімін тым ұзақ қою немесе қауіпсіз ортада сақтамау (мысалы, жергілікті сақтауда шифрламай ұстау) пайдаланушы аккаунтына заңсыз қол жеткізуге әкеледі.
- SSL/HTTPS қолданбау: Шифрланбаған байланыс арқылы жіберілетін логин/пароль мәліметтері немесе токендер орта жолдан ұстап алуға (man-in-the-middle шабуылы) өте осал келеді.
- Протоколдардың жаңаруы: OAuth 2.0, OpenID Connect тәрізді хаттамалардың жаңа нұсқалары немесе қауіпсіздікті күшейтуге бағытталған кеңейтімдері жылдам қарқынмен пайда болады. Жоба барысында оларды дер кезінде бейімдемесеңіз, қауіпсіздік деңгейі төмендеуі мүмкін.
- Ортақ стандарттарға сәйкестік: Жаңа талаптар (мысалы, PSD2, FIDO2, WebAuthn) үздіксіз енгізіліп жатқандықтан, аутентификация жүйелерін жаңартып отыру керек. Бұл қосымша еңбек пен уақытты талап етеді.
- Бизнес үдерістерінің өзгеруі: Компаниялардың ішкі саясаты мен құрылымы жиі өзгеріп отыруы мүмкін (қолданушы рөлдерін қайта бөлу, жаңа филиалдар қосу, т.б.). Мұндай жағдайда авторизация логикасын қайта жазу немесе кеңейту қажеттілігі туындайды [7-9].
Жоғарыда аталған факторлар аутентификация мен авторизация жүйелерін әзірлеуде кешенді түрде қарастырылуы тиіс. Қауіпсіздік саңылауларының алдын алу үшін үздіксіз аудит жүргізіп, жүйені жетілдіру, көп деңгейлі қорғаныс шараларын қолдану (MFA, пароль саясаты, шифрлау), заңнамалық нормалар мен стандарттарға сәйкес болу – ақпараттық қауіпсіздікті қамтамасыз етудің негізгі алғышарттары.
Қорытынды. Бұл мақалада .NET платформасындағы аутентификация және авторизация механизмдері жан-жақты талқыланды. Заманауи бағдарламалық өнімдер үшін аутентификация (қолданушының нақтылығын тексеру) мен авторизация (қолданушыға берілетін рұқсаттарды белгілеу) – қауіпсіздік пен деректерді қорғаудың діңгегі. .NET экожүйесінде қолжетімді ASP.NET Identity, .NET Core Identity, OAuth, OpenID Connect сынды технологиялар әзірлеушілерге бұл міндеттерді икемді және сенімді түрде шешуге жағдай жасайды.
Зерттеу барысында cookie-based және token-based (JWT) аутентификация әдістерінің артықшылықтары мен кемшіліктері сарапталды. Сонымен қатар, авторизацияның рөлдік, policy-based және claims-based тәсілдері .NET қосымшаларында қолданудың оңайлығы мен кеңейту мүмкіндіктері тұрғысынан талданды.
Қазақстандағы «Дербес деректер және оларды қорғау туралы» заң және халықаралық GDPR стандарттары ақпараттық қауіпсіздікті сақтау тұрғысынан маңызды рөл атқаратыны анықталды. .NET әзірлеушілеріне осы заңдық талаптар мен техникалық стандарттарға сай жұмыс істеу үшін толыққанды механизмдер ұсынылады.
Алдағы уақытта аутентификация мен авторизация саласында жасанды интеллект пен биометриялық идентификация әдістері қарқын алуы мүмкін. Бұл технологиялар қолданушылардың жүйеге кіру қауіпсіздігін күшейтіп, қосымша мүмкіндіктер ұсынары сөзсіз. Демек, .NET платформасында ақпараттық қауіпсіздік шешімдерін жетілдіру – ұйымдардың ғаламдық нарықтағы бәсекеге қабілеттілігін арттыратын маңызды қадам болмақ.
Әдебиеттер тізімі:
- Lock A. ASP.NET Core in Action. Manning Publications, 2018.
- Galloway J, Wilson B, Allen S, Matson D. Professional ASP.NET MVC 5. Wiley, 2014.
- Peres R. Modern Web Development with ASP.NET Core 3: An end to end guide covering the latest features of Visual Studio 2019. Packt Publishing, 2019.
- Microsoft Docs. "Introduction to Identity on ASP.NET Core." https://docs.microsoft.com/en/aspnet/core/security/authentication/identity
- Microsoft Docs. "Authentication and authorization in ASP.NET Core." https://docs.microsoft.com/en-us/aspnet/core/security/, 2025.
- Adam Freeman, Pro ASP.NET Core Identity, 2021
- Esposito D. Programming ASP.NET Core. Microsoft Press, 2018.
- Hardt D. The OAuth 2.0 Authorization Framework. IETF, 2012.
- Jones M., & Bradley, J. JSON Web Token (JWT) draft-ietf-oauth-json-web-token-32. IETF, 2015.
Оставить комментарий