గమనిక. అనువాదం.: Okta యొక్క ఈ గొప్ప కథనం OAuth మరియు OIDC (OpenID Connect) ఎలా పని చేస్తుందో సరళంగా మరియు స్పష్టంగా వివరిస్తుంది. ఈ జ్ఞానం డెవలపర్లు, సిస్టమ్ అడ్మినిస్ట్రేటర్లు మరియు జనాదరణ పొందిన వెబ్ అప్లికేషన్ల యొక్క "రెగ్యులర్ యూజర్లకు" కూడా ఉపయోగకరంగా ఉంటుంది, ఇవి చాలా వరకు రహస్య డేటాను ఇతర సేవలతో మార్పిడి చేస్తాయి.
ఇంటర్నెట్ రాతి యుగంలో, సేవల మధ్య సమాచారాన్ని పంచుకోవడం సులభం. మీరు మీ లాగిన్ మరియు పాస్వర్డ్ను ఒక సేవ నుండి మరొక సేవకు అందించారు, తద్వారా అతను మీ ఖాతాను నమోదు చేసి, అతనికి అవసరమైన ఏదైనా సమాచారాన్ని స్వీకరించాడు.
"మీ బ్యాంకు ఖాతా నాకు ఇవ్వండి." “పాస్వర్డ్ మరియు డబ్బుతో అంతా బాగానే ఉంటుందని మేము హామీ ఇస్తున్నాము. అది నిజాయితీ, నిజాయితీ!" *హీ హీ*
భయానక! వినియోగదారు పేరు మరియు పాస్వర్డ్ను షేర్ చేయమని ఎవరూ కోరకూడదు, ఆధారాలు, మరొక సేవతో. ఈ సేవ వెనుక ఉన్న సంస్థ డేటాను సురక్షితంగా ఉంచుతుందని మరియు అవసరమైన దానికంటే ఎక్కువ వ్యక్తిగత సమాచారాన్ని సేకరించదని ఎటువంటి హామీ లేదు. ఇది పిచ్చిగా అనిపించవచ్చు, కానీ కొన్ని యాప్లు ఇప్పటికీ ఈ అభ్యాసాన్ని ఉపయోగిస్తాయి!
నేడు ఒక సేవ మరొకరి డేటాను సురక్షితంగా ఉపయోగించడానికి అనుమతించే ఒకే ప్రమాణం ఉంది. దురదృష్టవశాత్తు, ఇటువంటి ప్రమాణాలు చాలా పరిభాష మరియు నిబంధనలను ఉపయోగిస్తాయి, ఇది వారి అవగాహనను క్లిష్టతరం చేస్తుంది. ఈ మెటీరియల్ యొక్క ఉద్దేశ్యం సాధారణ దృష్టాంతాలను ఉపయోగించి అవి ఎలా పని చేస్తాయో వివరించడం (నా డ్రాయింగ్లు పిల్లలను అబ్బురపరిచేలా ఉన్నాయని మీరు అనుకుంటున్నారా? ఓహ్!).
మార్గం ద్వారా, ఈ గైడ్ వీడియో ఆకృతిలో కూడా అందుబాటులో ఉంది:
లేడీస్ అండ్ జెంటిల్మెన్, స్వాగతం: OAuth 2.0
OAuth 2.0 ఒక అప్లికేషన్ మరొక అప్లికేషన్లో సమాచారాన్ని యాక్సెస్ చేయడానికి అనుమతిని పొందేందుకు అనుమతించే భద్రతా ప్రమాణం. అనుమతిని జారీ చేయడానికి దశల క్రమం [అనుమతి] (లేదా సమ్మతి[సమ్మతి]) తరచుగా కాల్ చేయండి అధికారం[అధికారం] లేదా కూడా అధికారాన్ని అప్పగించారు[ప్రతినిధి అధికారం]. ఈ ప్రమాణంతో, మీరు మీ పాస్వర్డ్ను ఇవ్వకుండా మీ తరపున డేటాను చదవడానికి లేదా మరొక అప్లికేషన్ యొక్క ఫంక్షన్లను ఉపయోగించడానికి అప్లికేషన్ను అనుమతిస్తారు. తరగతి!
ఉదాహరణగా, మీరు "అన్లక్కీ పన్ ఆఫ్ ది డే" అనే సైట్ని కనుగొన్నారని అనుకుందాం. [రోజు యొక్క భయంకరమైన పన్] మరియు ఫోన్లో టెక్స్ట్ సందేశాల రూపంలో రోజువారీ పన్లను స్వీకరించడానికి దానిపై నమోదు చేయాలని నిర్ణయించుకుంది. మీరు సైట్ను నిజంగా ఇష్టపడ్డారు మరియు మీ స్నేహితులందరితో దీన్ని భాగస్వామ్యం చేయాలని నిర్ణయించుకున్నారు. అన్నింటికంటే, ప్రతి ఒక్కరూ గగుర్పాటు కలిగించే పన్లను ఇష్టపడతారు, సరియైనదా?
“రోజు దురదృష్టకర పన్: తన శరీరంలోని ఎడమ సగం కోల్పోయిన వ్యక్తి గురించి విన్నారా? ఇప్పుడు అతను ఎల్లప్పుడూ సరైనవాడు! ” (సుమారు అనువాదం, ఎందుకంటే అసలు దాని స్వంత శ్లేషను కలిగి ఉంది - సుమారుగా. అనువాదం.)
సంప్రదింపు జాబితా నుండి ప్రతి వ్యక్తికి వ్రాయడం ఒక ఎంపిక కాదని స్పష్టమైంది. మరియు, మీరు నాలాంటి వారైతే, అనవసరమైన పనిని నివారించడానికి మీరు ఎంతకైనా తెగిస్తారు. అదృష్టవశాత్తూ, భయంకరమైన పన్ ఆఫ్ ది డే మీ స్నేహితులందరినీ స్వయంగా ఆహ్వానించగలదు! దీన్ని చేయడానికి, మీరు మీ పరిచయాల ఇమెయిల్కు ప్రాప్యతను తెరవాలి - సైట్ స్వయంగా వారికి ఆహ్వానాలను పంపుతుంది (OAuth నియమాలు)!
“ప్రతి ఒక్కరూ పన్లను ఇష్టపడతారు! - ఇప్పటికే లాగిన్ అయ్యారా? “మీరు మీ సంప్రదింపు జాబితాను యాక్సెస్ చేయడానికి టెరిబుల్ పన్ ఆఫ్ ది డే వెబ్సైట్ను అనుమతించాలనుకుంటున్నారా? - ధన్యవాదాలు! ఇప్పటి నుండి, మేము మీకు తెలిసిన ప్రతి ఒక్కరికీ, సమయం ముగిసే వరకు ప్రతిరోజూ రిమైండర్లను పంపుతాము! నువ్వే బెస్ట్ ఫ్రెండ్!"
మీ ఇమెయిల్ సేవను ఎంచుకోండి.
అవసరమైతే, మెయిల్ సైట్కి వెళ్లి, మీ ఖాతాకు సైన్ ఇన్ చేయండి.
మీ పరిచయాలను యాక్సెస్ చేయడానికి డేరిబుల్ పన్ ఆఫ్ ది డే అనుమతిని ఇవ్వండి.
డేరిబుల్ పన్ ఆఫ్ ది డే సైట్కి తిరిగి వెళ్ళు.
ఒకవేళ మీరు మీ మనసు మార్చుకుంటే, OAuthని ఉపయోగించే అప్లికేషన్లు యాక్సెస్ని ఉపసంహరించుకోవడానికి కూడా ఒక మార్గాన్ని అందిస్తాయి. మీరు టెరిబుల్ పన్ ఆఫ్ ది డేతో పరిచయాలను భాగస్వామ్యం చేయకూడదని మీరు నిర్ణయించుకున్న తర్వాత, మీరు మెయిల్ సైట్కి వెళ్లి, అధీకృత అప్లికేషన్ల జాబితా నుండి పన్ సైట్ను తీసివేయవచ్చు.
OAuth ఫ్లో
మేము సాధారణంగా పిలవబడే దాని ద్వారా వెళ్ళాము ప్రవాహం[ప్రవాహం] OAuth. మా ఉదాహరణలో, ఈ ప్రవాహం కనిపించే దశలను, అలాగే అనేక అదృశ్య దశలను కలిగి ఉంటుంది, ఇందులో రెండు సేవలు సురక్షితమైన సమాచార మార్పిడికి అంగీకరిస్తాయి. మునుపటి భయంకరమైన పన్ ఆఫ్ ది డే ఉదాహరణ "ఆథరైజేషన్ కోడ్" ఫ్లోగా పిలువబడే అత్యంత సాధారణ OAuth 2.0 ఫ్లోను ఉపయోగిస్తుంది. ["అధికార కోడ్" ప్రవాహం].
OAuth ఎలా పనిచేస్తుందనే వివరాలను తెలుసుకునే ముందు, కొన్ని నిబంధనల అర్థం గురించి మాట్లాడుకుందాం:
వనరుల యజమాని:
అది నువ్వే! మీరు మీ ఆధారాలను, మీ డేటాను కలిగి ఉంటారు మరియు మీ ఖాతాలలో నిర్వహించబడే అన్ని కార్యకలాపాలను నియంత్రించండి.
క్లయింట్:
ఒక అప్లికేషన్ (ఉదాహరణకు, టెరిబుల్ పన్ ఆఫ్ ది డే సర్వీస్) తరపున నిర్దిష్ట చర్యలను యాక్సెస్ చేయాలనుకునే లేదా చేయాలనుకుంటున్నారు వనరుల యజమాని'ఎ.
అధికార సర్వర్:
తెలిసిన అప్లికేషన్ వనరుల యజమాని'a మరియు దీనిలో u వనరుల యజమాని'ఇప్పటికే ఖాతా ఉంది.
వనరుల సర్వర్:
అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్ఫేస్ (API) లేదా సేవ క్లయింట్ తరపున ఉపయోగించాలనుకుంటున్నారు వనరుల యజమాని'ఎ.
URIని దారి మళ్లించండి:
ఆ లింక్ అధికార సర్వర్ దారి మళ్లిస్తుంది వనరుల యజమాని'మరియు అనుమతి మంజూరు చేసిన తర్వాత క్లయింట్వద్ద. ఇది కొన్నిసార్లు "కాల్బ్యాక్ URL"గా సూచించబడుతుంది.
ప్రతిస్పందన రకం:
అందుతుందని ఆశించిన రకం సమాచారం క్లయింట్. అత్యంత సాధారణమైన ప్రతిస్పందన రకం'ఓం అనేది కోడ్, అంటే క్లయింట్ అందుకోవాలని ఆశిస్తోంది అధికారిక కోడ్.
స్కోప్:
ఇది అవసరమైన అనుమతుల యొక్క వివరణాత్మక వివరణ క్లయింట్'y, డేటాను యాక్సెస్ చేయడం లేదా నిర్దిష్ట చర్యలను చేయడం వంటివి.
సమ్మతి:
అధికార సర్వర్ గుండ్రని టోపీ స్కోప్స్అభ్యర్థించారు క్లయింట్'ఓం, మరియు అడుగుతుంది వనరుల యజమాని'a, అతను అందించడానికి సిద్ధంగా ఉన్నాడా? క్లయింట్'తగిన అనుమతులను కలిగి ఉండండి.
కస్టమర్ ఐడి:
గుర్తించడానికి ఈ ID ఉపయోగించబడుతుంది క్లయింట్'ఒక ఆన్ అధికార సర్వర్'ఇ.
క్లయింట్ సీక్రెట్:
ఇది మాత్రమే తెలిసిన పాస్వర్డ్ క్లయింట్'u మరియు అధికార సర్వర్వద్ద. ఇది సమాచారాన్ని ప్రైవేట్గా పంచుకోవడానికి వారిని అనుమతిస్తుంది.
అధికారిక కోడ్:
స్వల్ప వ్యవధి చెల్లుబాటుతో తాత్కాలిక కోడ్, ఇది క్లయింట్ ఇది అందిస్తుంది అధికార సర్వర్బదులుగా 'y టోకెన్ను యాక్సెస్ చేయండి.
టోకెన్ను యాక్సెస్ చేయండి:
క్లయింట్ కమ్యూనికేట్ చేయడానికి ఉపయోగించే కీ వనరుల సర్వర్'ఓం. అందించే ఒక విధమైన బ్యాడ్జ్ లేదా కీ కార్డ్ క్లయింట్'డేటాను అభ్యర్థించడానికి లేదా చర్యలను నిర్వహించడానికి అనుమతిని కలిగి ఉండండి వనరుల సర్వర్మీ తరపున ఇ.
వ్యాఖ్య: కొన్నిసార్లు ఆథరైజేషన్ సర్వర్ మరియు రిసోర్స్ సర్వర్ ఒకే సర్వర్. అయితే, కొన్ని సందర్భాల్లో, ఇవి ఒకే సంస్థకు చెందినవి కాకపోయినా వేర్వేరు సర్వర్లు కావచ్చు. ఉదాహరణకు, ఆథరైజేషన్ సర్వర్ అనేది రిసోర్స్ సర్వర్ ద్వారా విశ్వసించబడే మూడవ పక్ష సేవ కావచ్చు.
ఇప్పుడు మేము OAuth 2.0 యొక్క ప్రధాన భావనలను కవర్ చేసాము, మన ఉదాహరణకి తిరిగి వెళ్లి OAuth ఫ్లోలో ఏమి జరుగుతుందో నిశితంగా పరిశీలిద్దాం.
మీరు, వనరుల యజమాని, మీరు టెరిబుల్ పన్ ఆఫ్ ది డే సేవను అందించాలనుకుంటున్నారు (క్లయింట్y) మీ పరిచయాలకు యాక్సెస్, తద్వారా వారు మీ స్నేహితులందరికీ ఆహ్వానాలను పంపగలరు.
క్లయింట్ బ్రౌజర్ని పేజీకి దారి మళ్లిస్తుంది అధికార సర్వర్'a మరియు ప్రశ్నలో చేర్చండి కస్టమర్ ఐడి, URIని దారి మళ్లించండి, ప్రతిస్పందన రకం మరియు ఒకటి లేదా అంతకంటే ఎక్కువ స్కోప్స్ (అనుమతులు) దీనికి అవసరం.
అధికార సర్వర్ మిమ్మల్ని ధృవీకరిస్తుంది, అవసరమైతే వినియోగదారు పేరు మరియు పాస్వర్డ్ను అడుగుతుంది.
అధికార సర్వర్ ఒక రూపాన్ని ప్రదర్శిస్తుంది సమ్మతి (నిర్ధారణలు) అందరి జాబితాతో స్కోప్స్అభ్యర్థించారు క్లయింట్'ఓం. మీరు అంగీకరిస్తున్నారు లేదా తిరస్కరించారు.
అధికార సర్వర్ మిమ్మల్ని సైట్కి దారి మళ్లిస్తుంది క్లయింట్'a, ఉపయోగించి URIని దారి మళ్లించండి కలిసి అధికారిక కోడ్ (అధికారిక కోడ్).
క్లయింట్ నేరుగా కమ్యూనికేట్ చేస్తుంది అధికార సర్వర్'ఓమ్ (బ్రౌజర్ను దాటవేయడం వనరుల యజమాని'a) మరియు సురక్షితంగా పంపుతుంది కస్టమర్ ఐడి, క్లయింట్ సీక్రెట్ и అధికారిక కోడ్.
అధికార సర్వర్ డేటాను తనిఖీ చేస్తుంది మరియు ప్రతిస్పందిస్తుంది టోకెన్ను యాక్సెస్ చేయండి'ఓం (యాక్సెస్ టోకెన్).
ఇప్పుడు క్లయింట్ ఉపయెాగించవచ్చు టోకెన్ను యాక్సెస్ చేయండి ఒక అభ్యర్థనను పంపడానికి వనరుల సర్వర్ పరిచయాల జాబితాను పొందడానికి.
క్లయింట్ ID మరియు రహస్యం
మీరు మీ పరిచయాలను యాక్సెస్ చేయడానికి టెరిబుల్ పన్ ఆఫ్ ది డేని అనుమతించడానికి చాలా కాలం ముందు, క్లయింట్ మరియు ఆథరైజేషన్ సర్వర్ పని సంబంధాన్ని ఏర్పరుచుకుంది. ఆథరైజేషన్ సర్వర్ క్లయింట్ ID మరియు క్లయింట్ రహస్యాన్ని రూపొందించింది (కొన్నిసార్లు అంటారు అనువర్తన ID и యాప్ రహస్యం) మరియు OAuthలో తదుపరి పరస్పర చర్య కోసం వాటిని క్లయింట్కు పంపారు.
"- హలో! నేను మీతో కలిసి పని చేయాలనుకుంటున్నాను! - ఖచ్చితంగా, సమస్య కాదు! మీ క్లయింట్ ID మరియు రహస్యం ఇక్కడ ఉన్నాయి!"
క్లయింట్ సీక్రెట్ తప్పనిసరిగా రహస్యంగా ఉంచబడాలని పేరు సూచిస్తుంది, తద్వారా క్లయింట్ మరియు ఆథరైజేషన్ సర్వర్కు మాత్రమే తెలుస్తుంది. అన్నింటికంటే, అతని సహాయంతో ఆథరైజేషన్ సర్వర్ క్లయింట్ యొక్క సత్యాన్ని నిర్ధారిస్తుంది.
అయితే అంతే కాదు... దయచేసి OpenID Connectకు స్వాగతం!
OAuth 2.0 కోసం మాత్రమే రూపొందించబడింది అధికారం - ఒక అప్లికేషన్ నుండి మరొకదానికి డేటా మరియు ఫంక్షన్లకు యాక్సెస్ అందించడానికి. OpenID కనెక్ట్ (OIDC) అనేది OAuth 2.0 పైన ఉన్న పలుచని పొర, ఇది ఖాతాలోకి లాగిన్ అయిన వినియోగదారు యొక్క లాగిన్ మరియు ప్రొఫైల్ వివరాలను జోడిస్తుంది. లాగిన్ సెషన్ యొక్క సంస్థను తరచుగా సూచిస్తారు ప్రమాణీకరణ[ధృవీకరణ], మరియు సిస్టమ్లోకి లాగిన్ చేసిన వినియోగదారు గురించిన సమాచారం (అంటే వనరుల యజమాని'ఇ), - వ్యక్తిగత సమాచారం[గుర్తింపు]. ఆథరైజేషన్ సర్వర్ OIDCకి మద్దతిస్తే, అది కొన్నిసార్లు ఇలా సూచించబడుతుంది వ్యక్తిగత డేటా ప్రొవైడర్[గుర్తింపు ప్రదాత]ఎందుకంటే అది అందిస్తుంది క్లయింట్' గురించి సమాచారం ఉంది వనరుల యజమాని'ఇ.
బహుళ అప్లికేషన్లలో ఒకే లాగిన్ని ఉపయోగించగల దృశ్యాలను అమలు చేయడానికి OpenID కనెక్ట్ మిమ్మల్ని అనుమతిస్తుంది - ఈ విధానాన్ని ఇలా కూడా పిలుస్తారు ఒకే సైన్-ఆన్ (SSO). ఉదాహరణకు, ఒక అప్లికేషన్ Facebook లేదా Twitter వంటి సోషల్ నెట్వర్క్లతో SSO ఏకీకరణకు మద్దతు ఇస్తుంది, వినియోగదారులు ఇప్పటికే కలిగి ఉన్న ఖాతాను ఉపయోగించడానికి మరియు ఉపయోగించడానికి ఇష్టపడతారు.
ఫ్లో (ఫ్లో) OpenID Connect OAuth విషయంలో వలె కనిపిస్తుంది. ఒకే తేడా ఏమిటంటే, ప్రాథమిక అభ్యర్థనలో, నిర్దిష్ట స్కోప్ ఉపయోగించబడింది openid, - ఎ క్లయింట్ చివరికి ఇష్టం వస్తుంది టోకెన్ను యాక్సెస్ చేయండి, మరియు ID టోకెన్.
OAuth ప్రవాహంలో వలె, టోకెన్ను యాక్సెస్ చేయండి OpenID Connectలో, ఇది స్పష్టంగా లేని కొంత విలువ క్లయింట్వద్ద. దృక్కోణం నుండి క్లయింట్'ఎ టోకెన్ను యాక్సెస్ చేయండి ప్రతి అభ్యర్థనతో పాటు పంపబడే అక్షరాల స్ట్రింగ్ను సూచిస్తుంది వనరుల సర్వర్'y, ఇది టోకెన్ చెల్లుబాటులో ఉందో లేదో నిర్ణయిస్తుంది. ID టోకెన్ పూర్తిగా భిన్నమైన విషయాన్ని సూచిస్తుంది.
ID టోకెన్ JWT
ID టోకెన్ JSON వెబ్ టోకెన్ లేదా JWT అని పిలవబడే అక్షరాల యొక్క ప్రత్యేకంగా ఫార్మాట్ చేయబడిన స్ట్రింగ్ (కొన్నిసార్లు JWT టోకెన్లు "జోట్స్" లాగా ఉచ్ఛరిస్తారు). బయటి పరిశీలకులకు, JWT అపారమయిన గాఢంగా అనిపించవచ్చు, కానీ క్లయింట్ JWT నుండి ID, వినియోగదారు పేరు, లాగిన్ సమయం, గడువు తేదీ వంటి వివిధ సమాచారాన్ని సంగ్రహించవచ్చు ID టోకెన్'a, JWTతో జోక్యం చేసుకునే ప్రయత్నాల ఉనికి. లోపల డేటా ID టోకెన్'అ అంటారు అప్లికేషన్లు[క్లెయిమ్లు].
OIDC విషయంలో, ఒక ప్రామాణిక మార్గం కూడా ఉంది క్లయింట్ వ్యక్తి గురించి అదనపు సమాచారాన్ని అభ్యర్థించవచ్చు [గుర్తింపు] от అధికార సర్వర్'a, ఉదాహరణకు, ఉపయోగించిన ఇమెయిల్ చిరునామా టోకెన్ను యాక్సెస్ చేయండి.
OAuth మరియు OIDC గురించి మరింత తెలుసుకోండి
కాబట్టి, OAuth మరియు OIDC ఎలా పని చేస్తాయో మేము క్లుప్తంగా సమీక్షించాము. లోతుగా త్రవ్వడానికి సిద్ధంగా ఉన్నారా? OAuth 2.0 మరియు OpenID కనెక్ట్ గురించి మరింత తెలుసుకోవడానికి మీకు సహాయపడే అదనపు వనరులు ఇక్కడ ఉన్నాయి: