OAuth: ലളിതവും മനസ്സിലാക്കാവുന്നതുമായ ഭാഷയിലുള്ള പ്രോട്ടോക്കോളിന്റെ ഒരു വിവരണം. ക്ലയന്റ് ഐഡിയിൽ നിന്ന് OAuth2 പ്ലേഗ്രൗണ്ട് എങ്ങനെ നീക്കം ചെയ്യാം. ക്ലയന്റ് ഐഡിയും രഹസ്യ കീയും എങ്ങനെ ലഭിക്കും

2010-ൽ, OAuth 2.0 പ്രോട്ടോക്കോളിന്റെ പൂർണ്ണമായും പുതിയ പതിപ്പിന്റെ പ്രവർത്തനം ആരംഭിച്ചു, അത് OAuth 1.0-ന് പിന്നിലേക്ക് അനുയോജ്യമല്ല. 2012 ഒക്ടോബറിൽ, OAuth 2.0 ചട്ടക്കൂട് RFC 6749-ൽ പ്രസിദ്ധീകരിച്ചു, കൂടാതെ RFC 6750-ൽ ടോക്കൺ ബെയററിന്റെ ഉപയോഗം, അഭിപ്രായ അഭ്യർത്ഥനകൾ ട്രാക്ക് ചെയ്യുന്ന രണ്ട് മാനദണ്ഡങ്ങളും. അധിക RFCകൾ ഇപ്പോഴും വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്നു.

OAuth 2.0 സൃഷ്ടിക്കുന്നതിന് നിരവധി മുൻവ്യവസ്ഥകൾ ഉണ്ടായിരുന്നു. ഒന്നാമതായി, OAuth ക്ലയന്റ് ഭാഗത്ത് ഉപയോഗിക്കുന്നത് വളരെ നിസ്സാരമല്ല. പുതിയ OAuth വികസിപ്പിക്കുന്നതിലെ ലക്ഷ്യങ്ങളിലൊന്ന് ക്ലയന്റ് ആപ്ലിക്കേഷനുകളുടെ വികസനം ലളിതമാക്കുക എന്നതാണ്. രണ്ടാമതായി, അംഗീകാരത്തിനായി ഒരു ടോക്കൺ (അദ്വിതീയ ഐഡന്റിഫയർ) നേടുന്നതിനുള്ള സ്റ്റാൻഡേർഡിൽ പറഞ്ഞിരിക്കുന്ന മൂന്ന് രീതികൾ (ഫ്ലോകൾ എന്ന് വിളിക്കപ്പെടുന്നവ) നടപ്പിലാക്കിയിട്ടും: വെബ് ആപ്ലിക്കേഷനുകൾക്കും ഡെസ്ക്ടോപ്പ് ക്ലയന്റുകൾക്കും മൊബൈൽ ക്ലയന്റുകൾക്കും, വാസ്തവത്തിൽ മൂന്ന് രീതികളും ഒന്നായി ലയിപ്പിച്ചിരിക്കുന്നു. മൂന്നാമതായി, പ്രോട്ടോക്കോൾ മോശമായി സ്കെയിലബിൾ ആയി മാറി. ഇത് ചേർക്കാൻ പദ്ധതിയിട്ടിരിക്കുന്നു:

  • 6 പുതിയ സ്ട്രീമുകൾ.
ഉപയോക്തൃ-ഏജന്റ് ഫ്ലോ - ഒരു ഉപയോക്തൃ ഏജന്റിനുള്ളിൽ പ്രവർത്തിക്കുന്ന ക്ലയന്റുകൾക്കായി (സാധാരണയായി ഒരു വെബ് ബ്രൗസർ). വെബ് സെർവർ ഫ്ലോ - ഒരു വെബ് സെർവർ ആപ്ലിക്കേഷന്റെ ഭാഗമായ ക്ലയന്റുകൾക്ക്, HTTP അഭ്യർത്ഥനകൾ വഴി ആക്സസ് ചെയ്യാൻ കഴിയും. ഉപകരണ ഫ്ലോ - നിയന്ത്രിത ഉപകരണങ്ങളിൽ പ്രവർത്തിക്കുന്ന ക്ലയന്റുകൾക്ക് അനുയോജ്യം, എന്നാൽ അന്തിമ ഉപയോക്താവിന് മറ്റൊരു കമ്പ്യൂട്ടറിലോ ഉപകരണത്തിലോ ബ്രൗസറിലേക്ക് പ്രത്യേക ആക്സസ് ഉള്ളിടത്ത്. ഉപയോക്തൃനാമവും പാസ്‌വേഡ് ഫ്ലോയും - ഉപയോക്താക്കൾ തന്റെ ക്രെഡൻഷ്യലുകൾ കൈകാര്യം ചെയ്യാൻ ക്ലയന്റിനെ വിശ്വസിക്കുന്ന സന്ദർഭങ്ങളിൽ ഉപയോഗിക്കുന്നു, എന്നാൽ ഉപയോക്തൃനാമവും പാസ്‌വേഡും സംഭരിക്കാൻ ക്ലയന്റിനെ അനുവദിക്കാൻ അദ്ദേഹം ഇപ്പോഴും ആഗ്രഹിക്കുന്നില്ല. ഉപയോക്താവിനും ക്ലയന്റിനുമിടയിൽ ഉയർന്ന വിശ്വാസ്യത ഉള്ളപ്പോൾ മാത്രമേ ഈ ഒഴുക്ക് അനുയോജ്യമാകൂ. ക്ലയന്റ് ക്രെഡൻഷ്യൽ ഫ്ലോ - ഒരു ടോക്കൺ ലഭിക്കുന്നതിന് ക്ലയന്റ് അതിന്റെ ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നു. അസെർഷൻ ഫ്ലോ - ക്ലയന്റ് ഒരു ടോക്കണിന് പകരമായി ഒരു SAML അസെർഷൻ പോലുള്ള ഒരു അവകാശവാദം അംഗീകാര സെർവറിലേക്ക് സമർപ്പിക്കുന്നു. ഒരു ഡെസ്‌ക്‌ടോപ്പ് കമ്പ്യൂട്ടറിലോ മൊബൈൽ ഉപകരണത്തിലോ പ്രവർത്തിക്കുന്ന അപ്ലിക്കേഷനുകൾ മുകളിലുള്ള ഫ്ലോകൾ ഉപയോഗിച്ച് നടപ്പിലാക്കാൻ കഴിയും.
  • ബെയറർ ടോക്കൺ.
കുക്കികൾ ഉപയോഗിച്ച് നിലവിലുള്ള അംഗീകാര രീതിക്ക് സമാനമാണ് അംഗീകാര രീതി. ഈ സാഹചര്യത്തിൽ, ടോക്കൺ നേരിട്ട് ഒരു രഹസ്യമായി ഉപയോഗിക്കുന്നു (ടോക്കൺ ഉള്ളത് ക്ലയന്റിനെ അംഗീകരിക്കുന്നു) കൂടാതെ HTTPS വഴി കൈമാറ്റം ചെയ്യപ്പെടുന്നു. ലളിതമായ സ്ക്രിപ്റ്റുകളിലൂടെ (ഉദാ: cURL ഉപയോഗിച്ച്) API ആക്സസ് ചെയ്യാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.
  • ലളിതമായ ഒപ്പ്.
പ്രത്യേക വിശകലനം, കോഡിംഗ്, പാരാമീറ്റർ സോർട്ടിംഗ് എന്നിവയുടെ ആവശ്യകത ഇല്ലാതാക്കാൻ ഒപ്പ് വളരെ ലളിതമാക്കിയിരിക്കുന്നു.
  • ദീർഘകാല അംഗീകാരമുള്ള ഹ്രസ്വകാല ടോക്കണുകൾ.
ഒരു ദീർഘകാല ടോക്കൺ നൽകുന്നതിനുപകരം (ഇത് കാലക്രമേണ വിട്ടുവീഴ്ച ചെയ്യപ്പെടാം), ഉപയോക്തൃ ഇടപെടലില്ലാതെ ടോക്കൺ അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനുള്ള ഹ്രസ്വകാല ആക്‌സസും ദീർഘകാല കഴിവും സെർവർ നൽകുന്നു.
  • റോളുകളുടെ വേർതിരിവ്.
വ്യത്യസ്‌ത സെർവറുകൾ അധികാരപ്പെടുത്തുന്നതിനും API-യിലേക്ക് ആക്‌സസ് നൽകുന്നതിനും ഉത്തരവാദികളായിരിക്കാം.

OAuth 2.0 സ്റ്റാൻഡേർഡിന് ഇതുവരെ അംഗീകാരം ലഭിച്ചിട്ടില്ലെങ്കിലും, ഇത് ഇതിനകം തന്നെ ചില സേവനങ്ങൾ ഉപയോഗിക്കുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. ഉദാഹരണത്തിന്, Facebook ഗ്രാഫ് API OAuth 2.0-നെ മാത്രമേ പിന്തുണയ്ക്കൂ.

OAuth, OpenID എന്നിവ തമ്മിലുള്ള വ്യത്യാസം

ഓപ്പൺഐഡി പ്രോട്ടോക്കോളിന്റെ വിപുലീകരണമാണ് OAuth എന്ന തെറ്റായ ധാരണയുണ്ട്. യഥാർത്ഥത്തിൽ ഇത് സത്യമല്ല. OpenID-യും OAuth-നും നിരവധി സമാനതകൾ ഉണ്ടെങ്കിലും, രണ്ടാമത്തേത് OpenID-യുമായി യാതൊരു തരത്തിലും ബന്ധമില്ലാത്ത ഒരു ഒറ്റപ്പെട്ട പ്രോട്ടോക്കോൾ ആണ്.

ടൈംസ്റ്റാമ്പും നോൻസും

റീപ്ലേ അഭ്യർത്ഥനകളുടെ ഭീഷണി തടയാൻ, OAuth ഒരു നോൺസും ടൈംസ്റ്റാമ്പും ഉപയോഗിക്കുന്നു. "nonce" എന്ന പദത്തിന്റെ അർത്ഥം, ഈ സമയം ഒരിക്കൽ ഉപയോഗിച്ചുവെന്നും ഒപ്പിട്ട ഓരോ അഭ്യർത്ഥനയും അദ്വിതീയമായി തിരിച്ചറിയാൻ ഉദ്ദേശിച്ചുള്ള അക്ഷരങ്ങളുടെയും അക്കങ്ങളുടെയും തനതായ ക്രമരഹിതമായ ഒരു കൂട്ടമാണ്. ഓരോ അഭ്യർത്ഥനയ്ക്കും ഒരു അദ്വിതീയ ഐഡി ഉണ്ടായിരിക്കുന്നതിലൂടെ, പുനരുപയോഗ അഭ്യർത്ഥനകൾ തടയാൻ സേവന ദാതാവിന് കഴിയും. സെർവറിലേക്ക് അയയ്‌ക്കുന്ന ഓരോ അഭ്യർത്ഥനയ്‌ക്കും ക്ലയന്റ് ഒരു അദ്വിതീയ സ്‌ട്രിംഗ് സൃഷ്‌ടിക്കുന്നു എന്നാണ് ഇതിനർത്ഥം, കൂടാതെ അവ രണ്ടാം തവണ ഉപയോഗിക്കുന്നത് തടയാൻ ഉപയോഗിക്കുന്ന എല്ലാ നോൺസുകളുടെയും ട്രാക്ക് സെർവർ സൂക്ഷിക്കുന്നു.

നോൺസുകൾ ഉപയോഗിക്കുന്നത് സെർവറിന് വളരെ ചെലവേറിയതാണ്, കാരണം അവർക്ക് ലഭിച്ച എല്ലാ നോൺസുകളുടെയും സ്ഥിരമായ സംഭരണം ആവശ്യമാണ്. നടപ്പിലാക്കൽ എളുപ്പമാക്കുന്നതിന്, ഓരോ അഭ്യർത്ഥനയ്ക്കും OAuth ഒരു ടൈംസ്റ്റാമ്പ് ചേർക്കുന്നു, ഇത് പരിമിതമായ സമയത്തേക്ക് മാത്രം നോൺസ് സംഭരിക്കാൻ സെർവറിനെ അനുവദിക്കുന്നു. സംഭരിച്ച സമയത്തേക്കാൾ മുമ്പുള്ള ഒരു ടൈംസ്റ്റാമ്പുമായി ഒരു അഭ്യർത്ഥന വരുമ്പോൾ, സെർവറിന് ആ സമയം മുതൽ നോൺസ് ഇല്ലാത്തതിനാൽ അത് നിരസിക്കപ്പെടും.

ക്രെഡൻഷ്യലുകളും ടോക്കണുകളും

OAuth മൂന്ന് തരം ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നു: ഉപഭോക്തൃ കീയും രഹസ്യവും അല്ലെങ്കിൽ ക്ലയന്റ് ക്രെഡൻഷ്യലുകളും, താൽക്കാലിക ക്രെഡൻഷ്യലുകളും (അഭ്യർത്ഥന ടോക്കണും രഹസ്യവും അല്ലെങ്കിൽ താൽക്കാലിക ക്രെഡൻഷ്യലുകളും), ടോക്കണുകളും (ആക്സസ് ടോക്കണും രഹസ്യ അല്ലെങ്കിൽ ടോക്കൺ ക്രെഡൻഷ്യലുകളും).

ക്ലയന്റ് ക്രെഡൻഷ്യലുകൾ ഉപഭോക്താവിനെ ആധികാരികമാക്കാൻ ഉപയോഗിക്കുന്നു. ക്ലയന്റുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശേഖരിക്കാൻ ഇത് സെർവറിനെ അനുവദിക്കുന്നു. അതിന്റെ സേവനങ്ങൾ ഉപയോഗിച്ച്, സെർവർ ചില ക്ലയന്റുകൾക്ക് പ്രത്യേക പ്രോസസ്സിംഗ് വാഗ്ദാനം ചെയ്യുന്നു, അതായത് സൗജന്യ ആക്‌സസ് ത്രോട്ടിൽ ചെയ്യുക, അല്ലെങ്കിൽ അവരുടെ പരിരക്ഷിത ഉറവിടങ്ങൾ ആക്‌സസ് ചെയ്യാൻ ശ്രമിക്കുന്ന ക്ലയന്റുകളെക്കുറിച്ചുള്ള കൂടുതൽ വിശദമായ വിവരങ്ങൾ ഉറവിട ഉടമയ്ക്ക് നൽകുക. ചില സന്ദർഭങ്ങളിൽ, ക്ലയന്റ് ക്രെഡൻഷ്യലുകൾ സുരക്ഷിതമായിരിക്കില്ല, ഡെസ്‌ക്‌ടോപ്പ് ആപ്ലിക്കേഷനുകൾ പോലെയുള്ള വിവര ആവശ്യങ്ങൾക്കായി മാത്രമേ ഉപയോഗിക്കാവൂ.

റിസോഴ്സ് ഉടമയുടെ പേരും പാസ്വേഡും പകരം ടോക്കൺ ഉപയോഗിക്കുന്നു. റിസോഴ്‌സ് ഉടമ അതിന്റെ ക്രെഡൻഷ്യലുകൾ ക്ലയന്റുമായി പങ്കിടുന്നില്ല, പകരം ക്ലയന്റിന് ഒരു ടോക്കൺ നൽകുന്നതിന് സെർവറിനെ അധികാരപ്പെടുത്തുന്നു - ഗ്രാന്റ് ആക്‌സസ് പ്രതിനിധീകരിക്കുന്ന ഒരു പ്രത്യേക ക്ലാസ് ക്രെഡൻഷ്യലുകൾ. റിസോഴ്‌സ് ഉടമയുടെ പാസ്‌വേഡ് അറിയാതെ സംരക്ഷിത ഉറവിടത്തിലേക്ക് പ്രവേശിക്കാൻ ക്ലയന്റ് ടോക്കൺ ഉപയോഗിക്കുന്നു.

ഒരു ടോക്കണിൽ ഒരു ഐഡന്റിഫയർ അടങ്ങിയിരിക്കുന്നു, സാധാരണയായി (എന്നാൽ എല്ലായ്‌പ്പോഴും അല്ല) ക്രമരഹിതമായ അക്ഷരങ്ങളുടെയും അക്കങ്ങളുടെയും അദ്വിതീയവും ഊഹിക്കാൻ പ്രയാസമുള്ളതുമായ ഒരു കൂട്ടം, കൂടാതെ അനധികൃത വ്യക്തികളുടെ ഉപയോഗത്തിൽ നിന്ന് ടോക്കണിനെ സംരക്ഷിക്കുന്നതിനുള്ള ഒരു കീ. ടോക്കൺ പരിധിയിലും ദൈർഘ്യത്തിലും പരിമിതമാണ്, മറ്റ് ക്ലയന്റുകൾക്ക് നൽകുന്ന മറ്റ് ടോക്കണുകളെ ബാധിക്കാതെ തന്നെ റിസോഴ്‌സ് ഉടമയ്ക്ക് എപ്പോൾ വേണമെങ്കിലും അസാധുവാക്കാവുന്നതാണ്.

അംഗീകാര അഭ്യർത്ഥന നിർണ്ണയിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു കൂട്ടം താൽക്കാലിക ക്രെഡൻഷ്യലുകളും OAuth അംഗീകാര പ്രക്രിയ ഉപയോഗിക്കുന്നു. വിവിധ തരത്തിലുള്ള ക്ലയന്റുകളെ (വെബ്, ഡെസ്‌ക്‌ടോപ്പ്, മൊബൈൽ മുതലായവ) ഉൾക്കൊള്ളാൻ, താൽക്കാലിക ക്രെഡൻഷ്യലുകൾ അധിക വഴക്കവും സുരക്ഷയും വാഗ്ദാനം ചെയ്യുന്നു.

OAuth എങ്ങനെ പ്രവർത്തിക്കുന്നു

OAuth പ്രോട്ടോക്കോൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു

