OAuth என்றால் என்ன? "Google மூலம் உள்நுழை" மற்றும் பிரதிநிதித்துவ அணுகல் விளக்கம்
OAuth என்பது ஒரு திறந்த தரநிலை; இது ஒரு பயனர் தனது கடவுச்சொல்லைக் கொடுக்காமல், ஒரு ஆப்புக்கு மற்றொரு சேவையில் உள்ள தனது கணக்குக்கு வரையறுக்கப்பட்ட அணுகலை வழங்க அனுமதிக்கிறது. “Connect Google Calendar” என்பதை கிளிக் செய்து, “இந்த ஆப் உங்கள் நிகழ்வுகளைப் பார்க்க அனுமதிக்கவா?” என்று கேட்கும் திரையைப் பார்த்தால், அதுதான் OAuth. நீங்கள் அங்கீகரித்ததற்கு மட்டுமான token-ஐ ஆப் பெறுகிறது; அதை எப்போது வேண்டுமானாலும் ரத்து செய்யலாம். OpenID Connect என்ற கூடுதல் அடுக்குடன் அதே இயந்திரமே “Google மூலம் உள்நுழை” போன்ற பொத்தான்களுக்கு ஆற்றல் தருகிறது.
AI மூலம் கட்டும்போது OAuth ஏன் முக்கியம்
ஒரு ஆப்பைக் கட்டும்போது OAuth இரண்டு பொதுவான சூழ்நிலைகளில் வருகிறது:
- சமூக உள்நுழைவு. உங்கள் பயனர்கள் மற்றொரு கடவுச்சொல்லை உருவாக்குவதற்குப் பதிலாக “Google மூலம் உள்நுழை” (அல்லது Apple, Microsoft, GitHub) என்று உள்நுழைய வேண்டும். உங்கள் ஆப்பில் உள்நுழைவைச் சேர்ப்பது எப்படி பாருங்கள்.
- மற்ற சேவைகளில் பயனர்களின் கணக்குகளுடன் இணைதல். உங்கள் ஆப்புக்கு ஒரு பயனரின் calendar-ஐப் படிக்க வேண்டும், அவர்களின் சமூகக் கணக்கில் இடுகையிட வேண்டும், cloud drive-லிருந்து கோப்புகளை எடுக்க வேண்டும் அல்லது கணக்கியல் தரவை ஒத்திசைக்க வேண்டும்.
இரண்டு நிலைகளிலும் உங்கள் AI பில்டர் கோடு எழுதலாம்; ஆனால் சில படிகளை நீங்கள் மட்டுமே செய்ய முடியும்: வழங்குநருடன் ஒரு developer ஆப்பை உருவாக்குதல், client ID மற்றும் client secret பெறுதல், callback URL-களைப் பதிவு செய்தல், சில அனுமதிகளுக்கு வழங்குநரின் மதிப்பாய்வைக் கடத்தல். OAuth எப்படி வேலை செய்கிறது என்று தெரிந்தால், அந்தப் படிகளும் அவற்றால் வரும் பிழைகளும் அவ்வளவு மர்மமாகத் தெரியாது. உள்நுழைவின் பெரிய படத்துக்கு, authentication என்றால் என்ன பாருங்கள்.
அன்றாட உதாரணம்
ஒரு ஹோட்டல் அறை அட்டையை நினையுங்கள். செக்-இன்போது, முன் மேசை நீங்கள் யார் என்று உறுதிசெய்கிறது; பின்னர் உங்கள் அறையையும் உடற்பயிற்சி கூடத்தையும் திறக்கும் அட்டையைத் தருகிறது — மற்ற அறைகளையோ ஊழியர் பகுதிகளையோ அல்ல — செக்-அவுட்டில் அது வேலை செய்வதை நிறுத்துகிறது. அந்த அட்டையில் உங்கள் பாஸ்போர்ட் இல்லை. அதை இழந்தால், மேசை அதை ரத்து செய்து புதியதைத் தருகிறது.
- முன் மேசை என்பது authorization server (Google-ன் உள்நுழைவுப் பக்கம்).
- உங்கள் அடையாளச் சரிபார்ப்பு என்பது Google-ல் நீங்கள் உள்நுழைவது.
- அறை அட்டை என்பது access token.
- “அறையும் உடற்பயிற்சி கூடமும் மட்டும்” என்பது நீங்கள் அங்கீகரித்த scopes.
- செக்-அவுட் என்பது token காலாவதியாவது, அல்லது நீங்கள் அணுகலை ரத்து செய்வது.
நீங்கள் பயன்படுத்தும் ஆப் உங்கள் Google கடவுச்சொல்லை ஒருபோதும் பார்ப்பதில்லை; அட்டையை மட்டுமே பார்க்கிறது.
OAuth படிப்படியாக எப்படி வேலை செய்கிறது
வலை ஆப்களுக்கான மிகப் பொதுவான ஓட்டம் authorization code flow. ஒரு பயனர் தங்கள் Google Calendar-ஐ ஒரு திட்டமிடல் ஆப்புடன் இணைக்கும்போது என்ன நடக்கிறது:
- கிளிக். பயனர் “Connect Google Calendar” என்பதைக் கிளிக் செய்கிறார்.
- வழங்குநருக்குத் திருப்பி விடுதல். ஆப் உலாவியை Google-க்கு அனுப்புகிறது; அதனுடன் அதன் client ID, தேவைப்படும் scopes (calendar நிகழ்வுகளைப் படித்தல்), மற்றும் பயனரைத் திருப்பி அனுப்ப Google வேண்டிய redirect URI ஆகியவை இருக்கும்.
- உள்நுழைந்து ஒப்புதல். பயனர் Google-ல் உள்நுழைகிறார் (ஏற்கெனவே இல்லாவிட்டால்), கோரப்படுவதை பட்டியலிடும் ஒப்புதல் திரையைப் பார்க்கிறார். Allow கிளிக் செய்கிறார்.
- ஒரு code-உடன் திரும்புதல். Google உலாவியை ஆப்பின் redirect URI-க்குத் திருப்பி அனுப்புகிறது; குறுகிய ஆயுள் கொண்ட, ஒருமுறை மட்டும் பயன்படும் authorization code-உடன்.
- சர்வரில் பரிமாற்றம். ஆப்பின் சர்வர் அந்த code-ஐயும் அதன் client secret-ஐயும் நேரடியாக Google-க்கு அனுப்பி, ஒரு access token-ஐப் (பெரும்பாலும் ஒரு refresh token-உடன்) பெறுகிறது.
- API-ஐப் பயன்படுத்துதல். சர்வர் access token உடன் Google Calendar API-ஐ அழைத்து பயனரின் நிகழ்வுகளைப் பெறுகிறது.
படி 4-ல் உள்ள callback இப்படி இருக்கும்:
https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9
படி 5-ல் உள்ள token பதில் இப்படிப்பட்ட JSON:
{
"access_token": "ya29.a0Af...",
"expires_in": 3599,
"refresh_token": "1//0gL...",
"scope": "https://www.googleapis.com/auth/calendar.readonly",
"token_type": "Bearer"
}
முக்கியமான வடிவமைப்புப் புள்ளி: token பரிமாற்றம் சர்வருக்கும் சர்வருக்கும் இடையே நடக்கிறது; எனவே client secret-உம் tokens-உம் உலாவி வழியாக ஒருபோதும் செல்ல வேண்டியதில்லை.
OAuth vs OpenID Connect vs உங்கள் சொந்த உள்நுழைவு
| எதற்கு பதில் | எடுத்துக்காட்டு | |
|---|---|---|
| OAuth 2.0 | “பயனர் சார்பாக இந்த ஆப் என்ன செய்ய அனுமதிக்கப்படுகிறது?” (அங்கீகாரம்) | ஒரு பயனரின் calendar-ஐப் படித்தல் |
| OpenID Connect (OIDC) | “இந்தப் பயனர் யார்?” (அடையாளம் உறுதி), OAuth மேல் கட்டப்பட்டது | “Google மூலம் உள்நுழை” சரிபார்க்கப்பட்ட மின்னஞ்சலைத் திருப்புவது |
| உங்கள் சொந்த உள்நுழைவு | “இந்தக் கணக்குக்கான கடவுச்சொல் இதுதானா?” | உங்கள் தரவுத்தளத்தில் (hash செய்யப்பட்டு) சேமிக்கப்பட்ட மின்னஞ்சல் மற்றும் கடவுச்சொல் |
பல ஆப்கள் இவற்றை இணைக்கின்றன: மின்னஞ்சல்-கடவுச்சொல் உள்நுழைவு, OIDC வழியாக “Google மூலம் உள்நுழை”, மற்ற சேவைகளுக்கான தனி OAuth இணைப்புகள்.
முக்கிய சொற்கள்
| சொல் | பொருள் |
|---|---|
| Provider / authorization server | பயனர் உள்நுழைந்து அணுகலை வழங்கும் சேவை — Google, Microsoft, GitHub. |
| Client | வழங்குநருடன் பதிவு செய்யப்பட்ட உங்கள் ஆப். |
| Client ID | வழங்குநருடன் உங்கள் ஆப்பின் பொது அடையாளங்காட்டி. |
| Client secret | வழங்குநருடன் உங்கள் ஆப்பின் தனிப்பட்ட கடவுச்சொல். சர்வர்-மட்டும். |
| Scope | “calendar படி” அல்லது “மின்னஞ்சல் முகவரியைப் பார்” போன்ற ஒரு குறிப்பிட்ட அனுமதி. |
| Consent screen | கோரப்பட்ட scopes-ஐப் பயனர் பார்த்து அங்கீகரிக்கும் பக்கம். |
| Redirect URI / callback URL | வழங்குநர் பயனரைத் திருப்பி அனுப்பும் இடம். முன்கூட்டியே பதிவு செய்யப்பட்டு சரியாகப் பொருந்த வேண்டும். |
| Access token | API-ஐ அழைக்கப் பயன்படும் குறுகிய ஆயுள் நற்சான்று. |
| Refresh token | புதிய access tokens பெற பயன்படும் நீண்ட ஆயுள் நற்சான்று. கடவுச்சொல்லைப் போலச் சேமியுங்கள். |
| ID token | OIDC-ல், பயனர் யார் என்று விவரிக்கும் கையொப்பமிடப்பட்ட token. |
| PKCE | இடைமறிக்கப்பட்ட codes பயன்படுவதைத் தடுக்கும் கூடுதல் சரிபார்ப்பு (“proof key”). எல்லா clients-க்கும் பரிந்துரைக்கப்படுகிறது. |
| state | கள்ளத்தனமான கோரிக்கைகளுக்கு எதிராக ஓட்டத்தைப் பாதுகாக்கும் ஒரு சீரற்ற மதிப்பு. |
பொதுவான தவறான புரிதல்கள்
- “OAuth ஒரு உள்நுழைவு அமைப்பு.” சாதாரண OAuth அணுகலை வழங்குகிறது; அடையாளத்தை OpenID Connect கையாள்கிறது. ஒருவர் யார் என்பதற்கான ஆதாரமாக வெறும் access token-ஐப் பயன்படுத்துவது உண்மையான பாதுகாப்புப் பிழைகளை ஏற்படுத்தியுள்ளது.
- “ஆப் என் கடவுச்சொல்லைப் பெறுகிறது.” ஒருபோதும் இல்லை. அதுவே நோக்கம்.
- “அதிக scopes கேட்பது பாதிப்பில்லாதது.” பரந்த கோரிக்கைகளில் பயனர்கள் எச்சரிக்கையாக இருப்பார்கள்; Google போன்ற வழங்குநர்கள் உணர்திறன் அல்லது கட்டுப்படுத்தப்பட்ட scopes-களுக்கு ஆப் மதிப்பாய்வைக் கேட்கலாம். உங்களுக்குத் தேவையானதை மட்டும் கேளுங்கள்.
- “Client secret-ஐ frontend-ல் வைக்கலாம்.” உலாவிக் கோடில் உள்ள எதுவும் பொதுவானது. அதை சர்வர்-பக்க ரகசியங்களில் வையுங்கள்.
- “சோதனையில் வேலை செய்கிறது, அதனால் production-லும் வேலை செய்யும்.” சரிபார்க்கப்படாத ஆப்களை வழங்குநர்கள் பெரும்பாலும் கட்டுப்படுத்துகின்றனர் — எடுத்துக்காட்டாக, பட்டியலிட்ட test users-களுக்கு மட்டும். உங்கள் நேரடி டொமைனுக்கான redirect URI தனியாகப் பதிவு செய்யப்பட வேண்டும்.
- “Tokens என்றென்றும் நீடிக்கும்.” Access tokens விரைவில் காலாவதியாகின்றன; பயனர்கள் அணுகலை ரத்து செய்யலாம். உங்கள் ஆப் இரண்டையும் சரியாகக் கையாள வேண்டும்.
உங்கள் AI பில்டரிடம் என்ன கேட்க வேண்டும்
- “நன்கு பராமரிக்கப்படும் auth library-உடன் OpenID Connect பயன்படுத்தி ‘Google மூலம் உள்நுழை’ சேருங்கள் — OAuth ஓட்டத்தை கையால் எழுதாதீர்கள்.”
- “PKCE உடன் authorization code flow பயன்படுத்துங்கள்;
stateparameter-ஐச் சரிபாருங்கள்.” - “Client ID-யும் client secret-ஐயும் சர்வரில் environment variables-லிருந்து படியுங்கள்.”
- “நமக்குத் தேவையான scopes-களை மட்டும் கேளுங்கள்: calendar-ஐ படிக்க மட்டும் அணுகல்.”
- “Preview, வெளியிடப்பட்ட URL மற்றும் என் தனிப்பயன் டொமைன் ஆகியவற்றுக்கு வழங்குநரின் console-ல் நான் பதிவு செய்ய வேண்டிய ஒவ்வொரு redirect URL-ஐயும் சொல்லுங்கள்.”
- “Refresh tokens-ஐ தரவுத்தளத்தில் குறியாக்கம் செய்து சேமியுங்கள்; காலாவதியான அல்லது ரத்து செய்யப்பட்ட tokens-ஐ பயனரிடம் மீண்டும் இணையச் சொல்லிக் கையாளுங்கள்.”
- “பயனர்கள் தங்கள் அமைப்புகள் பக்கத்திலிருந்து இணைப்பைத் துண்டிக்க அனுமதியுங்கள்.”
OAuth மற்றும் Mythex
Mythex-ல் நீங்கள் கட்டும் ஆப்களுக்கு உள்ளமைந்த இறுதிப் பயனர் உள்நுழைவு இல்லை; அதன் ஆவணங்கள் “உங்கள் சொந்த வழி” அணுகுமுறையை விவரிக்கின்றன — ஒரு auth library அல்லது hosted provider-ஐ நீங்கள் தேர்ந்தெடுக்கிறீர்கள், அதன் keys-களை திட்ட ரகசியங்களாக சேமிக்கிறீர்கள், agent கோடு எழுதுகிறது. இதற்கான ஒரு தொடக்க அறிவுறுத்தல் authentication சேர்க்கும் recipe-ல் உள்ளது. Mythex-லேயே நீங்கள் OAuth-ஐ சந்திப்பீர்கள்: Google மூலம் பதிவு செய்யலாம்; repo ஒத்திசைவுக்காக GitHub-ஐ இணைப்பது GitHub OAuth பயன்படுத்துகிறது; MCP வழியாக Mythex-உடன் இணையும் AI clients ஒரு OAuth ஒப்புதல் பக்கத்தின் வழியாகச் செல்கின்றன. மேலும் அறிய, authentication என்றால் என்ன மற்றும் two-factor authentication என்றால் என்ன பாருங்கள்.
கேள்விகள்
எளிய சொற்களில் OAuth என்றால் என்ன?
OAuth என்பது ஒரு பயனர் தனது கடவுச்சொல்லைக் கொடுக்காமலேயே, ஒரு ஆப் மற்றொரு சேவையில் தனது கணக்கை அணுகுவதற்கு அனுமதிக்கும் நிலையான முறை — எடுத்துக்காட்டாக ஒரு திட்டமிடல் ஆப் அவர்களின் Google Calendar-ஐப் படிக்க அனுமதிப்பது போல. பயனர் குறிப்பிட்ட அனுமதிகளை அங்கீகரிக்கிறார்; ஆப் அவற்றுக்கு மட்டுமே பயன்படுத்தக்கூடிய ஒரு token-ஐப் பெறுகிறது.
OAuth என்பது "Google மூலம் உள்நுழை" போன்றதா?
"Google மூலம் உள்நுழை" என்பது OAuth 2.0 மற்றும் OpenID Connect மேல் கட்டப்பட்டது. OpenID Connect என்பது OAuth மேல் உள்ள ஒரு அடுக்கு; பயனர் யார் என்று ஆப்புக்குச் சொல்ல ஒரு நிலையான வழியைச் சேர்க்கிறது. OAuth தனியாக அணுகல் வழங்குவது பற்றியது; OpenID Connect அதை உள்நுழைவாக மாற்றுகிறது.
OAuth access token என்றால் என்ன?
Access token என்பது ஆப் ஒரு சேவையின் API-க்கு அனுப்பும் நற்சான்று; அணுகல் வழங்கப்பட்டுள்ளது என்று நிரூபிக்க. இது பொதுவாக குறுகிய ஆயுள் கொண்டது; பயனர் அங்கீகரித்த அனுமதிகளுக்கு (scopes) மட்டும் வரையறுக்கப்பட்டது. Refresh token வழங்கப்பட்டால், பயனரை மீண்டும் கேட்காமல் ஆப் புதிய access tokens பெற முடியும்.
redirect_uri_mismatch என்றால் என்ன அர்த்தம்?
உள்நுழைவின்போது உங்கள் ஆப் அனுப்பிய callback URL, வழங்குநரின் developer console-ல் பதிவு செய்யப்பட்ட ஒன்றுடன் சரியாகப் பொருந்தவில்லை என்று பொருள். உங்கள் ஆப் இயங்கும் ஒவ்வொரு முகவரிக்கும் சரியான URL-ஐச் சேருங்கள் — https, டொமைன், பாதை, இறுதியில் உள்ள slash உட்பட.
OAuth பாதுகாப்பானதா?
OAuth 2.0 பரவலாகப் பயன்படுகிறது; சரியாகச் செயல்படுத்தினால் பாதுகாப்பானது: PKCE உடன் authorization code flow, சரியான redirect URLs, state parameter, client secret-ம் tokens-உம் சர்வரில் வைத்திருத்தல். பெரும்பாலான பிரச்சினைகள் குறுக்குவழிச் செயல்படுத்தல்களிலிருந்து வருகின்றன; அதனால்தான் நன்கு பராமரிக்கப்படும் library பயன்படுத்துவது பரிந்துரைக்கப்படுகிறது.