OAuth деген не? «Google арқылы кіру» және делегацияланған қатынау түсіндіріледі
OAuth — пайдаланушыға бір қолданбаға басқа қызметтегі аккаунтына шектеулі қатынау беруге мүмкіндік беретін ашық стандарт, құпиясөзін бермей-ақ. «Google Calendar-ды қосу» түймесін басып, «Бұл қолданбаның оқиғаларыңызды көруіне рұқсат бересіз бе?» деген экранды көрсеңіз, бұл — OAuth. Қолданба тек мақұлдаған нәрсеге арналған токен алады, оны кез келген уақытта қайтарып алуға болады. Осы механизм, қосымша OpenID Connect қабатымен, «Google арқылы кіру» және ұқсас түймелерді қуаттайды.
AI-мен құрастырғанда OAuth неге маңызды
Қолданба құрғанда OAuth екі жағдайда кездеседі:
- Әлеуметтік кіру. Пайдаланушыларыңыз жаңа құпиясөз жасамай-ақ, «Google арқылы кіру» (немесе Apple, Microsoft, GitHub) деп кіргісі келеді. Қараңыз: қолданбаға кіруді қалай қосу керек.
- Пайдаланушылардың басқа қызметтердегі аккаунттарына қосылу. Қолданбаңыз пайдаланушының күнтізбесін оқуы, оның әлеуметтік аккаунтына жазуы, бұлттық дискісінен файл алуы немесе бухгалтерлік деректерін синхрондауы керек.
Екі жағдайда да AI құрастырушысы кодты жаза алады, бірақ кейбір қадамдарды тек сіз орындай аласыз: провайдермен әзірлеуші қолданбасын құру, client ID және client secret алу, callback URL-дарды тіркеу және кейбір рұқсаттар үшін провайдердің тексеруінен өту. OAuth-тың қалай жұмыс істейтінін білсеңіз, бұл қадамдар мен олардың тудыратын қателер соншалық түсініксіз болып көрінбейді. Кіру жүйесінің толық көрінісі үшін аутентификация деген не туралы қараңыз.
Күнделікті салыстыру
Қонақүй кілт-картасын елестетіңіз. Тіркелгенде қабылдау бөлімі сіздің кім екеніңізді тексереді, содан кейін сізге тек өз бөлмеңізді және спортзалды ашатын карта береді — басқа бөлмелерді, қызметкерлер аймағын емес — және шығу уақытында жұмыс істеуін тоқтатады. Картада сіздің паспортыңыз жоқ. Жоғалтсаңыз, бюро оны өшіріп, жаңасын береді.
- Қабылдау бөлімі — авторизация серверi (Google-дың кіру беті).
- Сіздің жеке куәлігіңізді тексеру — Google-ға кіруіңіз.
- Кілт-карта — қатынау токені.
- «Бөлме және спортзал ғана» — сіз мақұлдаған scope-тар.
- Шығу — токеннің мерзімі бітуі немесе сіз қатынауды кері қайтаруыңыз.
Қолданба, сіз пайдаланып жатқан, Google құпиясөзіңізді ешқашан көрмейді, тек кілт-картаны көреді.
OAuth қадамдық жұмыс істеуі
Веб-қолданбалар үшін ең жиі кездесетін ағын — authorization code flow. Пайдаланушы кесте қолданбасына Google Calendar-ды қосқанда мыналар болады:
- Басу. Пайдаланушы «Google Calendar-ды қосу» түймесін басады.
- Провайдерге бағыттау. Қолданба браузерді Google-ға клиент ID-мен, сұраған scope-тармен (күнтізбе оқиғаларын оқу) және Google пайдаланушыны кері жіберетін redirect URI-мен жібереді.
- Кіру және келісу. Пайдаланушы Google-ға кіреді (әлі кірмеген болса) және сұралған нәрселерді тізімдейтін келісім экранын көреді. Рұқсат беру түймесін басады.
- Кодпен қайту. Google браузерді қолданбаның redirect URI-ына қысқа мерзімді, бір реттік authorization code-пен қайтарады.
- Серверде алмастыру. Қолданбаның сервері осы кодты клиент secret-пен бірге тікелей Google-ға жібереді және access token (әдетте refresh token-пен бірге) алады.
- API-ды пайдалану. Сервер Google Calendar API-ын қатынау токенімен шақырып, пайдаланушының оқиғаларын алады.
4-қадамдағы callback мынадай болады:
https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9
Ал 5-қадамдағы токен жауабы мынадай JSON болады:
{
"access_token": "ya29.a0Af...",
"expires_in": 3599,
"refresh_token": "1//0gL...",
"scope": "https://www.googleapis.com/auth/calendar.readonly",
"token_type": "Bearer"
}
Маңызды дизайн нүктесі: токенді алмастыру сервер-сервер арасында жүреді, сондықтан клиент secret пен токендер браузер арқылы өтудің қажеті жоқ.
OAuth, OpenID Connect және өз кіру жүйеңіз
| Нені анықтайды | Мысал | |
|---|---|---|
| OAuth 2.0 | «Бұл қолданба пайдаланушы атынан не істей алады?» (авторизация) | Пайдаланушының күнтізбесін оқу |
| OpenID Connect (OIDC) | «Бұл пайдаланушы кім?» (аутентификация), OAuth негізінде | «Google арқылы кіру» расталған электрондық поштаны қайтарады |
| Өз кіруіңіз | «Бұл аккаунт үшін құпиясөз дұрыс па?» | Дерекқорыңызда сақталған (хэштелген) электрондық пошта мен құпиясөз |
Көп қолданбалар оларды біріктіреді: электрондық пошта мен құпиясөзбен кіру, OIDC арқылы «Google арқылы кіру» және басқа қызметтерге бөлек OAuth қосылымдары.
Негізгі терминдер
| Термин | Мағынасы |
|---|---|
| Провайдер / авторизация сервері | Пайдаланушы кіріп, қатынау беретін қызмет — Google, Microsoft, GitHub. |
| Клиент | Провайдерде тіркелген қолданбаңыз. |
| Client ID | Қолданбаңыздың провайдердегі ашық идентификаторы. |
| Client secret | Қолданбаңыздың провайдердегі жеке құпиясөзі. Тек серверде. |
| Scope | Нақты рұқсат, мысалы «күнтізбені оқу» немесе «электрондық пошта мекенжайын көру». |
| Келісім экраны (consent screen) | Пайдаланушы сұралған scope-тарды көріп, мақұлдайтын бет. |
| Redirect URI / callback URL | Провайдер пайдаланушыны қайтаратын жер. Алдын ала тіркелуі және дәл сәйкес келуі керек. |
| Access token | API шақыру үшін қысқа мерзімді тексеру мәлімет. |
| Refresh token | Жаңа access token алуға арналған ұзағырақ мерзімді тексеру мәлімет. Құпиясөз сияқты сақтаңыз. |
| ID token | OIDC-те пайдаланушының кім екенін сипаттайтын қол қойылған токен. |
| PKCE | Ұсталған кодтардың пайдаланылуын болдырмайтын қосымша тексеру («дәлел кілті»). Барлық клиенттерге ұсынылады. |
| state | Ағынды жалған сұраулардан қорғайтын кездейсоқ мән. |
Жиі кездесетін түсініспеушіліктер
- «OAuth — кіру жүйесі». Қарапайым OAuth қатынау береді; пайдаланушы кімдігін OpenID Connect өңдейді. Жалаңаш қатынау токенін біреудің кім екенінің дәлелі ретінде пайдалану нақты қауіпсіздік қателеріне әкелді.
- «Қолданба менің құпиясөзімді алады». Ол ешқашан алмайды. Осының бәрі осы үшін.
- «Көбірек scope сұрау зиянсыз». Пайдаланушылар кең сұраныстардан сақтанады, ал Google сияқты провайдерлер сезімтал немесе шектеулі scope-тарға қолданба тексеруін талап етуі мүмкін. Тек қажеттісін ғана сұраңыз.
- «Client secret фронтендте болуы мүмкін». Браузер кодындағының бәрі ашық. Оны сервердегі құпиялар ретінде сақтаңыз.
- «Тестте жұмыс істесе, өндірісте де жұмыс істейді». Провайдерлер тексерілмеген қолданбаларды шектеуі мүмкін, мысалы тізімделген тест пайдаланушыларымен ғана; ал тірі доменіңіздің redirect URI-ы бөлек тіркелуі керек.
- «Токендер мәңгі жұмыс істейді». Қатынау токендерінің мерзімі тез бітеді, ал пайдаланушылар қатынауды кері қайтара алады. Қолданбаңыз екеуін де дұрыс өңдеуі керек.
AI құрастырушысынан не сұрау керек
- «Google арқылы кіруді OpenID Connect және жақсы қолдау көрсетілетін кіру кітапханасымен қосыңыз — OAuth ағынын қолмен жазбаңыз.»
- «Authorization code flow-ды PKCE-мен пайдаланыңыз және
stateпараметрін тексеріңіз.» - «Клиент ID мен клиент secret-ті серверде айнымалылардан оқыңыз.»
- «Тек қажетті scope-тарды сұраңыз: күнтізбеге тек оқу қатынауы.»
- «Провайдердің консолінде тіркеу керек барлық redirect URL-ды айтыңыз: алдын ала қарау, жарияланған URL және дербес доменім үшін.»
- «Refresh token-дерді дерекқорда шифрлап сақтаңыз, ал мерзімі өткен немесе кері қайтарылған токендерді пайдаланушыдан қайта қосылуын сұрау арқылы өңдеңіз.»
- «Пайдаланушыларға интеграцияны параметрлер бетінен ажыратуға рұқсат етіңіз.»
OAuth және Mythex
Mythex-те жасаған қолданбаларыңыз үшін кірістірілген соңғы пайдаланушы кіру жүйесі жоқ; құжаттамасы «өз кілтіңізді әкеліңіз» тәсілін сипаттайды — аутентификация кітапханасын немесе хостингтік провайдерді таңдайсыз, оның кілттерін жоба құпияларында сақтайсыз, ал агент кодты жазады. Бұл үшін аутентификация қосу рецептінде бастапқы сұраныс бар. OAuth-ты Mythex-тің өзінде де кездестіресіз: Google арқылы тіркеле аласыз, GitHub қосу репозиторий синхрондауы үшін GitHub OAuth пайдаланады, ал MCP арқылы Mythex-ке қосылатын AI клиенттер OAuth келісім бетінен өтеді. Толығырақ: аутентификация деген не және екі факторлы аутентификация деген не.
Сұрақтар
OAuth қарапайым сөзбен не?
OAuth — пайдаланушы бір қолданбаға басқа қызметтегі аккаунтына қатынау беретін стандартты тәсіл, мысалы кесте қолданбасына Google Calendar-ды оқуға рұқсат беру сияқты, оған құпиясөзін бермей-ақ. Пайдаланушы нақты рұқсаттарды мақұлдайды, ал қолданба тек соларға ғана жарайтын токенді алады.
OAuth «Google арқылы кіру» сияқты ма?
«Google арқылы кіру» OAuth 2.0 пен OpenID Connect негізінде жасалған. OpenID Connect — OAuth үстіндегі қабат, ол қолданбаға пайдаланушының кім екенін білдірудің стандартты тәсілін қосады. OAuth өзі қатынау беруге қатысты; OpenID Connect оны кіруге айналдырады.
OAuth қатынау токені дегеніміз не?
Қатынау токені — қолданба қызметтің API-ына жіберетін, оған қатынау берілгенін дәлелдейтін тексеру мәлімет. Ол әдетте қысқа мерзімді болады және пайдаланушы мақұлдаған рұқсаттармен (scope) шектеледі. Берілсе, refresh token қолданбаға пайдаланушыдан қайта сұрамай жаңа қатынау токендерін алуға мүмкіндік береді.
redirect_uri_mismatch нені білдіреді?
Бұл кіру кезінде қолданбаңыз жіберген callback URL провайдердің әзірлеуші консолінде тіркелгенімен дәл сәйкес келмейтінін білдіреді. Қолданбаңыз жұмыс істейтін әр мекенжай үшін дәл URL-ды қосыңыз — https, домен, жол және соңындағы слэш қоса.
OAuth қауіпсіз бе?
OAuth 2.0 дұрыс іске асырылса, кеңінен қолданылады және қауіпсіз: PKCE бар authorization code ағыны, дәл redirect URL-дар, state параметрі, және client secret пен токендерді серверде сақтау. Көбіне мәселелер іске асыру жеңілдіктерінен туындайды, сондықтан жақсы қолдау көрсетілетін кітапхананы пайдалану ұсынылады.