OAuth പ്രോട്ടോക്കോളിന്റെ പ്രവർത്തനം ഒരു ഉദാഹരണം ഉപയോഗിച്ച് നമുക്ക് വിശദീകരിക്കാം. പ്രിന്റിംഗ് സേവനം "printer.example.net" (ക്ലയന്റ്) ഉപയോഗിച്ച് "photos.example.net" (സെർവർ) സൈറ്റിലേക്ക് അപ്‌ലോഡ് ചെയ്‌ത തന്റെ ഫോട്ടോകൾ (വിഭവങ്ങൾ) ഒരു ഉപയോക്താവ് (റിസോഴ്‌സ് ഉടമ) പ്രിന്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെന്ന് നമുക്ക് പറയാം.

  1. ക്ലയന്റ്, HTTPS പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച്, ക്ലയന്റ് ഐഡന്റിഫയർ, ഒരു ടൈംസ്റ്റാമ്പ്, ടോക്കൺ തിരികെ നൽകേണ്ട ഒരു കോൾബാക്ക് വിലാസം, ഉപയോഗിച്ച ഡിജിറ്റൽ സിഗ്നേച്ചർ, ഒപ്പ് എന്നിവ അടങ്ങുന്ന ഒരു അഭ്യർത്ഥന സെർവറിലേക്ക് അയയ്ക്കുന്നു.
  2. സെർവർ അഭ്യർത്ഥന അംഗീകരിക്കുകയും ഒരു ആക്‌സസ് ടോക്കണും പങ്കിട്ട രഹസ്യത്തിന്റെ ഭാഗവും ഉപയോഗിച്ച് ക്ലയന്റിനോട് പ്രതികരിക്കുകയും ചെയ്യുന്നു.
  3. ക്ലയന്റ് റിസോഴ്സ് ഉടമയ്ക്ക് (ഉപയോക്താവിന്) ടോക്കൺ കൈമാറുകയും അംഗീകാരത്തിനായി സെർവറിലേക്ക് റീഡയറക്ട് ചെയ്യുകയും ചെയ്യുന്നു.
  4. സെർവർ, ഉപയോക്താവിൽ നിന്ന് ഒരു ടോക്കൺ സ്വീകരിച്ച്, അവന്റെ ലോഗിനും പാസ്‌വേഡും അവനോട് ആവശ്യപ്പെടുന്നു, പ്രാമാണീകരണം വിജയകരമാണെങ്കിൽ, ക്ലയന്റിന്റെ ഉറവിടങ്ങളിലേക്കുള്ള ആക്‌സസ് (അംഗീകാരം) സ്ഥിരീകരിക്കാൻ ഉപയോക്താവിനോട് ആവശ്യപ്പെടുന്നു, അതിനുശേഷം ഉപയോക്താവിനെ സെർവർ റീഡയറക്‌ടുചെയ്യുന്നു. കക്ഷി.
  5. ക്ലയന്റ് TLS വഴി സെർവറിലേക്ക് ഒരു ടോക്കൺ കൈമാറുകയും ഉറവിടങ്ങളിലേക്ക് ആക്സസ് അഭ്യർത്ഥിക്കുകയും ചെയ്യുന്നു.
  6. സെർവർ അഭ്യർത്ഥന അംഗീകരിക്കുകയും പുതിയ ആക്സസ് ടോക്കൺ ഉപയോഗിച്ച് ക്ലയന്റിനോട് പ്രതികരിക്കുകയും ചെയ്യുന്നു.
  7. പുതിയ ടോക്കൺ ഉപയോഗിച്ച്, ഉറവിടങ്ങൾക്കായി ക്ലയന്റ് സെർവറുമായി ബന്ധപ്പെടുന്നു.
  8. സെർവർ അഭ്യർത്ഥന അംഗീകരിക്കുകയും ഉറവിടങ്ങൾ നൽകുകയും ചെയ്യുന്നു.

ഈ ഉദാഹരണം ഒരു ഓതറൈസേഷൻ കോഡ് (ഓതറൈസേഷൻ കോഡ് ഫ്ലോ) ഉള്ള ഒരു ഒഴുക്കിനെ വിവരിക്കുന്നു. കൂടാതെ, OAuth 2.0 സ്റ്റാൻഡേർഡ് ഇനിപ്പറയുന്ന ഫ്ലോകളെ വിവരിക്കുന്നു:

  • അവ്യക്തമായ ഗ്രാന്റ് ഫ്ലോ
സ്ഥിരീകരണ കോഡ് ഫ്ലോയിൽ നിന്നുള്ള വ്യത്യാസം, ക്ലയന്റ് സെർവർ പ്രാമാണീകരിക്കാത്തതും അംഗീകാര അഭ്യർത്ഥനയ്ക്ക് ശേഷം സെർവർ ആക്സസ് ടോക്കൺ നൽകുന്നതുമാണ്.
  • കാലഹരണപ്പെട്ട ആക്‌സസ് ടോക്കൺ ഫ്ലോ പുതുക്കുന്നു
ഈ ഫ്ലോയും നൽകിയിരിക്കുന്ന ഉദാഹരണവും തമ്മിലുള്ള വ്യത്യാസങ്ങൾ ഇപ്രകാരമാണ്: ഘട്ടം 2-ൽ, സെർവർ, ആക്സസ് ടോക്കണിന് പുറമേ, പരിമിതമായ ആയുസ്സ് ഉള്ളതിനാൽ, ഒരു പുതുക്കൽ ടോക്കൺ നൽകുന്നു; ഘട്ടം 8-ൽ, ആക്സസ് ടോക്കൺ സാധുതയുള്ളതാണോ എന്ന് സെർവർ പരിശോധിക്കുന്നു (ആയുഷ്കാലത്തിന്റെ കാലഹരണപ്പെടൽ എന്ന അർത്ഥത്തിൽ), ഇതിനെ ആശ്രയിച്ച്, ഒന്നുകിൽ അത് ഉറവിടങ്ങളിലേക്ക് പ്രവേശനം നൽകുന്നു അല്ലെങ്കിൽ ആക്സസ് ടോക്കൺ അപ്ഡേറ്റ് ചെയ്യേണ്ടത് ആവശ്യമാണ് (ഇത് അവതരണത്തിൽ നൽകിയിരിക്കുന്നു. പുതുക്കിയ ടോക്കൺ).
  • റിസോഴ്‌സ് ഉടമയുടെ പാസ്‌വേഡ് ക്രെഡൻഷ്യലുകൾ ഫ്ലോ
ഈ ഫ്ലോയിൽ, റിസോഴ്സ് ഉടമ ക്ലയന്റിന് ഒരു ലോഗിൻ, പാസ്വേഡ് എന്നിവ നൽകുന്നു, അവൻ അവ സെർവറിലേക്ക് കൈമാറുകയും ഉറവിടങ്ങൾ ആക്സസ് ചെയ്യുന്നതിന് ഒരു ടോക്കൺ സ്വീകരിക്കുകയും ചെയ്യുന്നു. ഈ പ്രവർത്തന രീതി ഒരു പ്രോട്ടോക്കോൾ സൃഷ്ടിക്കുന്നതിനുള്ള ആശയത്തിന് ഒരു പരിധിവരെ വിരുദ്ധമാണെങ്കിലും, ഇത് സ്പെസിഫിക്കേഷനിൽ വിവരിച്ചിരിക്കുന്നു.
  • ക്ലയന്റ് ക്രെഡൻഷ്യൽ ഫ്ലോ
പ്രോട്ടോക്കോളിന്റെ ഈ പ്രവർത്തനരീതിയിൽ, ക്ലയന്റ് അതിന്റെ ഉപയോക്താവും പാസ്‌വേഡും കൈമാറിയതിന് ശേഷം സെർവർ ഒരു ആക്‌സസ് ടോക്കൺ നൽകുന്നു, അത് മുമ്പ് അംഗീകാര സെർവർ സജ്ജീകരിച്ചിരുന്നു (സ്‌പെസിഫിക്കേഷൻ എത്ര കൃത്യമായി എന്ന് വ്യക്തമാക്കുന്നില്ല). വാസ്തവത്തിൽ, ക്ലയന്റ് ഉടനടി അംഗീകാരത്തിനും പ്രാമാണീകരണത്തിനും വിധേയമാകുന്നു.

ക്ലയന്റിൽ നിന്നുള്ള സന്ദേശങ്ങൾ പ്രാമാണീകരിക്കുന്നതിന് OAuth രണ്ട് രീതികൾ പിന്തുണയ്ക്കുന്നു: HMAC -SHA1, RSA -SHA1 . ഒരു ഒപ്പ് ഇല്ലാതെ സന്ദേശങ്ങൾ അയയ്ക്കുന്നത് സാധ്യമാണ്, തുടർന്ന് സിഗ്നേച്ചർ ടൈപ്പ് ഫീൽഡിൽ "പ്ലെയിൻ ടെക്സ്റ്റ്" സൂചിപ്പിച്ചിരിക്കുന്നു. എന്നാൽ ഈ സാഹചര്യത്തിൽ, സ്പെസിഫിക്കേഷൻ അനുസരിച്ച്, ക്ലയന്റും സെർവറും തമ്മിലുള്ള ബന്ധം SSL അല്ലെങ്കിൽ TLS വഴി സ്ഥാപിക്കണം.

OAuth ഉപയോഗിക്കുന്ന പോർട്ടലുകൾ

ചർച്ച

2012 ജൂലൈയിൽ, OAuth 2.0 സ്റ്റാൻഡേർഡിന്റെ നിലവിലെ എഡിറ്ററായ എറാൻ ഹാമർ, പുതിയ സ്റ്റാൻഡേർഡിന്റെ മൂന്ന് വർഷത്തെ പ്രവർത്തനത്തിന് ശേഷം തന്റെ രാജി പ്രഖ്യാപിക്കുകയും സ്പെസിഫിക്കേഷനുകളിൽ നിന്ന് തന്റെ പേര് നീക്കം ചെയ്യാൻ ആവശ്യപ്പെടുകയും ചെയ്തു. തന്റെ വെബ്‌സൈറ്റിലാണ് അദ്ദേഹം തന്റെ കാഴ്ചപ്പാടുകളെ കുറിച്ച് പറഞ്ഞിരിക്കുന്നത്. പിന്നീട് അവതരണം നടത്തി. .

കുറിപ്പുകൾ

ഇതും കാണുക

ലിങ്കുകൾ


വിക്കിമീഡിയ ഫൗണ്ടേഷൻ. 2010.

VKontakte-ൽ ക്ഷുദ്ര സ്പാം വിതരണം ചെയ്യാൻ നിരവധി മാർഗങ്ങളുണ്ട്. എന്നാൽ കീടങ്ങൾ ഉറങ്ങുന്നില്ല; കൂടുതൽ കൂടുതൽ രസകരമായ ആശയങ്ങൾ അവരുടെ തലയിലേക്ക് വരുന്നു. അത് വളരെ ഉപകാരപ്രദമായി മാറി. ക്ഷുദ്രകരമായ സൈറ്റുകളെക്കുറിച്ചുള്ള മുന്നറിയിപ്പ് പേജ് മറികടക്കാൻ തട്ടിപ്പുകാർ ഇത് ഉപയോഗിക്കാൻ പഠിച്ചു.

ഒരു ദിവസം എന്റെ ചുവരിൽ ഇനിപ്പറയുന്ന സന്ദേശം പ്രത്യക്ഷപ്പെട്ടപ്പോൾ ഇതെല്ലാം ആരംഭിച്ചു:


ജിജ്ഞാസ കാരണം, ഞാൻ ലിങ്ക് പിന്തുടരുകയും മറ്റൊരു ഫിഷിംഗ് സൈറ്റിൽ എത്തിച്ചേരുകയും ചെയ്തു. എന്നാൽ ലിങ്ക് തന്നെ എനിക്ക് വിചിത്രമായി തോന്നി, അത് (ASCII ലെ പകുതി പ്രതീകങ്ങൾ):
vkontakte.ru/away.php ? വരെ=http%3A%2F%2FApi.vKontakte.Ru%2F%2Fo%2561u%2574%…

ഇവിടെയാണ് രസം തുടങ്ങുന്നത്...
നമുക്ക് രണ്ടാമത്തെ ലിങ്ക് ഭാഗങ്ങളിൽ നോക്കാം:

ഓരോ പാരാമീറ്ററും എന്താണ് അർത്ഥമാക്കുന്നത്:

  • client_id - അംഗീകാരം ആവശ്യമുള്ള ആപ്ലിക്കേഷന്റെ ഐഡി;
  • redirect_uri - ആക്സസ്_ടോക്കൺ അയയ്‌ക്കുന്ന വിലാസം (ഒരു റീഡയറക്‌ട് വഴി);
  • ഡിസ്പ്ലേ - അംഗീകാര വിൻഡോയുടെ തരം (പേജ്, പോപ്പ്അപ്പ്, ടച്ച്, വാപ്പ്).
യഥാർത്ഥത്തിൽ, redirect_uri എന്നതിൽ ഫിഷിംഗ് സൈറ്റിന്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു. ഡിസ്പ്ലേ പാരാമീറ്ററിൽ ഒരു പിശക് ഉള്ളതിനാൽ (അതിൽ മാലിന്യം “?390852” അടങ്ങിയിരിക്കുന്നു), അംഗീകാര വിൻഡോ പ്രദർശിപ്പിക്കില്ല, എന്നാൽ ഇനിപ്പറയുന്ന പാരാമീറ്ററുകളുള്ള ഒരു ഫിഷിംഗ് സൈറ്റിലേക്ക് ഉടൻ റീഡയറക്‌ട് ചെയ്‌തു: error=invalid_request&error_description=Invalid+display+passed

ക്ഷുദ്രകരമായ VKontakte സൈറ്റുകളുടെ കരിമ്പട്ടിക ഒഴിവാക്കുന്നതിനുള്ള മുഴുവൻ പോയിന്റും ഇതാണ്. api.vk.com-ലേക്കുള്ള പരിവർത്തനത്തെക്കുറിച്ചുള്ള ഒരു മുന്നറിയിപ്പ് മാത്രം ദൃശ്യമാകുന്നു. പരിവർത്തനത്തിന്റെ ഫലമായി, ഞങ്ങൾ നേരെ പോകുന്നത് ബ്ലാക്ക് ലിസ്റ്റിലുള്ള ഒരു ഫിഷിംഗ് സൈറ്റിലേക്കാണ്. നിങ്ങൾ ലിങ്ക് പിന്തുടരുമ്പോൾ vkontakte.ru/away.php?to=vgostivk.dyndns**:

ഇത് മാറിയതുപോലെ, അംഗീകാരം ആവശ്യമുള്ള ആപ്ലിക്കേഷൻ ഹാക്ക് ചെയ്ത ഉപയോക്താവിൽ തൂങ്ങിക്കിടക്കുന്നു:

ഫിഷിംഗ് സൈറ്റ് തന്നെ വളരെ രസകരമായി രൂപകൽപ്പന ചെയ്തിട്ടുണ്ട്. ഡിസൈൻ, പതിവുപോലെ, കോൺടാക്റ്റ്-സ്റ്റൈൽ ആയിരുന്നു, ലോഗിൻ ചെയ്യാൻ ആവശ്യപ്പെട്ടു. ക്രമരഹിതമായ ഒരു ഇമെയിലും പാസ്‌വേഡും ഉപയോഗിച്ച് ഞാൻ ലോഗിൻ ചെയ്തു, ഞാൻ വ്യാജം നന്നായി വിഴുങ്ങി. അടുത്തതായി സംഭവിച്ചത് കൂടുതൽ രസകരമായിരുന്നു; "പവൽ ഡുറോവ്" എന്നതിൽ നിന്നുള്ള വാർത്തകൾ പ്രധാന പേജിൽ പ്രത്യക്ഷപ്പെട്ടു:

“വ്യക്തിഗത കൗണ്ടർ സൃഷ്‌ടിക്കുക” ബട്ടണിൽ ക്ലിക്കുചെയ്‌ത ശേഷം, ഒരു മികച്ച പ്രോഗ്രസ് ബാർ പിന്തുടരുന്നു. തുടർന്ന് നിങ്ങളുടെ നമ്പർ സൂചിപ്പിച്ച് ഒരു SMS അയയ്ക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെട്ടു:

സിദ്ധാന്തത്തിൽ, വിജയകരമായ "സജീവമാക്കൽ" കഴിഞ്ഞാൽ അത് activ.php പേജിലേക്ക് റീഡയറക്‌ടുചെയ്യേണ്ടതായിരുന്നു, പക്ഷേ എനിക്ക് അവിടെയെത്താൻ കഴിഞ്ഞില്ല. ഒരു ഫിഷിംഗ് സൈറ്റിന്റെ JS സ്ക്രിപ്റ്റുകളിൽ നിന്നുള്ള ഉദ്ധരണികൾ:

...
എങ്കിൽ (req.status == 200) (
// സ്റ്റാറ്റസ് 200 ആണെങ്കിൽ (ശരി) - ഉപയോക്താവിന് ഒരു പ്രതികരണം നൽകുക
എങ്കിൽ (req.responseText == "ശരി" ) (
//statusElem.innerHTML = "എല്ലാം മുഴങ്ങുന്നു!";
get_activation();
}
എങ്കിൽ (req.responseText == "അല്ല" ) (statusElem.innerHTML = "അസാധുവായ ആക്റ്റിവേഷൻ കോഡ്";}
//statusElem.innerHTML = "സെർവർ പ്രതികരണം: "+req.responseText;
...
ഫംഗ്‌ഷൻ get_activation() (
പ്രമാണം .location="activ.php" ;
}

* ഈ സോഴ്സ് കോഡ് സോഴ്സ് കോഡ് ഹൈലൈറ്റർ ഉപയോഗിച്ച് ഹൈലൈറ്റ് ചെയ്തു.


താഴത്തെ വരി: മുന്നറിയിപ്പുകൾ മറികടക്കാനും ഉപയോക്താവിന്റെ പാസ്‌വേഡും ഇമെയിലും നേടാനും എസ്എംഎസ് (മിക്കവാറും സബ്‌സ്‌ക്രിപ്‌ഷൻ സിസ്റ്റം ഉപയോഗിച്ച്) അയയ്‌ക്കുന്നതിന് അവരെ സ്‌കാം ചെയ്യാൻ ശ്രമിക്കാനും വഞ്ചകർ OAuth 2.0 ഉപയോഗിക്കുന്നു.

അനുവദിക്കുന്ന ഒരു ജനപ്രിയ പ്രോട്ടോക്കോൾ സാമൂഹികസേവനങ്ങൾ പരസ്പരം സംയോജിപ്പിക്കുകയും വ്യക്തിഗത വിവരങ്ങൾ കൈമാറുന്നതിനുള്ള ഒരു സുരക്ഷിത മാർഗം നൽകുകയും ചെയ്യുന്നു. OAuth-ന് 2 സേവനങ്ങൾ ബന്ധിപ്പിക്കാൻ കഴിയും, അവയിൽ ഓരോന്നിനും അതിന്റേതായ ഉപയോക്തൃ അടിത്തറയുണ്ട് - ഈ സാഹചര്യത്തിൽ ഞാൻ അവയെ "സോഷ്യൽ" എന്ന് വിളിക്കുന്നു. നിങ്ങൾ OAuth-ൽ പ്രവർത്തിക്കാൻ തുടങ്ങുമ്പോൾ, പ്രോട്ടോക്കോൾ വളരെ സങ്കീർണ്ണവും അനാവശ്യവുമാണ് എന്നതാണ് ആദ്യത്തെ തോന്നൽ. ഈ ലേഖനത്തിൽ, മനുഷ്യ ഭാഷയിൽ OAuth-ന്റെ അടിസ്ഥാനകാര്യങ്ങൾ വിശദീകരിക്കാൻ ഞാൻ ശ്രമിക്കും.

ക്രോസ്-ഓതറൈസേഷൻ ഉദാഹരണം

നമുക്ക് 2005-ലേക്ക് തിരികെ പോകാം, ഞങ്ങൾ ഒരു സോഷ്യൽ നെറ്റ്‌വർക്ക് എഴുതുകയാണെന്ന് സങ്കൽപ്പിക്കുക. GMail വിലാസ പുസ്തകത്തിൽ നിന്ന് കോൺടാക്റ്റുകൾ ഇറക്കുമതി ചെയ്യുന്നതിനുള്ള ഒരു ഫോം ഇതിന് ഉണ്ട്. നിങ്ങളുടെ ജിമെയിൽ കോൺടാക്റ്റുകൾ ആക്സസ് ചെയ്യാൻ എന്താണ് വേണ്ടത്? തീർച്ചയായും, മെയിൽബോക്സിനുള്ള പ്രവേശനവും പാസ്വേഡും. എന്നാൽ ഞങ്ങളുടെ വെബ്‌സൈറ്റിൽ അവ രേഖപ്പെടുത്താൻ ഞങ്ങൾ നിങ്ങളോട് ആവശ്യപ്പെട്ടാൽ, ഉപയോക്താവ് എന്തെങ്കിലും കുഴപ്പമുണ്ടെന്ന് സംശയിക്കും. നൽകിയ പാസ്‌വേഡുകൾ സെർവറിൽ സേവ് ചെയ്യുന്നില്ല എന്നതിന്റെ ഉറപ്പ് എവിടെയാണ്? അതിനാൽ പാസ്‌വേഡ് നൽകണമെന്ന് ഞങ്ങൾ ആഗ്രഹിക്കുന്നു ജിമെയിൽ വെബ്സൈറ്റിൽ മാത്രം, അതിനുശേഷം GMail API വഴിയുള്ള കോൺടാക്‌റ്റുകളിലേക്കുള്ള ആക്‌സസ് ഞങ്ങളുടെ സോഷ്യൽ നെറ്റ്‌വർക്കിലേക്ക് (ഒരുപക്ഷേ താൽക്കാലികമായി) ലഭ്യമാക്കി. നിബന്ധനകൾ അംഗീകരിക്കാം.
  • ഉപഭോക്താവ്: ഉപഭോക്താവ്; ഒരു സോഷ്യൽ നെറ്റ്വർക്കിൽ കോൺടാക്റ്റുകൾ ഇറക്കുമതി ചെയ്യുന്നതിനുള്ള ഫോം പ്രോസസ്സ് ചെയ്യുന്നതിനുള്ള സ്ക്രിപ്റ്റ്.
  • സേവനദാതാവ്: ഡാറ്റ ദാതാവ്; ഉപഭോക്താവിന് താൽപ്പര്യമുള്ള വിലാസ പുസ്തക ഡാറ്റ അടങ്ങുന്ന ജിമെയിൽ.
  • ഉപയോക്താവ്: ഉപഭോക്താവിനും സേവന ദാതാവിനുമായി അക്കൗണ്ട് ഉള്ള ഒരു ഉപയോക്താവ്.
  • സംരക്ഷിത വിഭവം: വ്യക്തിപരമായ വിവരങ്ങള്; GMail-ലെ വിലാസ പുസ്തകത്തിൽ നിന്നുള്ള കോൺടാക്റ്റുകൾ (അതായത് സേവന ദാതാവിന്റെ ഉറവിടങ്ങൾ).
  • ദാതാവ് API: ഒരു GMail വിലാസ പുസ്തകത്തിൽ നിന്ന് കോൺടാക്റ്റുകൾ വീണ്ടെടുക്കാൻ ഏത് സ്ക്രിപ്റ്റിനെയും അനുവദിക്കുന്ന GMail API.
OAuth ടാസ്ക്- സേവന ദാതാവിന്റെ (GMail) സംരക്ഷിത ഡാറ്റ ഉപയോഗിച്ച് ഉപഭോക്തൃ സേവനത്തിൽ (ഒരു സോഷ്യൽ നെറ്റ്‌വർക്കിൽ) പ്രവർത്തിക്കാനുള്ള അവസരം ഉപയോക്താവിന് ഉണ്ടെന്ന് ഉറപ്പാക്കുക, സേവന ദാതാവിൽ മാത്രമായി ഈ ഡാറ്റയ്‌ക്കായി പാസ്‌വേഡ് നൽകുകയും ഉപഭോക്താവിൽ തുടരുകയും ചെയ്യുക. വെബ്സൈറ്റ്. അത്ര ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല, അല്ലേ?

OAuth OpenID-യിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു?

ഓപ്പൺ ഐഡിയെ "ഉപയോക്തൃ പ്രോട്ടോക്കോൾ" എന്ന നിലയിൽ OAuth പലപ്പോഴും "റോബോട്ട് പ്രോട്ടോക്കോൾ" എന്ന് വിളിക്കുന്നു. അവരെ ആശയക്കുഴപ്പത്തിലാക്കരുത്!
  1. ഓപ്പൺഐഡി ത്വരിതപ്പെടുത്തിയ രജിസ്ട്രേഷനുള്ള ഒരു പ്രോട്ടോക്കോൾ ആണ്.ഇന്റർനെറ്റിൽ മറ്റെവിടെയെങ്കിലും രജിസ്റ്റർ ചെയ്തിട്ടുണ്ടെങ്കിൽ പാസ്‌വേഡ് നൽകാതെ തന്നെ ഏത് സേവനത്തിലും അക്കൗണ്ട് നേടാൻ ഓപ്പൺഐഡി ഉപയോക്താവിനെ അനുവദിക്കുന്നു. (പിന്നെ നിങ്ങൾക്ക് ഒരു പാസ്‌വേഡ് നൽകാതെ തന്നെ സേവനത്തിലേക്ക് ലോഗിൻ ചെയ്യാൻ കഴിയും, "എവിടെയെങ്കിലും" അധികാരപ്പെടുത്തിയിരിക്കുന്നു.) ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് Yandex-ൽ ഒരു അക്കൗണ്ട് ഉണ്ടെങ്കിൽ, OpenID അംഗീകാരത്തെ പിന്തുണയ്ക്കുന്ന ഏത് സേവനത്തിലേക്കും "ലോഗിൻ" ചെയ്യാൻ നിങ്ങൾക്ക് അത് ഉപയോഗിക്കാം.
  2. മൂന്നാം കക്ഷി API-കളിലേക്കുള്ള അംഗീകൃത ആക്‌സസിനുള്ള ഒരു പ്രോട്ടോക്കോൾ ആണ് OAuth.ഉപയോക്താവ് മുന്നോട്ട് പോകുകയാണെങ്കിൽ, ഒരു മൂന്നാം കക്ഷി സേവന ദാതാവിന്റെ ഡാറ്റയിലേക്ക് പരിമിതമായ API ആക്‌സസ് നേടാൻ OAuth ഒരു ഉപഭോക്തൃ സ്‌ക്രിപ്‌റ്റിനെ അനുവദിക്കുന്നു. ആ. ഇത് API ആക്സസ് ചെയ്യാനുള്ള ഒരു മാർഗമാണ്.

പോലീസ് സാമ്യം

നിങ്ങൾ ക്രിമിനൽ ഇൻവെസ്റ്റിഗേഷൻ ഡിപ്പാർട്ട്‌മെന്റിലെ ഒരു ജീവനക്കാരനാണെന്ന് സങ്കൽപ്പിക്കുക, 1973 മുതൽ വെബ്‌മണി മോഷണക്കേസ് അവസാനിപ്പിക്കാൻ നോക്കുക. നിബന്ധനകൾ അംഗീകരിക്കാം:
  • OAuth ഉപഭോക്താവ്: ക്രിമിനൽ അന്വേഷണം.
  • ഉപയോക്താവ്: ക്രിമിനൽ ഇൻവെസ്റ്റിഗേഷൻ ഓഫീസർ.
  • സേവനദാതാവ്: ക്രൈം ആർക്കൈവിന്റെ കാർഡ് ഫയൽ.
  1. ഓപ്പൺഐഡി: ഒരു ക്രിമിനൽ ഇൻവെസ്റ്റിഗേഷൻ ഡിപ്പാർട്ട്‌മെന്റ് ജീവനക്കാരൻ (ഉപയോക്താവ്) കാർഡ് ഇൻഡക്‌സിലേക്ക് (സേവന ദാതാവ്) വരുന്നു, പ്രവേശന കവാടത്തിൽ ഓതറൈസേഷൻ അവതരിപ്പിക്കുകയും വിവരങ്ങൾ അന്വേഷിച്ച് സ്ഥലത്തുതന്നെ കാർഡുകളിലൂടെ അടുക്കുകയും ചെയ്യുന്നു.
  2. OAuth: ഒരു ക്രിമിനൽ ഇൻവെസ്റ്റിഗേഷൻ ഡിപ്പാർട്ട്‌മെന്റ് ജീവനക്കാരൻ (ഉപയോക്താവ്) ജോലിയിൽ നിന്ന് നേരിട്ട് (ഉപഭോക്താവ്) കാർഡ് സൂചികയെ (സേവന ദാതാവ്) വിളിക്കുന്നു. അവൻ തന്റെ പേര് റിപ്പോർട്ട് ചെയ്യുന്നു; അവൻ അംഗീകരിക്കപ്പെട്ടാൽ (അംഗീകാരം), 1973-ലെ (API കോൾ) എല്ലാ കുറ്റകൃത്യങ്ങളുടെയും ഒരു ലിസ്റ്റ് നൽകാൻ അദ്ദേഹം ആവശ്യപ്പെടുന്നു.
നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, OpenID, OAuth എന്നിവ വ്യത്യസ്ത കാര്യങ്ങളാണ്. ഓപ്പൺഐഡി ചില ഉറവിടങ്ങൾ സ്ഥലത്തുതന്നെ ആക്സസ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു API വഴി വിദൂര സേവനത്തിൽ നിന്ന് ചില വിവരങ്ങൾ വീണ്ടെടുക്കുന്നുവെന്ന് OAuth ഉറപ്പാക്കുന്നു.

ഈ ലേഖനത്തിന്റെ രൂപരേഖ

പ്രധാന ഭാഗത്തേക്ക് പോകുന്നതിന് മുമ്പ്, കൃത്യമായി എങ്ങനെ മുന്നോട്ട് പോകുമെന്ന് നോക്കാം.
  1. ക്രോസ്-ഓതറൈസേഷൻ "മാനുവലായി" നടപ്പിലാക്കുമ്പോൾ ഉണ്ടാകുന്ന പ്രശ്നങ്ങൾ നമുക്ക് പരിഗണിക്കാം.
  2. ഒരു "അപ്ലിക്കേഷൻ" എന്താണെന്നും ഒരു ഉപഭോക്താവ് ആരാണെന്നും നമുക്ക് സംസാരിക്കാം.
  3. നമുക്ക് ക്രിപ്റ്റോഗ്രാഫിയുടെ അടിസ്ഥാനകാര്യങ്ങളിൽ സ്പർശിക്കാം.
  4. ഈ ലേഖനത്തിൽ നമ്മൾ എഴുതുന്ന ഡെമോ ആപ്ലിക്കേഷനെ സൂചിപ്പിക്കാം.
  5. ഞങ്ങൾ പരീക്ഷണം നടത്തുന്ന ഒരു ടെസ്റ്റ് OAuth സെർവർ തീരുമാനിക്കാം.
  6. OAuth പ്രോട്ടോക്കോളിന്റെ എല്ലാ ഘട്ടങ്ങളിലൂടെയും പോയി സ്ക്രിപ്റ്റ് ഉറവിടങ്ങൾ നൽകാം.

സൈക്കിളുകളുടെ കണ്ടുപിടുത്തത്തെക്കുറിച്ച്

എന്തെങ്കിലും മനസ്സിലാക്കാനുള്ള ഒരു നല്ല മാർഗ്ഗം, വഴിയിൽ നിരത്തിയിരിക്കുന്ന എല്ലാ റേക്കുകളിലും ചവിട്ടി അത് സ്വയം ചെയ്യുക എന്നതാണ്. ഇപ്പോൾ ഞങ്ങൾ ചക്രം പുനർനിർമ്മിക്കും: ഉപഭോക്താവും സേവന ദാതാവും തമ്മിലുള്ള ആശയവിനിമയത്തിന്റെ പ്രശ്നം സ്റ്റാൻഡേർഡ് പ്രോട്ടോക്കോളുകളില്ലാതെ എങ്ങനെ പരിഹരിക്കുമെന്ന് നമുക്ക് സങ്കൽപ്പിക്കാൻ ശ്രമിക്കാം.

ആദ്യം, GMail-ൽ നിന്ന് കോൺടാക്റ്റുകൾ ഇറക്കുമതി ചെയ്യുന്നതിനുള്ള ഫോം തന്നെ എഴുതാം: അടുത്തതായി, ഒരു ഉപയോക്താവ് URI /auth.php-ലേക്ക് നാവിഗേറ്റ് ചെയ്യുമ്പോൾ, അയാൾക്ക് ഒരു അംഗീകാര ഫോം നൽകിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ ഞങ്ങൾ GMail ഡെവലപ്പർമാരോട് ആവശ്യപ്പെടും (ഞങ്ങളുടെ veloworld, GMail-ൽ PHP യിൽ എഴുതിയിരിക്കുന്നു). പാസ്‌വേഡ് വിജയകരമായി നൽകിയതിന് ശേഷം, റീറ്റ്പാത്ത് പാരാമീറ്ററിൽ URL വ്യക്തമാക്കിയിട്ടുള്ള സൈറ്റിലേക്ക് ഉപയോക്താവിനെ റീഡയറക്‌ട് ചെയ്യണം. കൂടാതെ, URL-ൽ ചില രഹസ്യ കീകൾ കൈമാറ്റം ചെയ്യേണ്ടതുണ്ട്, അത് ഇതിനകം തന്നെ GMail API ആക്സസ് ചെയ്യാൻ ഉപയോഗിക്കാം.

അതിനാൽ, പാസ്‌വേഡ് നൽകിയ ശേഷം, ഉപയോക്താവ് ഇനിപ്പറയുന്ന വിലാസത്തിൽ ഞങ്ങളുടെ സൈറ്റിലേക്ക് മടങ്ങും: കൂടാതെ സ്‌ക്രിപ്റ്റ് /import.php-ൽ നിന്ന് ഞങ്ങൾ GMail API-യിലേക്ക് തിരിയുകയും Y49xdN0Zo2B5v0RR കീ അതിലേക്ക് കടത്തി കോൺടാക്റ്റുകൾ ലോഡുചെയ്യുകയും ചെയ്യും: ശരി, നമുക്ക് ഇപ്പോൾ നോക്കാം. റേക്ക് എണ്ണുക (കാരണം ബമ്പുകൾ എണ്ണാൻ വൈകും).

ആദ്യ റേക്ക്: റെറ്റ്പാത്ത് റിട്ടേൺ വിലാസം മാറ്റിസ്ഥാപിക്കുന്നു

ശരി, തീർച്ചയായും, ആക്രമണകാരി ആദ്യം തന്റെ വെബ്‌സൈറ്റിൽ ഒരു ലിങ്ക് സ്ഥാപിക്കുകയും അതിൽ ക്ലിക്ക് ചെയ്യാൻ നിങ്ങളെ നിർബന്ധിക്കുകയും ചെയ്യുമെന്ന് നിങ്ങൾ ഊഹിച്ചു. തൽഫലമായി, GMail തിരികെ നൽകിയ രഹസ്യ കീ അവന് ലഭിക്കും, അതിനാൽ നിങ്ങളുടെ കോൺടാക്റ്റുകൾ:

രണ്ടാമത്തെ റേക്ക്: രഹസ്യ കീയിൽ "ഒളിക്കഥ"

ഞങ്ങൾ എങ്ങനെയെങ്കിലും retpath സംരക്ഷിച്ചുവെന്ന് പറയാം, അത് ഇപ്പോൾ ഞങ്ങളുടെ സൈറ്റിലേക്ക് മാത്രമേ ചൂണ്ടിക്കാണിക്കാൻ കഴിയൂ. എന്നാൽ രഹസ്യ പാരാമീറ്ററിലെ പ്രശ്നം അവശേഷിക്കുന്നു. രഹസ്യം പിന്നിൽ നിന്ന് ചാരപ്പണി ചെയ്യാനോ വൈഫൈ ട്രാഫിക് ശ്രവിച്ചുകൊണ്ട് തടയാനോ കഴിയും. അല്ലെങ്കിൽ ഒരു ദിവസം നിങ്ങളുടെ സൈറ്റിന് രഹസ്യ കീ "മോഷ്ടിക്കാൻ" അനുവദിക്കുന്ന ഒരു XSS ദുർബലത ഉണ്ടാകും. മൂല്യ രഹസ്യം ഉപയോഗിച്ച്, ഒരു ആക്രമണകാരിക്ക് നിങ്ങളുടെ വിലാസ പുസ്തകം വായിക്കാൻ കഴിയും. ഇതിനർത്ഥം രഹസ്യം തടസ്സപ്പെടുന്നതിൽ നിന്ന് സംരക്ഷിക്കപ്പെടേണ്ടതുണ്ടെന്നാണ് (അത് URL വഴി കൈമാറാൻ പാടില്ല).

റേക്ക് നമ്പർ മൂന്ന്: വളരെയധികം റീഡയറക്‌ടുകൾ

ഓരോ API കോളിനും വ്യത്യസ്‌തമായ രഹസ്യം ആവശ്യമാണെങ്കിൽ, കോളുകൾ ഉള്ളിടത്തോളം സേവന ദാതാവിന്റെ സൈറ്റിലേക്ക് ഞങ്ങൾ റീഡയറക്‌ടുകൾ സംഘടിപ്പിക്കേണ്ടതുണ്ട്. API യുടെ തീവ്രമായ ഉപയോഗത്തിലൂടെ, ഇത് വളരെ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നു, ഇത് തികച്ചും അസൗകര്യമാണ്...

റേക്ക് നമ്പർ നാല്: മോശം ഉപഭോക്തൃ തിരിച്ചറിയൽ

GMail, തീർച്ചയായും അതിന്റെ API ഉപയോഗിക്കുന്നത് ആരാണെന്ന് അറിയാൻ ആഗ്രഹിക്കുന്നു. ചില സൈറ്റുകളിലേക്ക് ആക്‌സസ് അനുവദിക്കുകയും മറ്റുള്ളവയിലേക്ക് ആക്‌സസ്സ് നിഷേധിക്കുകയും ചെയ്യുക... ഇതിനർത്ഥം കോൺടാക്റ്റ് ഇറക്കുമതി ഫോമിൽ ഒരു അഭ്യർത്ഥന സൃഷ്ടിക്കുമ്പോൾ, ഉപഭോക്താവ് (സൈറ്റ്) സേവന ദാതാവിന് (ജിമെയിൽ) "അവതരിപ്പിക്കണം" എന്നാണ്. ഞങ്ങളുടെ കാര്യത്തിൽ, ഈ പ്രവർത്തനം ഭാഗികമായി നിർവ്വഹിക്കുന്നത് retpath (അതിലെ സൈറ്റിന്റെ പേര്), എന്നാൽ ഈ രീതി സാർവത്രികമല്ല, കാരണം API രീതികൾ വിളിക്കുമ്പോൾ "അവതരണം" മെക്കാനിസവും സജീവമാക്കിയിരിക്കണം.

OAuth ഫൗണ്ടേഷൻ

ഇപ്പോഴും ധാരാളം "അണ്ടർവാട്ടർ റേക്കുകൾ" അവശേഷിക്കുന്നുവെന്നത് ശ്രദ്ധേയമാണ്. ഞാൻ അവ ഇവിടെ വിവരിക്കുന്നില്ല, കാരണം ഈ റേക്കുകൾ മരിയാന ട്രെഞ്ചിൽ (ആഴത്തിൽ, 10920 മീറ്റർ) കിടക്കുന്നു. കേടുപാടുകൾ വിവരിക്കാൻ ഒരു ഡസൻ പേജുകൾ വേണ്ടിവരും. അതിനാൽ എല്ലാ പ്രശ്നങ്ങളും ഇതിനകം പരിഹരിച്ച OAuth വിവരണത്തിലേക്ക് ഞാൻ പോകും.

ആപ്ലിക്കേഷൻ = ഉപഭോക്താവ് + API ആക്സസ്

OAuth-ൽ പ്രവർത്തിക്കുമ്പോൾ, ഉപഭോക്താവ് എന്ന പദം "സൈറ്റ്" എന്നതിന്റെ അർത്ഥത്തിൽ മാത്രം പരിമിതപ്പെടുത്തിയിട്ടില്ല എന്നത് പ്രധാനമാണ്. ഉപഭോക്താവ് എന്തോ ആണ് അപേക്ഷ, അത് എവിടെയാണ് സ്ഥിതിചെയ്യുന്നത് എന്നത് അത്ര പ്രധാനമല്ല. യഥാർത്ഥ ജീവിതത്തിൽ നിന്നുള്ള ഉപഭോക്താക്കളുടെ ഉദാഹരണങ്ങൾ: എന്നാൽ OAuth-ൽ നിന്ന് മാത്രം നിങ്ങൾക്ക് കുഴപ്പമുണ്ടാക്കാൻ കഴിയില്ല. തീർച്ചയായും, OAuth നൽകുന്നത് ഒരു വിദൂര സേവനത്തിലേക്ക് (സേവന ദാതാവ്) ലോഗിൻ ചെയ്യാനും API-ലേക്ക് അംഗീകൃത അഭ്യർത്ഥനകൾ നടത്താനുമുള്ള കഴിവാണ്. ഈ API എങ്ങനെയാണ് ഘടനാപരമായിരിക്കുന്നത് എന്നത് പ്രശ്നമല്ല: ഇത് ശുദ്ധമായ SOAP, ഒരു REST സമീപനം മുതലായവ ആകാം. പ്രധാന കാര്യം, ഓരോ API രീതിയും OAuth പ്രോട്ടോക്കോൾ അനുസരിച്ച് പാസ്സാക്കിയ ഇൻപുട്ട് പ്രത്യേക പാരാമീറ്ററുകളായി എടുക്കുന്നു എന്നതാണ്.

ടോക്കൺ = കീ + രഹസ്യം

OAuth-ന്റെ തത്ത്വങ്ങളിലൊന്ന് പറയുന്നത്, അഭ്യർത്ഥനകളിൽ സ്വകാര്യ കീകളൊന്നും പൊതുവായി കൈമാറാൻ പാടില്ല എന്നാണ് (മുകളിലുള്ള ഉദാഹരണത്തിൽ ഞങ്ങൾ എന്തുകൊണ്ടെന്ന് പരിശോധിച്ചു). അതിനാൽ, ടോക്കൺ എന്ന ആശയത്തിലാണ് പ്രോട്ടോക്കോൾ പ്രവർത്തിക്കുന്നത്. ലോഗിൻ + പാസ്‌വേഡ് ജോഡിയുമായി ടോക്കൺ വളരെ സാമ്യമുള്ളതാണ്: ലോഗിൻ തുറന്ന വിവരമാണ്, കൂടാതെ പാസ്‌വേഡ് അയയ്ക്കുന്നതും സ്വീകരിക്കുന്നതുമായ കക്ഷികൾക്ക് മാത്രമേ അറിയൂ. OAuth പദങ്ങളിൽ, ഒരു ലോഗിൻ അനലോഗിനെ കീ എന്നും ഒരു പാസ്‌വേഡിന്റെ അനലോഗിനെ രഹസ്യം എന്നും വിളിക്കുന്നു. രഹസ്യം അയക്കുന്ന വ്യക്തിക്കും സ്വീകർത്താവിനും മാത്രം അറിയാവുന്ന സാഹചര്യത്തെ, മറ്റാരും അറിയാത്ത സാഹചര്യത്തെ പങ്കിട്ട രഹസ്യം എന്ന് വിളിക്കുന്നു.

അതിനാൽ, ഉപഭോക്താവും ദാതാവും ഏതെങ്കിലും വിധത്തിൽ പങ്കിട്ട രഹസ്യം അംഗീകരിക്കുകയാണെങ്കിൽ, ആ കീകൾ തടസ്സപ്പെടുമെന്ന ഭയമില്ലാതെ അവർക്ക് URL-ലെ അനുബന്ധ കീകൾ പരസ്യമായി കൈമാറാൻ കഴിയും. എന്നാൽ കീകൾ ഉപയോഗിച്ച് URL-കൾ വ്യാജത്തിൽ നിന്ന് എങ്ങനെ സംരക്ഷിക്കാം?

സന്ദേശം = പ്രമാണം + ഡിജിറ്റൽ സിഗ്നേച്ചർ

"ഡിജിറ്റൽ സിഗ്നേച്ചർ" ഭയപ്പെടുത്തുന്നതായി തോന്നുന്നു, പക്ഷേ വാസ്തവത്തിൽ ഇത് വളരെ വ്യക്തമായ ഒരു കാര്യമാണ്. പേന ഉപയോഗിച്ച് നിങ്ങൾ ഒരു പ്രമാണത്തിൽ ഒപ്പിടുമ്പോൾ, ആ പ്രമാണം മറ്റാരോ എഴുതിയതല്ല, നിങ്ങളാണ് എഴുതിയതെന്ന് നിങ്ങൾ സാക്ഷ്യപ്പെടുത്തുന്നു. നിങ്ങളുടെ ഒപ്പ്, അത് പോലെ, പ്രമാണത്തിൽ "ചേർത്തു" ഒപ്പം "ഒരു സെറ്റിൽ" അതിനൊപ്പം പോകുന്നു.

അതുപോലെ, ഡാറ്റ സൃഷ്‌ടിച്ച വ്യക്തി മറ്റൊരാളായി ആൾമാറാട്ടം നടത്തുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ ഡാറ്റയുടെ ഒരു ബ്ലോക്കിലേക്ക് ഒരു ഡിജിറ്റൽ സിഗ്നേച്ചർ ചേർക്കുന്നു. ഒരു ഡിജിറ്റൽ സിഗ്നേച്ചർ ഒരു പ്രമാണത്തെ എൻക്രിപ്റ്റ് ചെയ്യുന്നില്ല, അത് അതിന്റെ ആധികാരികത ഉറപ്പുനൽകുന്നു!സ്വീകർത്താവിനും അയച്ചയാൾക്കും അറിയാവുന്ന, എന്നാൽ മറ്റാർക്കും അറിയാവുന്ന അതേ പങ്കിട്ട രഹസ്യം, ഒപ്പിടാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു? ഞങ്ങളുടെ $sharedSecret = 529AeGWg അനുവദിക്കുക, ഞങ്ങൾ അത് സ്വീകരിക്കുന്ന കക്ഷിയുടെ ചെവിയിൽ മന്ത്രിച്ചു. "എന്റെ ഫോൺ 1234567" എന്ന സന്ദേശം അയയ്‌ക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു, ആക്രമണകാരിയുടെ കൈകടത്തലിനെതിരെ ഉറപ്പുനൽകുന്ന പരിരക്ഷയുണ്ട്.

  1. ഉപഭോക്താവ് സന്ദേശത്തിലേക്ക് ഒരു ഡിജിറ്റൽ സിഗ്നേച്ചർ ചേർക്കുന്നു, പൊതുവെ - $transfer = $message . "-" . md5($message. $sharedSecret); // $transfer = "എന്റെ ഫോൺ 1234567 ആണ്" . "-" . md5("എന്റെ ഫോൺ 1234567" . "529AeGWg")
  2. സേവന ദാതാവ് ഡാറ്റ എടുക്കുന്നു, അതിനെ 2 ഭാഗങ്ങളായി തിരിച്ച് - $ സന്ദേശം, $ ഒപ്പ് - കൂടാതെ അതേ പ്രവർത്തനം തന്നെ ചെയ്യുന്നു: $signatureToMatch = md5($message . $sharedSecret); // $signatureToMatch = md5("എന്റെ ഫോൺ 1234567 ആണ്" . "529AeGWg"); അപ്പോൾ ലഭിക്കുന്ന $signatureToMatch മൂല്യം ലഭിച്ച $സിഗ്നേച്ചർ ഡാറ്റയിൽ ഉണ്ടായിരുന്നതുമായി താരതമ്യം ചെയ്യുകയും മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ വ്യാജം റിപ്പോർട്ട് ചെയ്യുകയും ചെയ്യുക മാത്രമാണ് അവശേഷിക്കുന്നത്.

ഉദാഹരണമായി ഒരു ലളിതമായ ആപ്ലിക്കേഷൻ ഉപയോഗിച്ച് OAuth എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിന്റെ പ്രദർശനം

OAuth-ന്റെ യഥാർത്ഥ അനുഭവം ലഭിക്കാൻ, ഞങ്ങൾക്ക് രണ്ട് കാര്യങ്ങൾ ആവശ്യമാണ്:
  1. പ്രോട്ടോക്കോളിന്റെ ക്ലയന്റ് ഭാഗം നടപ്പിലാക്കുന്ന ഒരു സ്ക്രിപ്റ്റ്. ഞാൻ ഇത്രയും ചെറിയ PHP സ്ക്രിപ്റ്റ് (സിപ്പ് ആർക്കൈവിലേക്കുള്ള ലിങ്ക്) എഴുതി. PHP സൈറ്റുകളിലേക്ക് തിരുകാൻ കഴിയുന്ന ഒരു വിജറ്റാണിത്.
  2. ഞങ്ങൾക്ക് പരീക്ഷണം നടത്താൻ കഴിയുന്ന ഒരു ടെസ്റ്റ് OAuth സെർവർ. ഈ ആവശ്യത്തിനായി, RuTvit ഉപയോഗിക്കുന്നത് സൗകര്യപ്രദമാണ്: ഒരു പേജ് ഉണ്ട് http://rutvit.ru/apps/new, ഇത് 30 സെക്കൻഡിനുള്ളിൽ ഒരു ടെസ്റ്റ് ആപ്ലിക്കേഷൻ ചേർക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. (വേണം, നിങ്ങൾ ഫോമിൽ റിട്ടേൺ URL വ്യക്തമാക്കേണ്ടതില്ല - ഞങ്ങൾ ഇപ്പോഴും അത് ടെസ്റ്റ് സ്ക്രിപ്റ്റിൽ നിന്ന് പാസാക്കുന്നു.)
ഡെമോ സ്ക്രിപ്റ്റ് കോഡ് നോക്കുന്നതിലൂടെയും ലേഖനത്തിൽ ചുവടെയുള്ള വിശദീകരണങ്ങൾ വായിക്കുന്നതിലൂടെയും നിങ്ങൾക്ക് പ്രോട്ടോക്കോളിന്റെ വിശദാംശങ്ങൾ മനസ്സിലാക്കാൻ കഴിയും.

നിങ്ങൾക്ക് ഈ വിജറ്റ് ഏത് പിഎച്ച്പി വെബ്‌സൈറ്റിലേക്കും അതിന്റെ കോഡ് പകർത്തി ലേഔട്ട് ക്രമീകരിച്ചുകൊണ്ട് ചേർക്കാം. നിർദ്ദിഷ്‌ട ഹാഷ് ടാഗ് ഉപയോഗിച്ച് ടാഗ് ചെയ്‌ത RuTvit സേവനത്തിൽ നിന്നുള്ള എല്ലാ ട്വീറ്റുകളും പ്രദർശിപ്പിക്കും, കൂടാതെ പുതിയ ട്വീറ്റുകൾ ചേർക്കാനും സാധിക്കും (ഇവിടെയാണ് OAuth പ്രവർത്തിക്കുന്നത്). വിജറ്റ് RuTvit-ന്റെ API, OAuth അംഗീകാരം ഉപയോഗിക്കുന്നു, അത് Twitter API സ്റ്റാൻഡേർഡുമായി ഒത്തുപോകുന്നു. നിങ്ങളുടെ ടെസ്റ്റ് സെർവറിൽ ഈ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാം. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ മൂന്ന് ഘട്ടങ്ങൾ ചെയ്യേണ്ടതുണ്ട്:

  1. സ്‌ക്രിപ്റ്റ് കോഡ് ഡൗൺലോഡ് ചെയ്‌ത് വെബ് സെർവറിലെ ഏതെങ്കിലും സൗകര്യപ്രദമായ ഡയറക്‌ടറിയിലേക്ക് വിന്യസിക്കുക.
  2. OAuth സെർവറിൽ നിങ്ങളുടെ പുതിയ ടെസ്റ്റ് ആപ്ലിക്കേഷൻ രജിസ്റ്റർ ചെയ്യുക.
  3. ആപ്ലിക്കേഷൻ രജിസ്റ്റർ ചെയ്ത ശേഷം, സ്ക്രിപ്റ്റിലെ OA_CONSUMER_KEY, OA_CONSUMER_SECRET പാരാമീറ്ററുകൾ സെർവറിൽ നിന്ന് ലഭിച്ച മൂല്യങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക.

അപേക്ഷ രജിസ്ട്രേഷനും ക്രമീകരണങ്ങളും

ആപ്ലിക്കേഷനുകൾ എവിടെ നിന്നാണ് വരുന്നതെന്നും സേവന ദാതാവ് അവയെക്കുറിച്ച് എങ്ങനെ പഠിക്കുന്നുവെന്നും നമുക്ക് സംസാരിക്കാം. എല്ലാം വളരെ ലളിതമാണ്: സേവന ദാതാവിന് ആർക്കും ഉപയോഗിക്കാവുന്ന ഒരു പ്രത്യേക അപേക്ഷ രജിസ്ട്രേഷൻ ഫോം ഉണ്ട്. അത്തരമൊരു ഫോമിന്റെ ഒരു ഉദാഹരണം ഇതാ:


നിങ്ങളുടെ അപേക്ഷ രജിസ്റ്റർ ചെയ്ത ശേഷം, OAuth-ൽ പ്രവർത്തിക്കാൻ ആവശ്യമായ 5 പാരാമീറ്ററുകൾ നിങ്ങൾക്ക് നൽകും. അവ എങ്ങനെയായിരിക്കാം എന്നത് ഇതാ:


ഇവിടെ, ഉപഭോക്തൃ കീയും ഉപഭോക്തൃ രഹസ്യവും നിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ ഒരു തരം "ലോഗിൻ + പാസ്‌വേഡ്" ആണ് (ടോക്കണുകളെക്കുറിച്ചുള്ള മുകളിൽ പറഞ്ഞ സംഭാഷണം ഓർക്കുക? ഇത് അവയിലൊന്ന് മാത്രമാണ്). ഉപഭോക്തൃ രഹസ്യം ഒരു പങ്കിട്ട രഹസ്യമാണെന്ന് ഞാൻ നിങ്ങളെ ഓർമ്മിപ്പിക്കട്ടെ, അത് അയച്ചയാൾക്കും സ്വീകർത്താവിനും മാത്രമേ അറിയൂ, എന്നാൽ മറ്റാർക്കും അല്ല. ശേഷിക്കുന്ന 3 മൂല്യങ്ങൾ സേവന URL-കൾ വ്യക്തമാക്കുന്നു, അതിന്റെ അർത്ഥം ഞങ്ങൾ ഇപ്പോൾ പരിഗണിക്കും.

OAuth = അഭ്യർത്ഥന ടോക്കൺ ലഭ്യമാക്കുക + അംഗീകാരത്തിലേക്ക് റീഡയറക്‌ട് ചെയ്യുക + ആക്‌സസ് ടോക്കൺ ലഭ്യമാക്കുക + കോൾ API

ജിമെയിലുമായുള്ള ഉദാഹരണത്തിൽ, ഞങ്ങൾ 2 തരം റിമോട്ട് കോളുകൾ ഉപയോഗിച്ചു: a) ബ്രൗസറിലൂടെ റീഡയറക്‌ട് ചെയ്യുക; b) സ്ക്രിപ്റ്റിനുള്ളിൽ നിന്ന് API ആക്സസ് ചെയ്യുന്നു.

കൂടുതൽ വെല്ലുവിളികൾ ഉണ്ടാകണമെന്ന് സൂചിപ്പിക്കുന്ന നിരവധി സുരക്ഷാ പ്രശ്‌നങ്ങൾ ഞങ്ങൾ കണ്ടെത്തി. OAuth-ൽ സംഭവിക്കുന്നത് ഇതാണ്: ടോക്കണുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്ന ഉപഭോക്തൃ സ്‌ക്രിപ്റ്റിൽ നിന്ന് ദാതാവിലേക്ക് അധിക ഇന്റർമീഡിയറ്റ് അഭ്യർത്ഥനകൾ ചേർക്കുന്നു. നമുക്ക് അവരെ നോക്കാം.

  1. ഫോം സമർപ്പിക്കൽ പ്രോസസ്സ് ചെയ്യുന്നു.ഇത് OAuth-ന്റെ ഭാഗമല്ല, ഞങ്ങളുടെ ആപ്ലിക്കേഷന്റെ ഭാഗമാണ്. API പ്രൊവൈഡർ ആക്സസ് ചെയ്യുന്നതിന് മുമ്പ്, ഈ പ്രവർത്തനത്തിനായി ഉപയോക്താവിൽ നിന്ന് ഞങ്ങൾക്ക് ഒരു വർക്ക് ഓർഡർ ലഭിക്കണം. അത്തരമൊരു "ഓർഡറിന്റെ" ഒരു ഉദാഹരണം ഇതാ:
  2. അഭ്യർത്ഥന ടോക്കൺ ലഭ്യമാക്കുക (ആന്തരിക അഭ്യർത്ഥന).
    • ഉപഭോക്തൃ സ്ക്രിപ്റ്റ് ആക്സസ് ചെയ്യുന്നു ടോക്കൺ URL അഭ്യർത്ഥിക്കുകദാതാവ്: ഉദാഹരണത്തിന്, api.rutvit.ru/oauth/request_token. അഭ്യർത്ഥനയിൽ ഉപഭോക്തൃ കീ അടങ്ങിയിരിക്കുന്നു - "അപ്ലിക്കേഷൻ ലോഗിൻ", കൂടാതെ അഭ്യർത്ഥന തന്നെ ഉപഭോക്തൃ രഹസ്യം ഉപയോഗിച്ച് ഒപ്പിട്ടിരിക്കുന്നു - "അപ്ലിക്കേഷൻ പാസ്‌വേഡ്", അത് വ്യാജത്തിൽ നിന്ന് സംരക്ഷിക്കുന്നു.
    • പ്രതികരണമായി, ദാതാവ് അഭ്യർത്ഥന ടോക്കൺ എന്ന് വിളിക്കുന്ന "മാലിന്യങ്ങൾ നിറഞ്ഞ" ടോക്കൺ സൃഷ്ടിക്കുകയും തിരികെ നൽകുകയും ചെയ്യുന്നു. ഞങ്ങൾക്ക് ഇത് പിന്നീട് ആവശ്യമായി വരും, അതിനാൽ ഞങ്ങൾ അത് എവിടെയെങ്കിലും സൂക്ഷിക്കണം - ഉദാഹരണത്തിന്, $S_REQUEST_TOK സെഷൻ വേരിയബിളിൽ.
  3. ഓതറൈസേഷനിലേക്ക് റീഡയറക്‌ട് ചെയ്യുക (ബ്രൗസറിലെ റീഡയറക്‌ട് വഴി).ഇപ്പോൾ ഞങ്ങളുടെ അപ്ലിക്കേഷന് ഒരു അദ്വിതീയ അഭ്യർത്ഥന ടോക്കൺ ഉണ്ട്. ഈ ടോക്കൺ ഉപയോഗിക്കുന്നതിന് ഉപയോക്താവിൽ നിന്ന് അനുമതി നേടേണ്ടതുണ്ട്, അതായത്. അവനോട് ചോദിക്കൂ അഭ്യർത്ഥന ടോക്കൺ അംഗീകരിക്കുക.
    • ഉപഭോക്താവ് ബ്രൗസറിനെ പ്രത്യേകമായ ഒന്നിലേക്ക് റീഡയറക്‌ട് ചെയ്യുന്നു URL അംഗീകരിക്കുകദാതാവ്: ഉദാഹരണത്തിന്, api.rutvit.ru/oauth/authorize. അഭ്യർത്ഥന ടോക്കൺ കീ പാരാമീറ്ററുകളിൽ കൈമാറുന്നു.
    • ദാതാവ് അതിന്റെ ഉപയോക്താവിനായി ഒരു അംഗീകാര ഫോം പ്രദർശിപ്പിക്കുകയും, അയാൾക്ക് അംഗീകാരമുണ്ടെങ്കിൽ, ബ്രൗസർ തിരികെ റീഡയറക്ട് ചെയ്യുകയും ചെയ്യുന്നു. കൃത്യമായി എവിടെ? ഞങ്ങൾ ഇത് oauth_callback പാരാമീറ്ററിൽ സൂചിപ്പിക്കുന്നു.
  4. ആക്സസ് ടോക്കൺ ലഭ്യമാക്കുക (ആന്തരിക അഭ്യർത്ഥന).അതിനാൽ, റീഡയറക്‌ടുകളുടെ ഒരു പരമ്പരയ്ക്ക് ശേഷം ബ്രൗസർ ഞങ്ങളുടെ അപ്ലിക്കേഷനിലേക്ക് മടങ്ങി. ദാതാവിന്റെ അംഗീകാരം വിജയിച്ചു, അഭ്യർത്ഥന ടോക്കൺ പ്രവർത്തിക്കാൻ അനുവദിച്ചിരിക്കുന്നു എന്നാണ് ഇതിനർത്ഥം. എന്നിരുന്നാലും, സുരക്ഷയ്ക്കായി OAuth-ൽ, ഓരോ ടോക്കണിനും അതിന്റേതായ, കർശനമായി പരിമിതമായ ഉദ്ദേശ്യമുണ്ട്. ഉദാഹരണത്തിന്, അഭ്യർത്ഥന ടോക്കൺ ഉപയോക്താവിൽ നിന്ന് സ്ഥിരീകരണം സ്വീകരിക്കുന്നതിന് മാത്രമാണ് ഉപയോഗിക്കുന്നത്, മറ്റൊന്നും ഇല്ല. ഉറവിടങ്ങൾ ആക്‌സസ് ചെയ്യുന്നതിന്, ഞങ്ങൾക്ക് ഒരു പുതിയ ടോക്കൺ ലഭിക്കേണ്ടതുണ്ട് - ആക്‌സസ് ടോക്കൺ - അല്ലെങ്കിൽ, അവർ പറയുന്നതുപോലെ, "ആക്സസ് ടോക്കണിനായുള്ള അഭ്യർത്ഥന ടോക്കൺ".
    • ഉപഭോക്താവ് സൂചിപ്പിക്കുന്നു ടോക്കൺ URL ആക്സസ് ചെയ്യുക- ഉദാഹരണത്തിന്, api.rutvit.ru/oauth/access_token - കൂടാതെ തന്റെ കൈവശമുള്ള അഭ്യർത്ഥന ടോക്കണിന് പകരം ഒരു ആക്‌സസ് ടോക്കൺ നൽകാൻ ആവശ്യപ്പെടുന്നു. അഭ്യർത്ഥന ടോക്കൺ രഹസ്യത്തെ അടിസ്ഥാനമാക്കി ഒരു ഡിജിറ്റൽ സിഗ്നേച്ചർ ഉപയോഗിച്ചാണ് അഭ്യർത്ഥന ഒപ്പിട്ടിരിക്കുന്നത്.
    • ദാതാവ് മാലിന്യം നിറഞ്ഞ ഒരു ആക്‌സസ് ടോക്കൺ സൃഷ്‌ടിക്കുകയും തിരികെ നൽകുകയും ചെയ്യുന്നു. ഈ ആക്‌സസ് ടോക്കൺ API ആക്‌സസ് ചെയ്യാൻ അനുവദിച്ചിട്ടുണ്ടെന്നും അതിന്റെ ടേബിളുകളിൽ ഇത് കുറിക്കുന്നു. ഭാവിയിൽ API ഉപയോഗിക്കാൻ പോകുകയാണെങ്കിൽ ഞങ്ങളുടെ ആപ്ലിക്കേഷൻ ആക്സസ് ടോക്കൺ നിലനിർത്തണം.
  5. കോൾ API (ആന്തരിക അഭ്യർത്ഥന).ശരി, ഇപ്പോൾ ഞങ്ങൾക്ക് ഒരു ആക്‌സസ് ടോക്കൺ ഉണ്ട്, API രീതികൾ വിളിക്കുമ്പോൾ അതിന്റെ കീ കൈമാറാം.
    • ദാതാവിന്റെ API-ലേക്ക് ഉപഭോക്താവ് ഒരു അഭ്യർത്ഥന സൃഷ്ടിക്കുന്നു (ഉദാഹരണത്തിന്, REST പ്രത്യയശാസ്ത്രം അനുസരിച്ച് ഒരു POST അഭ്യർത്ഥന ഉപയോഗിക്കുന്നു). അഭ്യർത്ഥനയിൽ ആക്സസ് ടോക്കൺ കീ അടങ്ങിയിരിക്കുന്നു, ഈ ടോക്കണിന്റെ പങ്കിട്ട രഹസ്യം ഉപയോഗിച്ചാണ് ഇത് ഒപ്പിട്ടിരിക്കുന്നത്.
    • ദാതാവ് API കോൾ പ്രോസസ്സ് ചെയ്യുകയും അപ്ലിക്കേഷനിലേക്ക് ഡാറ്റ തിരികെ നൽകുകയും ചെയ്യുന്നു.

സ്ക്രിപ്റ്റിന്റെ അവസാനം: വിജറ്റ് ഔട്ട്പുട്ട്

വിശദമായ വിശദീകരണങ്ങളില്ലാതെ സ്ക്രിപ്റ്റിന്റെ അവസാനം വ്യക്തമായിരിക്കണം.
ലിസ്റ്റിംഗ് 14: സ്ക്രിപ്റ്റിന്റെ അവസാനം: വിജറ്റ് ഔട്ട്പുട്ട്
// എൻഡ് കേസ് )) // ലഭ്യമായ എല്ലാ ട്വീറ്റുകളും നേടുക. $text = file_get_contents("http://api.rutvit.ru/search.xml?rpp=5&q=" . urlencode("#" . TAG)); $TWEETS = പുതിയ SimpleXMLElement($text); // റീകോഡിംഗും ഉദ്ധരണിയും ഉള്ള ഒരു സന്ദേശം പ്രദർശിപ്പിക്കുന്നതിനുള്ള കുറുക്കുവഴി. ഫംഗ്‌ഷൻ e($text, $quote = 1) ($text = iconv("utf-8", ENCODING, $text); echo $quote? htmlspecialchars($text) : $text; ?>
$ട്വീറ്റ് ആയി സ്റ്റാറ്റസ് (?>
user->screen_name)?>: text_formatted, 0)?>
?action=form_is_sent" style="margin: 1em 0 0 0">

OAuth-ലെ ഉപയോഗപ്രദമായ ലിങ്കുകൾ

  • രുത്വിത്
ടാഗ് ചേർക്കുക

തൽഫലമായി, AdWords API ഉപയോഗിക്കുന്ന ഒരു ക്ലയന്റ് അപ്ലിക്കേഷന് ഉപയോക്താവിന്റെ ഇമെയിൽ വിലാസവും പാസ്‌വേഡും ഇല്ലാതെ AdWords അക്കൗണ്ട് ആക്‌സസ് ചെയ്യാൻ കഴിയും.

OAuth2 ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കുന്നു

OAuth2 ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കാൻ, ചുവടെയുള്ള ഘട്ടങ്ങൾ പാലിക്കുക.

ആപ്ലിക്കേഷൻ തരം നിർവചിക്കുന്നു

ആദ്യം, നിങ്ങൾ നിർണ്ണയിക്കേണ്ടതുണ്ട് ആപ്ലിക്കേഷൻ തരം, നിങ്ങൾ സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്നത്. AdWords API-ൽ രണ്ട് തരത്തിലുള്ള ആപ്ലിക്കേഷനുകൾ ഉണ്ട്:

  • ഇൻസ്റ്റാൾ ചെയ്യാവുന്ന ആപ്ലിക്കേഷൻ(ശുപാർശ ചെയ്ത);
  • വെബ് ആപ്ലിക്കേഷൻ.

നിങ്ങൾക്ക് ആവശ്യമുള്ള ആപ്ലിക്കേഷന്റെ തരം നിർണ്ണയിക്കാൻ ചുവടെയുള്ള പട്ടിക ഉപയോഗിക്കുക.

എന്താണ് തിരഞ്ഞെടുക്കേണ്ടത് സാഹചര്യം
ഇൻസ്റ്റാൾ ചെയ്യാവുന്ന ആപ്ലിക്കേഷൻ(ശുപാർശ ചെയ്ത)
  • ഒരു ഉയർന്ന തലത്തിലുള്ള മാനേജർ അക്കൗണ്ട് ഉപയോഗിച്ച് നിങ്ങളുടെ എല്ലാ AdWords അക്കൗണ്ടുകളും നിങ്ങൾ നിയന്ത്രിക്കുന്നു.
  • നിങ്ങൾ ഇപ്പോൾ ആരംഭിക്കുകയാണോ അതോ വേഗത്തിൽ ആരംഭിക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ?
  • ഒന്നിലധികം ഉപയോക്താക്കളുള്ള ഒരു കൂട്ടം AdWords അക്കൗണ്ടുകളിൽ നിങ്ങളുടെ ആപ്ലിക്കേഷൻ പ്രവർത്തിക്കും.
വെബ് ആപ്ലിക്കേഷൻ
  • വ്യത്യസ്‌ത ഉപയോക്താക്കൾക്ക് നിങ്ങളുടെ AdWords അക്കൗണ്ട് ഡാറ്റയിലേക്ക് വ്യത്യസ്ത ആക്‌സസ് അവകാശങ്ങൾ നൽകുന്നതിന് നിങ്ങൾ പ്രാമാണീകരണം ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നു.
  • നിങ്ങൾ ഒന്നിലധികം സെറ്റ് ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്, ഉദാഹരണത്തിന് മൂന്നാം കക്ഷി അക്കൗണ്ടുകൾ നിയന്ത്രിക്കുന്നതിന്.
  • ഇൻസ്റ്റാൾ ചെയ്ത ആപ്ലിക്കേഷനുകളിൽ പിന്തുണയ്‌ക്കാത്ത കോൾബാക്ക് URL-കൾ നിങ്ങളുടെ അപ്ലിക്കേഷന് ആവശ്യമാണ്.
ശ്രദ്ധ!നിങ്ങൾ ഒരു വെബ് ആപ്ലിക്കേഷൻ വികസിപ്പിച്ചെടുക്കുകയാണെങ്കിൽപ്പോലും, ഏത് ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യണമെന്ന് നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം. ടോക്കൺ നൽകിയതിന് ശേഷം ഒരു കോൾബാക്ക് നടത്തേണ്ടതുണ്ടോ എന്നതാണ് പ്രധാന വ്യത്യാസം. ഉദാഹരണത്തിന്, നിങ്ങളുടെ എല്ലാ AdWords അക്കൗണ്ടുകളും മാനേജുചെയ്യാൻ നിങ്ങൾ ഒരു ഉയർന്ന തലത്തിലുള്ള മാനേജർ അക്കൗണ്ട് ഉപയോഗിക്കുകയാണെങ്കിൽ, ക്ലയന്റ് ആപ്ലിക്കേഷൻ ഇൻറർനെറ്റിലൂടെ ആക്‌സസ് ചെയ്യാവുന്നതാണെങ്കിലും നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്ത ആപ്ലിക്കേഷൻ രജിസ്റ്റർ ചെയ്തിരിക്കണം. കുറിപ്പ്.താഴെ ചർച്ച ചെയ്യുന്നു. നിങ്ങൾക്ക് സേവന അക്കൗണ്ട് പ്രവർത്തനം ആവശ്യമില്ലെങ്കിൽ, ഇൻസ്റ്റാളേഷനോ വെബ് ആപ്ലിക്കേഷനോ ഉള്ള അംഗീകാര പ്രക്രിയ ഉപയോഗിക്കാൻ ഞങ്ങൾ ശക്തമായി ശുപാർശ ചെയ്യുന്നു.

ഒരു ക്ലയന്റ് ഐഡിയും രഹസ്യ കോഡും സൃഷ്ടിക്കുന്നു

നിങ്ങളുടെ ആപ്ലിക്കേഷൻ തരം നിർണ്ണയിച്ചുകഴിഞ്ഞാൽ, ചുവടെയുള്ള ഉചിതമായ ടാബിൽ ക്ലിക്ക് ചെയ്ത് ഒരു ക്ലയന്റ് ഐഡിയും രഹസ്യവും സൃഷ്ടിക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ പാലിക്കുക.

ഇൻസ്റ്റാൾ ചെയ്യാവുന്ന ആപ്ലിക്കേഷൻ

  1. തുറക്കുക
  2. ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കുക സൃഷ്ടിക്കാൻ.
  3. ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കുക, തുടർന്ന് - OAuth ക്ലയന്റ് ഐഡി.
  4. രക്ഷിക്കും
  5. അധ്യായത്തിൽ ആപ്ലിക്കേഷൻ തരംതിരഞ്ഞെടുക്കുക മറ്റ് തരങ്ങൾആവശ്യമായ വിവരങ്ങൾ നൽകുകയും ചെയ്യുക.
  6. ക്ലിക്ക് ചെയ്യുക സൃഷ്ടിക്കാൻ.
  7. ഐഡന്റിഫയർഒപ്പം രഹസ്യ താക്കോൽ
വെബ് ആപ്ലിക്കേഷൻ
  1. തുറക്കുക
  2. പദ്ധതികളുടെ ഡ്രോപ്പ്-ഡൗൺ മെനുവിൽ നിന്ന്, തിരഞ്ഞെടുക്കുക ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കുക, തുടർന്ന് പദ്ധതിയുടെ പേര് വ്യക്തമാക്കുകയും ആവശ്യമെങ്കിൽ അതിന്റെ ഐഡി മാറ്റുകയും ചെയ്യുക, തുടർന്ന് ബട്ടൺ ക്ലിക്കുചെയ്യുക സൃഷ്ടിക്കാൻ.
  3. ക്രെഡൻഷ്യൽ പേജിൽ, തിരഞ്ഞെടുക്കുക ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കുക, തുടർന്ന് - OAuth ക്ലയന്റ് ഐഡി.
  4. ഉൽപ്പന്നത്തിന്റെ പേര് നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെട്ടേക്കാം. ഈ സാഹചര്യത്തിൽ, ക്ലിക്ക് ചെയ്യുക പ്രവേശന അഭ്യർത്ഥന വിൻഡോ ഇഷ്ടാനുസൃതമാക്കുക, ആവശ്യപ്പെട്ട വിവരങ്ങൾ നൽകി ക്ലിക്ക് ചെയ്യുക രക്ഷിക്കുംക്രെഡൻഷ്യൽ സ്‌ക്രീനിലേക്ക് മടങ്ങാൻ.
  5. അധ്യായത്തിൽ ആപ്ലിക്കേഷൻ തരംതിരഞ്ഞെടുക്കുക വെബ് ആപ്ലിക്കേഷൻ. JavaScript ഉറവിടങ്ങൾ വ്യക്തമാക്കാനും കൂടാതെ/അല്ലെങ്കിൽ URI-കൾ റീഡയറക്‌ട് ചെയ്യാനും നിർദ്ദേശങ്ങൾ പാലിക്കുക.
  6. ക്ലിക്ക് ചെയ്യുക സൃഷ്ടിക്കാൻ.
  7. ദൃശ്യമാകുന്ന പേജിൽ, പകർത്തുക ഐഡന്റിഫയർഒപ്പം രഹസ്യ താക്കോൽക്ലയന്റ് - ക്ലയന്റ് ലൈബ്രറി സജ്ജീകരിക്കുമ്പോൾ നിങ്ങൾക്ക് അവ ആവശ്യമാണ്.

നിങ്ങളുടെ ഭാഷയുടെ ക്ലയന്റ് ലൈബ്രറിയിൽ OAuth2 ക്രെഡൻഷ്യലുകളുടെ ഉപയോഗം കോൺഫിഗർ ചെയ്യുന്നതിന് താഴെയുള്ള നിർദ്ദേശങ്ങൾ പാലിക്കുക.

കുറിപ്പ്.ഞങ്ങളുടെ ക്ലയന്റ് ലൈബ്രറികളിലൊന്ന് ഉപയോഗിക്കേണ്ടതില്ലെന്ന് നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, നിങ്ങൾക്കായി അല്ലെങ്കിൽ നിങ്ങൾക്കായി പ്രക്രിയകൾ നടപ്പിലാക്കേണ്ടതുണ്ട്.

OAuth2 കളിസ്ഥലം

OAuth2 ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള മറ്റൊരു ഓപ്ഷൻ ഉപയോഗിക്കുക എന്നതാണ് OAuth2 കളിസ്ഥലം. Google API കൺസോളുമായി സംയോജിപ്പിച്ച്, OAuth2 ടോക്കണുകൾ സ്വയം സൃഷ്ടിക്കാൻ ഈ സിസ്റ്റം നിങ്ങളെ അനുവദിക്കുന്നു.

അക്കൗണ്ടുകളിലേക്ക് മാത്രം ആക്‌സസ് ആവശ്യമുള്ള ഉപയോക്താക്കൾക്കായി രൂപകൽപ്പന ചെയ്‌തതാണ് OAuth2 പ്ലേഗ്രൗണ്ട് സിസ്റ്റം ഒന്ന്മാനേജർ അക്കൗണ്ട് അല്ലെങ്കിൽ AdWords ഉപയോക്താവ്. ഒന്നിലധികം ഉപയോക്താക്കൾക്കായി നിങ്ങൾക്ക് ക്രെഡൻഷ്യലുകൾ ആവശ്യപ്പെടണമെങ്കിൽ, മുകളിൽ വിവരിച്ചതുപോലെ ക്ലയന്റ് ലൈബ്രറികൾ ഉപയോഗിക്കുന്നതാണ് നല്ലത്.

ക്രമീകരണങ്ങൾ

മുന്നറിയിപ്പ്.ഉപയോഗിക്കാൻ OAuth2 കളിസ്ഥലം, നിങ്ങൾ സൃഷ്ടിക്കേണ്ടതുണ്ട് ക്ലയന്റ് ഐഡിവേണ്ടി . ഈ ഒരേയൊരു OAuth2 പ്ലേഗ്രൗണ്ടിൽ പ്രവർത്തിക്കുന്ന ഒരു തരം ആപ്ലിക്കേഷൻ. മുകളിലുള്ള വിഭാഗത്തിൽ കൂടുതൽ വായിക്കുക.

ക്ലയന്റ് ഐഡിയും രഹസ്യ കീയും എങ്ങനെ ലഭിക്കും

  1. തുറക്കുക
  2. ഡ്രോപ്പ്-ഡൗൺ മെനുവിൽ നിന്ന് നിലവിലുള്ള ഒരു പ്രോജക്റ്റ് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പുതിയതൊന്ന് സൃഷ്ടിക്കുക.
  3. ക്രെഡൻഷ്യൽ പേജിൽ, തിരഞ്ഞെടുക്കുക ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കുക, തുടർന്ന് - OAuth ക്ലയന്റ് ഐഡി.
  4. അധ്യായത്തിൽ ആപ്ലിക്കേഷൻ തരംതിരഞ്ഞെടുക്കുക വെബ് ആപ്ലിക്കേഷൻ.
  5. വിഭാഗത്തിൽ, ഇനിപ്പറയുന്ന വരി ചേർക്കുക: https://site/oauthplayground
  6. ക്ലിക്ക് ചെയ്യുക സൃഷ്ടിക്കാൻ.
  7. ഇത് എഴുതിയെടുക്കുക ഐഡന്റിഫയർഒപ്പം രഹസ്യ താക്കോൽദൃശ്യമാകുന്ന പേജിൽ ക്ലയന്റുകൾ സൂചിപ്പിച്ചിരിക്കുന്നു. അടുത്ത ഘട്ടത്തിൽ നിങ്ങൾക്ക് അവ ആവശ്യമായി വരും.

ടോക്കണുകൾ എങ്ങനെ സൃഷ്ടിക്കാം

മുന്നറിയിപ്പ്.നിങ്ങളുടെ ബ്രൗസറിൽ നിങ്ങൾ സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന ഏത് Google അക്കൗണ്ടാണ് നിങ്ങൾ സൃഷ്‌ടിക്കുന്ന OAuth2 ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന AdWords അക്കൗണ്ടുകൾ നിർണ്ണയിക്കുന്നത്. ആൾമാറാട്ട മോഡിലോ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സൈൻ ഇൻ ചെയ്യാതെയോ ഈ ഘട്ടങ്ങൾ പൂർത്തിയാക്കുന്നതാണ് നല്ലത്. നിങ്ങൾക്ക് ക്ലയന്റ് ഐഡിയും രഹസ്യ കീയും ലഭിക്കുമ്പോൾ നിങ്ങൾ ഉണ്ടായിരുന്ന അക്കൗണ്ടിൽ നിന്ന് വ്യത്യസ്തമായ ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കേണ്ടി വരാൻ സാധ്യതയുണ്ട്.

ക്ലയന്റ് ഐഡിയിൽ നിന്ന് OAuth2 പ്ലേഗ്രൗണ്ട് എങ്ങനെ നീക്കംചെയ്യാം

നിങ്ങൾക്ക് ഇതിനകം ഉള്ളതിനാൽ ടോക്കൺ പുതുക്കുക, നിങ്ങളുടെ പരിഹരിച്ച റീഡയറക്‌ട് URI ആയി നിങ്ങൾ ഇനി OAuth2 പ്ലേഗ്രൗണ്ട് ഉപയോഗിക്കേണ്ടതില്ല. ലിസ്റ്റിൽ നിന്ന് ഈ സിസ്റ്റം നീക്കംചെയ്യുന്നതിന്, ഈ ഘട്ടങ്ങൾ പാലിക്കുക:

  1. ലേക്ക് പോകുക.
  2. ഡ്രോപ്പ്-ഡൗൺ മെനുവിൽ നിന്ന് നിങ്ങളുടെ പ്രോജക്റ്റ് തിരഞ്ഞെടുക്കുക.
  3. ക്രെഡൻഷ്യൽ പേജിൽ, ക്ലയന്റ് ഐഡിയുടെ പേര് തിരഞ്ഞെടുക്കുക.
  4. ഫീൽഡിൽ നിന്ന് https://site/oauthplayground നീക്കം ചെയ്യുക അനുവദനീയമായ റീഡയറക്‌ട് യുആർഐകൾ. നിങ്ങൾ കുറഞ്ഞത് പോകണമെന്ന് ദയവായി ശ്രദ്ധിക്കുക ഒന്ന് URI റീഡയറക്‌ട് ചെയ്യുക.
  5. ക്ലിക്ക് ചെയ്യുക രക്ഷിക്കും.

അതിനാൽ നിങ്ങൾക്ക് നിങ്ങളുടെ OAuth ക്രെഡൻഷ്യലുകൾ ഉണ്ട്. നിങ്ങൾക്ക് ഇപ്പോൾ AdWords API അന്വേഷിക്കാനും ആവശ്യമായ ക്ലയന്റ് ലൈബ്രറിയ്‌ക്കെതിരെ ഉപയോഗിക്കാനും കഴിയും.

OAuth2 സേവന അക്കൗണ്ടുകൾ

സേവന അക്കൗണ്ടുകൾ ഉപയോഗിച്ച് AdWords API എങ്ങനെ ആക്സസ് ചെയ്യാമെന്ന് ഈ വിഭാഗം വിവരിക്കുന്നു.

ഒരു സേവന അക്കൗണ്ട് എന്നത് ആപ്ലിക്കേഷന്റെ ഉടമസ്ഥതയിലുള്ള ഒരു അക്കൗണ്ടാണ്, വ്യക്തിഗത അന്തിമ ഉപയോക്താവിന്റെതല്ല. സേവന അക്കൗണ്ടുകൾ ഒരു വെബ് ആപ്ലിക്കേഷനും Google സേവനവും തമ്മിലുള്ള ആശയവിനിമയം നൽകുന്നു. ഉപയോക്താക്കളെ നേരിട്ട് ഉൾപ്പെടുത്താതെ സേവന അക്കൗണ്ടിന് വേണ്ടി നിങ്ങളുടെ ആപ്ലിക്കേഷൻ API-യെ വിളിക്കുന്നു.

AdWords API G Suite ഡൊമെയ്‌നുകളിലുടനീളം സേവന അക്കൗണ്ട് ആക്‌സസ് അനുവദിക്കുന്നു.

സേവന അക്കൗണ്ട് ഒരു OAuth2 പ്രോസസ്സ് നടപ്പിലാക്കുന്നു, അത് ഉപയോക്താവിനെ അംഗീകരിക്കുന്നതിനുപകരം നിങ്ങളുടെ അപ്ലിക്കേഷന് മാത്രം ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന ഒരു കീ ഫയൽ ഉപയോഗിക്കുന്നു.

സേവന അക്കൗണ്ടുകൾ ഉപയോഗിക്കുന്നത് രണ്ട് പ്രധാന നേട്ടങ്ങൾ നൽകുന്നു:

  • സജ്ജീകരണ ഘട്ടത്തിലാണ് Google API-യിലേക്കുള്ള ഒരു ആപ്ലിക്കേഷന്റെ ആക്‌സസ്സ് അംഗീകരിക്കുന്നത്. മറ്റ് OAuth2 ഫ്ലോകളിൽ ഉപയോക്തൃ ഇടപെടൽ അല്ലെങ്കിൽ കാഷെൻ ടോക്കണുകൾ ആവശ്യമായി വരുന്ന ബുദ്ധിമുട്ട് ഇത് ഒഴിവാക്കുന്നു.
  • ആപ്പിലെ മറ്റ് ഉപയോക്താക്കളുടെ ആൾമാറാട്ടം, ആവശ്യമെങ്കിൽ, OAuth2 അംഗീകാര പ്രക്രിയയുടെ ഭാഗമായാണ് ചെയ്യുന്നത്.
കുറിപ്പ്. നിങ്ങൾ ഡൊമെയ്ൻ നിർദ്ദിഷ്ട സവിശേഷതകൾ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ, ആൾമാറാട്ടം പോലെ, സേവന അക്കൗണ്ടുകൾക്ക് പകരം, എന്നതിനായി ഒരു പ്രോസസ്സ് ഉപയോഗിക്കാൻ വളരെ ശുപാർശ ചെയ്യുന്നു. OAuth2 ഇൻസ്റ്റാളിന്റെയും വെബ് ആപ്ലിക്കേഷൻ പ്രക്രിയകളുടെയും ഭാഗമായി, അക്കൗണ്ടിലേക്ക് ആക്‌സസ് അനുവദിക്കുന്ന സമയത്ത് ഉപയോക്തൃ പങ്കാളിത്തം ഒരു തവണ മാത്രമേ ആവശ്യമുള്ളൂ.

സേവന അക്കൗണ്ടുകൾക്ക് ബദൽ

ഉപയോക്തൃ ഇടപെടലില്ലാതെ OAuth2 പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് API-കളിലേക്ക് പ്രോഗ്രാമാറ്റിക് ആക്സസ് നൽകാൻ സേവന അക്കൗണ്ടുകൾ വ്യാപകമായി ഉപയോഗിക്കുന്നു.

എന്നിരുന്നാലും, AdWords API-യിൽ പ്രവർത്തിക്കാൻ അത്തരം അക്കൗണ്ടുകൾ സജ്ജീകരിക്കുന്നത് എളുപ്പമല്ല. ഒരു ലളിതമായ ബദൽസ്ഥിരമായ പുതുക്കൽ ടോക്കണോടുകൂടിയതാണ്. ഈ സമീപനം എപ്പോൾ വേണമെങ്കിലും പുതിയ ആക്‌സസ് ടോക്കണുകൾ അഭ്യർത്ഥിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു.

ഈ പ്രക്രിയയുടെ ഭാഗമായി, മുകളിൽ വിവരിച്ചതുപോലെ നിങ്ങൾ ക്ലയന്റ് ലൈബ്രറി വഴി ആപ്ലിക്കേഷൻ അംഗീകാരം ക്രമീകരിക്കേണ്ടതുണ്ട്. Google OAuth2 പുതുക്കിയ ടോക്കണുകൾ ഒരിക്കലും കാലഹരണപ്പെടാത്തതിനാൽ ഇത് ഒരിക്കൽ മാത്രം ചെയ്താൽ മതിയാകും.

ആവശ്യകതകൾ

  • mydomain.com അല്ലെങ്കിൽ mybusiness.com പോലുള്ള നിങ്ങളുടെ ഉടമസ്ഥതയിലുള്ള ഒരു G Suite ഡൊമെയ്‌ൻ.
  • AdWords API ഡെവലപ്പർ ടോക്കണും ഒരു ടെസ്റ്റ് അക്കൗണ്ടും മികച്ചതാണ്.
  • ഉപയോഗിക്കുന്ന ഭാഷയ്ക്ക്.

ഒരു ക്ലയന്റ് അക്കൗണ്ടിനായി ആക്സസ് സജ്ജീകരിക്കുന്നു

ആദ്യം, നിങ്ങൾ Google API കൺസോളിൽ ഒരു സേവന അക്കൗണ്ട് കീ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

  1. നിങ്ങളുടെ G Suite അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യുക, തുറക്കുക.
  2. പദ്ധതികളുടെ ഡ്രോപ്പ്-ഡൗൺ മെനുവിൽ നിന്ന്, തിരഞ്ഞെടുക്കുക ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കുക, തുടർന്ന് ആവശ്യമായ വിവരങ്ങൾ നൽകി ബട്ടൺ ക്ലിക്ക് ചെയ്യുക സൃഷ്ടിക്കാൻ. പുതിയ പ്രോജക്റ്റ് സജീവ ലിസ്റ്റിൽ ദൃശ്യമാകും.
  3. മുകളിൽ ഇടത് കോണിലുള്ള മെനുവിൽ നിന്ന്, തിരഞ്ഞെടുക്കുക IAM, അഡ്മിനിസ്ട്രേഷൻ, തുടർന്ന് - സേവന അക്കൗണ്ടുകൾഇടതുവശത്തുള്ള മെനുവിൽ.
  4. ക്ലിക്ക് ചെയ്യുക ഒരു സേവന അക്കൗണ്ട് സൃഷ്ടിക്കുകപേജിന്റെ മുകളിൽ.
  5. സേവന അക്കൗണ്ടിന്റെ പേര് നൽകുക.
  6. ബോക്സ് പരിശോധിക്കുക ഒരു പുതിയ സ്വകാര്യ കീ സൃഷ്ടിക്കുകകൂടാതെ JSON കീ തരം തിരഞ്ഞെടുക്കുക.
  7. ബോക്സ് പരിശോധിക്കുക നിങ്ങളുടെ G Suite ഡൊമെയ്‌നിൽ ഡാറ്റ ആക്‌സസ് ഡെലിഗേഷൻ പ്രവർത്തനക്ഷമമാക്കുകകൂടാതെ ആക്‌സസ് അഭ്യർത്ഥന വിൻഡോയ്ക്ക് ഉൽപ്പന്നത്തിന്റെ പേര് നൽകുക.
  8. ക്ലിക്ക് ചെയ്യുക സൃഷ്ടിക്കാൻ. JSON കീ ഫയൽ ഡൗൺലോഡ് ചെയ്യാൻ തുടങ്ങും. നിങ്ങൾക്ക് മാത്രം ആക്സസ് ഉള്ള ഒരു സുരക്ഷിത സ്ഥലത്ത് ഫയൽ സംരക്ഷിക്കുക.
  9. പേജിൽ സേവന അക്കൗണ്ടുകൾഒരു പുതിയ സേവന അക്കൗണ്ട് ദൃശ്യമാകും.
കുറിപ്പ്. കാരണം ഉപയോക്തൃ ആൾമാറാട്ടം നിയന്ത്രിക്കാനാകും മാത്രംഡൊമെയ്ൻ തലത്തിൽ, Google OAuth2 സേവനങ്ങൾക്കൊപ്പം സേവന അക്കൗണ്ടുകളും അംഗീകാര പ്രക്രിയയും ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾക്ക് G Suite-ൽ രജിസ്റ്റർ ചെയ്ത സ്വന്തം ഡൊമെയ്ൻ ആവശ്യമാണ്. ഉചിതമായ അനുമതികളുള്ള ഒരു സേവന അക്കൗണ്ട് ഉപയോഗിക്കുന്ന എല്ലാ ഡൊമെയ്ൻ ഉപയോക്താക്കൾക്കും ഏത് ഡൊമെയ്ൻ ഉപയോക്താവിനെയും ആൾമാറാട്ടം നടത്താനാകും.

സുരക്ഷാ പ്രശ്നങ്ങൾ

G Suite മാനേജുചെയ്യുന്നത് ഡൊമെയ്‌ൻ തലത്തിൽ ആയതിനാൽ, അംഗീകൃത അക്കൗണ്ടുകളെ Google സേവനങ്ങൾ ആക്‌സസ് ചെയ്യാൻ അനുവദിക്കുന്ന കീ ഫയൽ നിങ്ങൾ സുരക്ഷിതമായി പരിരക്ഷിക്കണം. ഏത് ഡൊമെയ്‌ൻ ഉപയോക്താവിനെയും ആൾമാറാട്ടം നടത്താനുള്ള കഴിവ് ഞങ്ങൾ സേവന അക്കൗണ്ട് നൽകുന്നതിനാൽ ഇത് വളരെ പ്രധാനമാണ്.

കൂടാതെ, ഓരോ സേവന അക്കൗണ്ടിനും ഒരു Google API-ലേയ്‌ക്ക് മാത്രമേ ആക്‌സസ് ഉണ്ടായിരിക്കൂ എന്ന് ശുപാർശ ചെയ്യുന്നു. വയലാണ് ഇതിനായി ഉപയോഗിക്കുന്നത് ഭാവിയുളള, അത് അടുത്ത വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു. ഒരു പ്രധാന ഫയൽ അപഹരിക്കപ്പെട്ടാൽ, അനധികൃത ആക്‌സസ്സ് തുറന്നിരിക്കുന്ന ഡാറ്റയുടെ അളവ് പരിമിതപ്പെടുത്താൻ ഈ പ്രതിരോധ നടപടി നിങ്ങളെ അനുവദിക്കുന്നു.

ആൾമാറാട്ട കഴിവുകൾ എങ്ങനെ നൽകാം

ഒരു സേവന അക്കൗണ്ടിന് ആൾമാറാട്ട കഴിവുകൾ നൽകുന്നതിന്, ഈ ഘട്ടങ്ങൾ പാലിക്കുക:

OAuth2 അംഗീകാര പ്രക്രിയയുടെ ഭാഗമായി നിങ്ങളുടെ സേവന അക്കൗണ്ട് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇപ്പോൾ AdWords അക്കൗണ്ട് ആക്‌സസ് ചെയ്യാൻ കഴിയും.

ക്ലയന്റ് ലൈബ്രറി സജ്ജീകരിക്കുന്നു

ക്ലയന്റ് ലൈബ്രറി സജ്ജീകരിക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ കാണുന്നതിന് ഒരു ഭാഷ തിരഞ്ഞെടുക്കുക.

കുറിപ്പ്.ഞങ്ങളുടെ ക്ലയന്റ് ലൈബ്രറികളിലൊന്ന് ഉപയോഗിക്കേണ്ടതില്ലെന്ന് നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, നിങ്ങൾ സ്വയം പ്രോസസ്സ് നടപ്പിലാക്കേണ്ടതുണ്ട്.

OAuth2 അഭ്യർത്ഥനകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നു

നിങ്ങളുടെ ആപ്പ് ക്രെഡൻഷ്യൽ പങ്കിടൽ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ, അത് Google-ലേക്ക് അയയ്‌ക്കുന്ന അഭ്യർത്ഥനകളുടെ എണ്ണം ഗണ്യമായി വർദ്ധിപ്പിക്കും. തൽഫലമായി, ഞങ്ങളുടെ സെർവറുകൾ അത്തരം ഒരു ആപ്ലിക്കേഷനിൽ നിയന്ത്രണങ്ങൾ ഏർപ്പെടുത്തിയേക്കാം, അത് അതിന്റെ പ്രവർത്തനത്തിന്റെ വേഗത കുറയ്ക്കും.

OAuth2 ക്രെഡൻഷ്യൽ മാനേജ്‌മെന്റ് എങ്ങനെ ഒപ്റ്റിമൈസ് ചെയ്യാമെന്ന് ഈ വിഭാഗം വിവരിക്കുന്നു, അതുവഴി നിങ്ങളുടെ ആപ്ലിക്കേഷൻ AdWords API-യുമായി കൂടുതൽ ഫലപ്രദമായി സംവദിക്കും.

ശ്രദ്ധ!നിബന്ധന പ്രകാരം യോഗ്യതാപത്രങ്ങൾഇത് ആക്സസ് ടോക്കണും അതിന്റെ കാലഹരണ തീയതിയും ഉൾപ്പെടെ OAuth2 ക്രെഡൻഷ്യൽ ആട്രിബ്യൂട്ടുകളുടെ മുഴുവൻ സെറ്റിനെയും സൂചിപ്പിക്കുന്നു.

ക്രെഡൻഷ്യൽ വിതരണ തന്ത്രങ്ങൾ

API അഭ്യർത്ഥനകളിലുടനീളം ക്രെഡൻഷ്യലുകൾ വിതരണം ചെയ്യുന്നത് പ്രകടനം മെച്ചപ്പെടുത്തുകയും നിയന്ത്രണ ലംഘനങ്ങൾ മൂലമുള്ള ഓവർഹെഡും പിശകുകളും ഒഴിവാക്കുകയും ചെയ്യുന്നു.

ക്രെഡൻഷ്യൽ വിതരണ തന്ത്രം ആപ്ലിക്കേഷൻ രൂപകൽപ്പനയെ ആശ്രയിച്ചിരിക്കുന്നു.

മൾട്ടി-ത്രെഡഡ് ആപ്ലിക്കേഷനുകളിൽ, ഓരോ ത്രെഡിന്റെ സെഷനും നിങ്ങൾ ഒരേ ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കണം.

മൾട്ടി-പ്രോസസ്, ഡിസ്ട്രിബ്യൂഡ് ആപ്ലിക്കേഷനുകളിൽ, പ്രോസസ്സുകൾക്കിടയിൽ ക്രെഡൻഷ്യലുകൾ കൈമാറുന്നതിന് ചില അടിസ്ഥാന സൗകര്യങ്ങൾ നടപ്പിലാക്കേണ്ടത് ആവശ്യമാണ്. കൂടാതെ, ത്രെഡുകൾ തടയുന്നില്ലെന്നും റേസ് അവസ്ഥകൾ ഉണ്ടാകുന്നില്ലെന്നും നിങ്ങൾ ഉറപ്പാക്കണം.

മൾട്ടി-പ്രോസസ്/വിതരണവും മൾട്ടി-ത്രെഡുമുള്ള ഒരു ആപ്ലിക്കേഷനിൽ, ഓരോ പ്രക്രിയയ്ക്കും രണ്ട് തന്ത്രങ്ങളും സംയോജിപ്പിക്കേണ്ടതുണ്ട്.

ഒരു ശ്രേണിയിലെ ഉയർന്ന തലത്തിലുള്ള മാനേജർ അക്കൗണ്ട് പോലെയുള്ള ഒരൊറ്റ AdWords അക്കൗണ്ട് പ്രാമാണീകരിക്കുന്നതിനുള്ള തന്ത്രങ്ങളാണ് ഇനിപ്പറയുന്നവ.

ഈ തന്ത്രങ്ങൾ എങ്ങനെ പൊരുത്തപ്പെടുത്താമെന്ന് അത് വിവരിക്കുന്നു.

മൾട്ടി-ത്രെഡ് ചെയ്ത ആപ്ലിക്കേഷനുകൾ

മൾട്ടി-ത്രെഡഡ് ആപ്ലിക്കേഷനുകളിൽ, ക്രെഡൻഷ്യലുകൾ വ്യത്യസ്ത ത്രെഡുകളിൽ ലഭ്യമായിരിക്കണം. റേസ് സാഹചര്യങ്ങൾ ഒഴിവാക്കാൻ ക്രെഡൻഷ്യൽ അപ്‌ഡേറ്റുകൾ സിൻക്രണസ് ആയി ചെയ്യണം.

റൺടൈമിൽ AdWords API-ലേക്ക് അഭ്യർത്ഥനകൾ കൈമാറുന്ന ത്രെഡുകൾ ഈ ഡയഗ്രം കാണിക്കുന്നു. സെഷനുകളുടെ (ഉപയോക്താക്കൾ) പങ്കിട്ട ഒരു പൂൾ ഉപയോഗിക്കുന്നു. ഓരോ സെഷനും ഒരേ ക്രെഡൻഷ്യൽ ഒബ്ജക്റ്റ് ഉപയോഗിക്കണം എന്നത് ശ്രദ്ധിക്കുക. ഓരോ API അഭ്യർത്ഥനയ്ക്കും മറുപടിയായി, ത്രെഡിന് അനുബന്ധ സെഷൻ (ഉപയോക്താവ്) ലഭിക്കുന്നു. ആക്‌സസ് ടോക്കൺ പുതുക്കേണ്ടതുണ്ടെങ്കിൽ, ഒരു റേസ് അവസ്ഥ ഒഴിവാക്കാൻ അത് സമന്വയത്തോടെ ചെയ്യണം. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ക്രെഡൻഷ്യൽ ഒബ്ജക്റ്റ് ത്രെഡ് സുരക്ഷിതമായിരിക്കണം.

ത്രെഡുകൾക്കിടയിൽ ക്രെഡൻഷ്യലുകൾ കൈമാറുന്നത് ക്ലയന്റ് ലൈബ്രറികൾ എളുപ്പമാക്കുന്നു. ഓരോ ക്ലയന്റ് ലൈബ്രറിയിലും അതിന്റെ ജീവിതചക്രത്തിലുടനീളം പുനരുപയോഗിക്കുന്ന ക്രെഡൻഷ്യലുകളുള്ള ഒരു സെഷൻ (അല്ലെങ്കിൽ ഉപയോക്താവ്) ഒബ്‌ജക്റ്റ് ഉണ്ട്. സെഷനുകളിൽ ഉടനീളം ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നതിന്, ഓരോ സെഷനും സൃഷ്ടിക്കുമ്പോൾ നിങ്ങൾ അവ പ്രയോഗിക്കണം. എല്ലാ ക്ലയന്റ് ലൈബ്രറികളിലും, ആക്‌സസ് ടോക്കൺ കാലഹരണപ്പെടുമ്പോൾ സമന്വയിപ്പിച്ച് അപ്‌ഡേറ്റ് ചെയ്യുന്ന ഒരു ത്രെഡ്-സേഫ് ഒബ്‌ജക്റ്റാണ് ക്രെഡൻഷ്യൽ.

ഉദാഹരണത്തിന്, ജാവ ക്ലയന്റ് ലൈബ്രറിയിൽ നിങ്ങൾ ഒരു സിംഗിൾടൺ ക്രെഡൻഷ്യൽ ക്ലാസ് സൃഷ്ടിക്കുകയും എല്ലാ സെഷനുകൾക്കും ഉപയോഗിക്കുകയും ചെയ്യും.

മൾട്ടിപ്രോസസ്, വിതരണം ചെയ്ത ആപ്ലിക്കേഷനുകൾ

മൾട്ടി-പ്രോസസ്, വിതരണം ചെയ്ത ആപ്ലിക്കേഷനുകളിൽ, ക്രെഡൻഷ്യൽ വിതരണം തുടരണം. ഒന്നിലധികം സെർവറുകൾ ഒരേ സമയം ക്രെഡൻഷ്യലുകൾ അപ്‌ഡേറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്ന ഒരു റേസ് സാഹചര്യം ഒഴിവാക്കാൻ (അമിത അപ്‌ഡേറ്റ് അഭ്യർത്ഥനകളുടെ ഫലമായി), അപ്‌ഡേറ്റ് നിർബന്ധിതമാക്കാനും എല്ലാ പ്രോസസ്സുകൾക്കും സെർവറുകൾക്കും അപ്‌ഡേറ്റ് ചെയ്‌ത ക്രെഡൻഷ്യലുകൾ നൽകാനും ശുപാർശ ചെയ്യുന്നു.

ഉദാഹരണത്തിന്, ഒരു ടാസ്‌ക് അല്ലെങ്കിൽ സേവനം കാലാനുസൃതമായി ക്രെഡൻഷ്യലുകൾ അപ്‌ഡേറ്റ് ചെയ്‌ത് അവയെ വ്യത്യസ്ത സെർവറുകൾ ഉപയോഗിക്കുന്ന ഒരു ഡാറ്റ സ്റ്റോറിലേക്ക് തള്ളും.

ക്രെഡൻഷ്യലുകളുടെ ആനുകാലിക അപ്‌ഡേറ്റും ഡാറ്റ സ്റ്റോറിൽ അവയുടെ പ്രോപ്പർട്ടികൾ രേഖപ്പെടുത്തുന്നതും ഡയഗ്രം കാണിക്കുന്നു. API-യിലേക്ക് ഒരു അഭ്യർത്ഥന നടത്തുന്നതിന് മുമ്പ് എല്ലാ സെർവറുകൾക്കും ക്രെഡൻഷ്യലുകൾ ലഭിക്കും.

ചുമതല അപ്ഡേറ്റ് ചെയ്യുക

അപ്ഡേറ്റ് ടാസ്ക്ക് ആനുകാലികമായി ക്രെഡൻഷ്യലുകൾ അപ്ഡേറ്റ് ചെയ്യുകയും ഡാറ്റ സ്റ്റോറിലേക്ക് അയയ്ക്കുകയും ചെയ്യുന്നു. നിലവിലെ ക്രെഡൻഷ്യലുകൾ കാലഹരണപ്പെടുന്നതുവരെ ഈ ടാസ്‌ക് കാത്തിരിക്കരുത്, കാരണം ഇത് സാധുവായ ക്രെഡൻഷ്യലുകളുടെ അഭാവം മൂലം കുറച്ച് സമയത്തേക്ക് അപേക്ഷ പ്രവർത്തനരഹിതമാക്കും.

ഓരോ തവണയും ഡാറ്റ സ്റ്റോറിലെ ക്രെഡൻഷ്യലുകൾ പുതിയവ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്ന ഒരു ആനുകാലിക പുതുക്കൽ നിർബന്ധമാക്കുക എന്നതാണ് മികച്ച ബദൽ. നിലവിലെ ക്രെഡൻഷ്യലുകൾ കാലഹരണപ്പെടുന്നതിന് മുമ്പ് അപ്‌ഡേറ്റ് ടാസ്‌ക് നന്നായി നിർവഹിക്കണം, അതിനാൽ ഒരു താൽക്കാലിക പിശക് സംഭവിച്ചാൽ മതിയായ സമയമുണ്ട്. ഓരോ 15 മിനിറ്റിലും ഒരു അപ്ഡേറ്റ് നടത്തി നിങ്ങൾക്ക് ആരംഭിക്കാം.

കുറിപ്പ്.ഒരു API അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുമ്പോൾ ക്രെഡൻഷ്യലിന്റെ ആക്സസ് ടോക്കൺ കാലഹരണപ്പെടുകയാണെങ്കിൽ, അഭ്യർത്ഥന തുടർന്നും നടപ്പിലാക്കും. ഉദാഹരണത്തിന്, നിങ്ങൾ ദീർഘനേരം പ്രവർത്തിക്കുന്ന ഒരു ചോദ്യം സൃഷ്‌ടിക്കുകയും ആക്‌സസ് ചെയ്യാൻ ഒരു മിനിറ്റിൽ താഴെ സമയം ശേഷിക്കുകയും ചെയ്‌താൽ, ഫലങ്ങൾ തുടർന്നും നൽകും.

ഡാറ്റ സ്റ്റോർ

വ്യത്യസ്‌ത പ്രോസസ്സുകൾക്കും സെർവറുകൾക്കും ക്രെഡൻഷ്യലുകൾ നൽകുന്നതിന് ഡാറ്റ സംഭരണം ഉപയോഗിക്കുന്നു.

ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് നിലവിലുള്ള ഒരു ഡാറ്റ വെയർഹൗസ് ഉപയോഗിക്കാം അല്ലെങ്കിൽ സെർവറുകൾക്ക് ക്രെഡൻഷ്യലുകൾ ലഭിക്കുന്ന ഒരു പ്രത്യേക വെയർഹൗസ് സൃഷ്ടിക്കാം. സാധ്യമായ പരിഹാരങ്ങളിൽ കാഷിംഗ് സെർവറുകളും (Memcached അല്ലെങ്കിൽ Infinispan പോലുള്ളവ) NoSQL ഡാറ്റ സ്റ്റോറുകളും (MangoDB പോലുള്ളവ) ഉൾപ്പെടുന്നു.

API ആക്‌സസ് ചെയ്യുന്ന എല്ലാ സെർവറുകൾക്കും വിശ്വസനീയമായ ഒരു ഇന്റർഫേസ് നൽകുക എന്നതാണ് ഡാറ്റ വെയർഹൗസിന്റെ പ്രധാന ലക്ഷ്യം. ഡാറ്റ വേഗത്തിൽ വായിക്കാൻ അതിന്റെ പ്രവർത്തനം ഒപ്റ്റിമൈസ് ചെയ്യേണ്ടതുണ്ട്: സെർവറുകളും പ്രോസസ്സുകളും ക്രെഡൻഷ്യലുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നതിനേക്കാൾ കൂടുതൽ തവണ വായിക്കും.

നിങ്ങളുടെ യോഗ്യതാപത്രങ്ങൾ സുരക്ഷിതമായി സൂക്ഷിക്കാൻ ഓർക്കുക.

ക്രെഡൻഷ്യലുകൾ സംരക്ഷിക്കുമ്പോൾ, നിങ്ങൾ എക്‌സ്‌പയറി_ടൈം പ്രോപ്പർട്ടിയും (നിലവിലെ സമയം + കാലഹരണപ്പെടുന്ന_ഇൻ) ആക്‌സസ്_ടോക്കൺ പ്രോപ്പർട്ടിയ്‌ക്കൊപ്പം പുതുക്കിയ_ടോക്കണും സംരക്ഷിക്കണം. ഇനിപ്പറയുന്ന ഫോർമുല ഉപയോഗിച്ചാണ് expiry_time പ്രോപ്പർട്ടി (ടോക്കൺ കാലഹരണപ്പെടൽ തീയതി) കണക്കാക്കുന്നത്: access_token അപ്ഡേറ്റ് അഭ്യർത്ഥന സമയം + expires_in സമയം (ടോക്കൺ കാലഹരണപ്പെടുന്ന തീയതി).

സെർവർ പൂൾ

അഭ്യർത്ഥന അയയ്‌ക്കുന്നതിന് മുമ്പ് പൂളിലെ ഓരോ സെർവറും ഡാറ്റ സ്റ്റോറിൽ നിന്ന് ഏറ്റവും പുതിയ ക്രെഡൻഷ്യലുകൾ നേടുന്നു. അപ്‌ഡേറ്റ് ടാസ്‌ക് വിജയകരമായി പ്രവർത്തിക്കുന്നിടത്തോളം കാലം, ക്രെഡൻഷ്യലുകൾ സാധുവായിരിക്കും. എന്നിരുന്നാലും, അപ്ഡേറ്റ് ടാസ്ക്ക് അല്ലെങ്കിൽ ഡാറ്റ സ്റ്റോർ പരാജയപ്പെടുകയാണെങ്കിൽ, ഒരു ഫാൾബാക്ക് മെക്കാനിസം ഉണ്ടായിരിക്കണം.

സെർവറിനോ പ്രോസസ്സിനോ ഡാറ്റ സ്റ്റോറിൽ നിന്ന് ക്രെഡൻഷ്യലുകൾ നേടാൻ കഴിയുന്നില്ലെങ്കിൽ, അല്ലെങ്കിൽ ക്രെഡൻഷ്യലുകൾ കാലഹരണപ്പെട്ടാൽ, പ്രശ്നം പരിഹരിക്കുന്നത് വരെ API-യിൽ പ്രവർത്തിക്കുന്നത് തുടരാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നതിന് സെർവർ അതിന്റെ ക്രെഡൻഷ്യലുകൾ അപ്‌ഡേറ്റ് ചെയ്യണം.

മൾട്ടിത്രെഡഡ് പ്രക്രിയകളിൽ, ത്രെഡുകൾക്കിടയിൽ ക്രെഡൻഷ്യലുകൾ വിതരണം ചെയ്യുന്നതിനും നിങ്ങൾ ഇതേ തന്ത്രം ഉപയോഗിക്കണം.

ഒന്നിലധികം അക്കൗണ്ട് പ്രാമാണീകരണം

എല്ലാ ചൈൽഡ് അക്കൗണ്ടുകളും ആക്‌സസ് ചെയ്യാൻ AdWords മാനേജർ അക്കൗണ്ടിനായി സൃഷ്‌ടിച്ച ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കാം. ഒരു മാനേജർ അക്കൗണ്ടുള്ള ഉപയോക്താക്കൾക്ക് സാധാരണയായി എല്ലാ കീഴ്വഴക്കമുള്ള AdWords അക്കൗണ്ടുകൾക്കുമുള്ള അപേക്ഷ അംഗീകരിക്കുന്നതിന് ഉയർന്ന തലത്തിലുള്ള മാനേജർ അക്കൗണ്ടിനായി ക്രെഡൻഷ്യലുകൾ സൃഷ്‌ടിച്ചാൽ മതിയാകും.

മറ്റ് സന്ദർഭങ്ങളിൽ, മാനേജർ അക്കൗണ്ട് ശ്രേണിയിൽ പരസ്പരം ബന്ധമില്ലാത്ത AdWords അക്കൗണ്ടുകളിലേക്ക് അപ്ലിക്കേഷന് ആക്‌സസ് ആവശ്യമാണ്. നിങ്ങൾക്ക് ആക്‌സസ് ഉള്ള ഓരോ AdWords ക്ലയന്റ് അക്കൗണ്ടിനും അല്ലെങ്കിൽ സ്വതന്ത്ര ശ്രേണികളിലെ ഓരോ ഉയർന്ന തലത്തിലുള്ള മാനേജർ അക്കൗണ്ടിനും പോലുള്ള വ്യത്യസ്ത അക്കൗണ്ടുകൾക്കായി ഒന്നിലധികം ക്രെഡൻഷ്യലുകൾ സൃഷ്ടിക്കാനും പരിപാലിക്കാനും ഈ സാഹചര്യം നിങ്ങളോട് ആവശ്യപ്പെടുന്നു.

കുറഞ്ഞ മാറ്റങ്ങളോടെ രണ്ട് ആപ്ലിക്കേഷനുകൾക്കുമായി നിങ്ങൾക്ക് ഈ തന്ത്രങ്ങൾ പാലിക്കാൻ കഴിയും. പങ്കിട്ട സ്‌റ്റോറേജ് ഉപയോഗിക്കുമ്പോൾ, ക്രെഡൻഷ്യൽ ആവശ്യമുള്ള അക്കൗണ്ടുമായി ബന്ധപ്പെട്ടിരിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ അക്കൗണ്ട് ഐഡി കസ്റ്റമർ ഐഡി ക്രെഡൻഷ്യലുകൾ സൂചികയിലാക്കിയിരിക്കണം. കൂടാതെ, അപ്ഡേറ്റ് ടാസ്ക്ക് അവരെ കൃത്യസമയത്ത് അപ്ഡേറ്റ് ചെയ്യണം. ഒരു പുതിയ അക്കൗണ്ട് കണക്റ്റുചെയ്‌ത ശേഷം, നിങ്ങൾ അത് ലോഞ്ച് ചെയ്യേണ്ടി വന്നേക്കാം.

അവസാനമായി, മൾട്ടി-ത്രെഡഡ് ആപ്ലിക്കേഷനുകളിൽ, നിങ്ങൾ ക്രെഡൻഷ്യൽ ഒബ്ജക്റ്റ് അത് ബന്ധപ്പെട്ടിരിക്കുന്ന അക്കൗണ്ടിൽ പ്രവർത്തിക്കുന്ന ത്രെഡുകൾക്കിടയിൽ മാത്രം വിതരണം ചെയ്യേണ്ടതുണ്ട്.

OAuth2 എങ്ങനെ പ്രവർത്തിക്കുന്നു

കുറിപ്പ്. ഒരു ഡാറ്റ ആക്സസ് അഭ്യർത്ഥന (ഹൈബ്രിഡ് ഡിസൈൻ) അല്ലെങ്കിൽ ഡൊമെയ്ൻ-ലെവൽ ഡെലിഗേഷൻ ഓഫ് അതോറിറ്റി (2LO) വഴിയുള്ള സമകാലിക സൈൻ-ഇൻ AdWords API ഇതുവരെ പിന്തുണയ്ക്കുന്നില്ല.

ഭാവിയുളള

ഒരു ആക്‌സസ് ടോക്കണിന് ഡാറ്റയിലേക്കുള്ള വിവിധ അളവിലുള്ള ആക്‌സസ് നൽകാൻ കഴിയും. വേരിയബിൾ സ്കോപ്പ് പാരാമീറ്റർ ടോക്കൺ ആക്സസ് നൽകുന്ന വിഭവങ്ങളുടെയും പ്രവർത്തനങ്ങളുടെയും സെറ്റ് നിർവചിക്കുന്നു. ഒരു ആക്സസ് ടോക്കൺ അഭ്യർത്ഥിക്കുമ്പോൾ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ സ്കോപ്പ് പാരാമീറ്ററിലേക്ക് ഒന്നോ അതിലധികമോ മൂല്യങ്ങൾ അയയ്ക്കുന്നു.

AdWords API-യുടെ നിലവിലുള്ളതും ലെഗസി സ്കോപ്പും ചുവടെയുണ്ട്.

ഓഫ്‌ലൈൻ ആക്‌സസ്സ്

AdWords API ഉപയോഗിക്കുന്ന ഒരു ക്ലയന്റ് ആപ്ലിക്കേഷൻ സാധാരണയായി ഓഫ്‌ലൈൻ ആക്‌സസ് അഭ്യർത്ഥിക്കുന്നു. ഇന്റർനെറ്റ് കണക്ഷനില്ലാതെ ഉപയോക്താവ് നിങ്ങളുടെ സൈറ്റ് ബ്രൗസ് ചെയ്യുമ്പോൾ നിങ്ങളുടെ അപ്ലിക്കേഷന് ബാച്ച് ജോലികൾ പ്രവർത്തിപ്പിക്കണമെങ്കിൽ ഇത് സംഭവിക്കാം.

ഇൻസ്റ്റാൾ ചെയ്ത ആപ്പുകൾ ഡിഫോൾട്ടായി ഓഫ്‌ലൈൻ ആക്‌സസ് ഉപയോഗിക്കുന്നു.

HTTP അഭ്യർത്ഥന തലക്കെട്ട്

AdWords API സെർവറിലേക്കുള്ള എല്ലാ അഭ്യർത്ഥനകളിലെയും HTTP തലക്കെട്ടിൽ ഇനിപ്പറയുന്ന ഫോം അടങ്ങിയിരിക്കണം:

അംഗീകാരം: Bearer THE_ACCESS_TOKEN

POST ... HTTP/1.1 ഹോസ്റ്റ്: ... അംഗീകാരം: ബെയറർ 1/fFAGRNJru1FTz70BzhT3Zg ഉള്ളടക്ക-തരം: ടെക്സ്റ്റ്/xml;charset=UTF-8 ഉള്ളടക്ക-ദൈർഘ്യം: ...

ടോക്കണുകൾ ആക്സസ് ചെയ്യുകയും പുതുക്കുകയും ചെയ്യുക

മിക്ക കേസുകളിലും, പുതുക്കിയ ടോക്കൺ സുരക്ഷിതമായ സ്ഥലത്ത് സൂക്ഷിക്കേണ്ടതുണ്ട്, കാരണം അത് പിന്നീട് ആവശ്യമായി വന്നേക്കാം. ആക്‌സസ് അഭ്യർത്ഥിക്കുന്നതിനെക്കുറിച്ചും ടോക്കണുകൾ പുതുക്കുന്നതിനെക്കുറിച്ചും കൂടുതൽ വിവരങ്ങൾക്ക്, ഇനിപ്പറയുന്ന ഗൈഡുകൾ കാണുക:

ഒരു ആക്സസ് ടോക്കൺ കാലഹരണപ്പെടുമ്പോൾ

ആക്സസ് ടോക്കണിന് ഒരു കാലഹരണ തീയതി ഉണ്ട്, അത് expires_in ന്റെ മൂല്യത്തെ ആശ്രയിച്ചിരിക്കുന്നു. കാലഹരണപ്പെട്ട ആക്സസ് ടോക്കൺ ഒരു പുതുക്കൽ ടോക്കൺ ഉപയോഗിച്ച് പുതുക്കാവുന്നതാണ്, എന്നാൽ ഞങ്ങളുടെ ക്ലയന്റ് ലൈബ്രറികൾ ഇത് സ്വയമേവ ചെയ്യുന്നു.

മറ്റുവിധത്തിൽ സൂചിപ്പിച്ചതൊഴിച്ചാൽ, ഈ പേജിന്റെ ഉള്ളടക്കം ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ 3.0 ലൈസൻസിന് കീഴിലും കോഡ് സാമ്പിളുകൾ അപ്പാച്ചെ 2.0 ലൈസൻസിന് കീഴിലും ലൈസൻസ് ചെയ്തിരിക്കുന്നു. വിശദാംശങ്ങൾക്ക്, ഞങ്ങളുടേത് കാണുക. ജാവ ഒറാക്കിൾ കൂടാതെ/അല്ലെങ്കിൽ അതിന്റെ അനുബന്ധ സ്ഥാപനങ്ങളുടെ രജിസ്റ്റർ ചെയ്ത വ്യാപാരമുദ്രയാണ്.

2018 സെപ്റ്റംബർ 24-ന് അപ്ഡേറ്റ് ചെയ്തത്


  1. ലോഗിൻ പേജ് ഉപയോഗിച്ച് ബിൽറ്റ്-ഇൻ ബ്രൗസർ തുറക്കുന്നു
  2. അവകാശങ്ങൾ അനുവദിച്ചിട്ടുണ്ടെന്ന് സ്ഥിരീകരിക്കാൻ ഉപയോക്താവിനോട് ആവശ്യപ്പെടുന്നു.
  3. ഉപയോക്താവ് സമ്മതിക്കുകയാണെങ്കിൽ, ബ്രൗസർ ഒരു അപൂർണ്ണ പേജിലേക്ക് റീഡയറക്‌ടുചെയ്യും (#-ന് ശേഷം) URL ചേർത്തിരിക്കുന്നു പ്രവേശന ടോക്കൺ
  4. ആപ്ലിക്കേഷൻ റീഡയറക്‌ടിനെ തടസ്സപ്പെടുത്തുകയും സ്വീകരിക്കുകയും ചെയ്യുന്നു പ്രവേശന ടോക്കൺപേജ് വിലാസത്തിൽ നിന്ന്
ഈ ഓപ്‌ഷന് അപ്ലിക്കേഷനിൽ ബ്രൗസർ വിൻഡോ ഉയർത്തേണ്ടതുണ്ട്, എന്നാൽ എക്‌സ്‌ചേഞ്ചിനായി സെർവർ ഭാഗവും സെർവർ-ടു-സെർവർ കോളും ആവശ്യമില്ല. അംഗീകാര കോഡ്ഓൺ പ്രവേശന ടോക്കൺ.
ഉദാഹരണം
ലോഗിൻ പേജ് ഉപയോഗിച്ച് ബ്രൗസർ തുറക്കുക:
> GET /oauth/authorize?response_type=token&client_id=464119 HTTP/1.1 > ഹോസ്റ്റ്: connect.mail.ru

ഉപയോക്താവ് അനുമതികൾ നൽകിയ ശേഷം, ഒരു സാധാരണ അപൂർണ്ണ പേജിലേക്ക് ഒരു റീഡയറക്‌ട് സംഭവിക്കുന്നു, Mail.Ru-യ്‌ക്ക് ഇത് connect.mail.ru/oauth/success.html:
< HTTP/1.1 302 Found < Location: http://connect.mail.ru/oauth/success.html#access_token=FJQbwq9&token_type=bearer& expires_in=86400&refresh_token=yaeFa0gu

അപേക്ഷ അവസാന റീഡയറക്‌ടിനെ തടസ്സപ്പെടുത്തുകയും വിലാസത്തിൽ നിന്ന് നേടുകയും വേണം ആക്സസ്_ടോക്കൺസംരക്ഷിത ഉറവിടങ്ങൾ ആക്സസ് ചെയ്യാൻ ഇത് ഉപയോഗിക്കുക.

ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ വഴിയുള്ള അംഗീകാരം

ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ മുഖേനയുള്ള അംഗീകാരം ഒരു ലളിതമായ POST അഭ്യർത്ഥനയാണ്, അതിന്റെ ഫലമായി അത് തിരികെ വരുന്നു പ്രവേശന ടോക്കൺ. ഈ സ്കീം പുതുമയുള്ളതല്ല, എന്നാൽ പൊതുവായതിനായുള്ള സ്റ്റാൻഡേർഡിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, മറ്റ് അംഗീകാര ഓപ്ഷനുകൾ ലഭ്യമല്ലാത്തപ്പോൾ മാത്രം ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.
ഉദാഹരണം
> POST /oauth/token HTTP/1.1 > ഹോസ്റ്റ്: connect.mail.ru > ഉള്ളടക്ക-തരം: application/x-www-form-urlencoded > > grant_type=password&client_id=31337&client_secret=deadbeef&username=api@corp.mail.ru& password qwerty< HTTP/1.1 200 OK < Content-Type: application/json < < { < "access_token":"SlAV32hkKG", < "token_type":"bearer", < "expires_in":86400, < "refresh_token":"8xLOxBtZp8", < }
സ്പെസിഫിക്കേഷനിലെ വിവരണം

മുൻ അംഗീകാരം പുനഃസ്ഥാപിക്കുന്നു

സാധാരണയായി, പ്രവേശന ടോക്കൺപരിമിതമായ ഷെൽഫ് ലൈഫ് ഉണ്ട്. ഇത് ഉപയോഗപ്രദമാകും, ഉദാഹരണത്തിന്, ഇത് തുറന്ന ചാനലുകളിലൂടെ കൈമാറുകയാണെങ്കിൽ. കാലഹരണപ്പെട്ടതിന് ശേഷം ലോഗിൻ ചെയ്യാൻ ഉപയോക്താവിനെ നിർബന്ധിക്കുന്നത് ഒഴിവാക്കാൻ പ്രവേശന ടോക്കൺ"കൂടാതെ, മുകളിലുള്ള എല്ലാ ഓപ്ഷനുകളിലും, കൂടാതെ പ്രവേശന ടോക്കൺ"ഒരുപക്ഷേ വീണ്ടും വന്നേക്കാം ടോക്കൺ പുതുക്കുക. നിങ്ങൾക്ക് അത് ലഭിക്കാൻ ഉപയോഗിക്കാം പ്രവേശന ടോക്കൺഒരു HTTP അഭ്യർത്ഥന ഉപയോഗിച്ച്, ഒരു ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ ഉപയോഗിച്ചുള്ള അംഗീകാരത്തിന് സമാനമാണ്.
ഉദാഹരണം
> POST /oauth/token HTTP/1.1 > ഹോസ്റ്റ്: connect.mail.ru > ഉള്ളടക്ക-തരം: application/x-www-form-urlencoded > > grant_type=refresh_token&client_id=31337&client_secret=deadbeef&refresh_token=8xLOxBtZp8xBt< HTTP/1.1 200 OK < Content-Type: application/json < < { < "access_token":"Uu8oor1i", < "token_type":"bearer", < "expires_in":86400, < "refresh_token":"ohWo1ohr", < }