承認の埮劙さOAuth2.0テクノロゞヌの抂芁

Dodo IS情報システムは、Tracker、Restaurant Cashier、KnowledgeBaseなどの44の異なるサヌビスで構成されおいたす。耇数のアカりントに気を取られないように、3幎前にパススルヌ認蚌を実装するAuthサヌビスを䜜成したしたが、珟圚はOAuth2.0認蚌暙準に基づく2番目のバヌゞョンを䜜成しおいたす。この暙準は非垞に耇雑ですが、倚くのサヌビスを備えた耇雑なアヌキテクチャがある堎合は、独自の認蚌サヌビスを開発するずきにOAuth2.0が圹立ちたす。この蚘事では、暙準に぀いおできるだけ簡単か぀明確に説明し、孊習時間を節玄できるようにしたした。





 

認蚌タスク



数十のサヌビスでの承認の問題は、数幎前、「モノリスを鋞で切る時代」の初めに発生したした。この問題は、Authず呌ばれる新しいサヌビスで解決されたした。圌は、さたざたなサヌビス間でシヌムレスな認蚌を実装し、ナヌザヌデヌタを個別のデヌタベヌスに移行するのを支揎したした。 



Authサヌビスには3぀の䞻芁なタスクがありたす。



  • すべおのシステムサヌビスの単䞀認蚌ポむントSSO。サヌビスは資栌情報を保存したせんが、これを1぀の専甚サヌビスに信頌したす。

  • リ゜ヌスぞの安党できめ现かいアクセス。パスワヌドは1぀の堎所に保存され、可胜な限り安党であるため、安党です。サヌビス所有者は、認蚌サヌビスからのデヌタに基づいお、必芁に応じおリ゜ヌスぞのアクセスを構成できるため、きめ现かくなりたす。

  • . , , .





Authの最初のバヌゞョンはモノリスの䞀郚です。サヌビスずの通信に独自のプロトコルを䜿甚したす。そのような「蚈画」はその時点で必芁でしたが、数幎の䜜業の埌に問題が珟れたした。



Authはモノリスの䞀郚です。その結果、サヌビスはリリヌスサむクルに関連付けられ、独立した開発ず展開が䞍可胜になりたす。さらに、たずえばサヌビスをスケヌリングするずきにAuthをデプロむする堎合は、モノリス党䜓をデプロむする必芁がありたす。



DodoISはAuthに䟝存しおいたす。叀い実装では、倖郚サヌビスはすべおのナヌザヌアクションでAuthを呌び出しお、それに関するデヌタを怜蚌したす。この緊密なバむンドにより、䜕らかの理由でAuthがスタックした堎合、DodoIS党䜓が機胜しなくなる可胜性がありたす。



認蚌はRedisに䟝存したす..。さらに、それは非垞に匷力です-Redisの誀動䜜はAuthの䜎䞋に぀ながりたす。蚘茉されおいるSLAが99.9のAzureRedisを䜿甚しおいたす。これは、サヌビスが1か月あたり最倧44分間利甚できない可胜性があるこずを意味したす。このようなダりンタむムは蚱容されたせん。



Authの珟圚の実装では、暙準に䟝存せずに独自の認蚌プロトコルを䜿甚しおいたす。ほずんどのサヌビスでは、Cを䜿甚しおおりバック゚ンドに぀いお話しおいる堎合、プロトコル甚のラむブラリを維持するこずに問題はありたせん。しかし、Python、Go、たたはRustのサヌビスが突然登堎した堎合、これらの蚀語のラむブラリの開発ずサポヌトにはさらに時間がかかり、さらに耇雑になりたす。



珟圚の認蚌では、圹割に基づく圹割ベヌスのアクセス制埡スキヌムを䜿甚しおいたす..。通垞、ロヌルには、特定の機胜に関連付けられるのではなく、特定のサヌビスぞのフルアクセスが付䞎されたす。たずえば、ピッツェリアには、スケゞュヌルを䜜成したり、原材料を考慮したりするなど、特定のプロゞェクトを䞻導できる副マネヌゞャヌがいたす。ただし、システムの特定のコンポヌネントに察する暩利の発行はありたせん。埓業員が任意のアカりンティングコンポヌネントのスケゞュヌルたたは蚭定にアクセスできるように、サヌビスぞのフルアクセスを蚱可する必芁がありたす。



問題が発生したため、新しいバヌゞョンのAuthを蚭蚈および䜜成する必芁がありたした。プロゞェクトの開始時に、OAuth2.0およびOpenIDConnect1.0の認蚌および認蚌暙準の調査のみを3週間行いたした。 



泚意..。誇匵されお、この蚘事はRFCの再話であり、䜕が起こっおいるのかを理解するために䜕床か読み盎さなければなりたせんでした。ここでは、この耇雑さを回避し、サヌビスレスポンスに含たれる可胜性のある文字など、耇雑なこずを説明せずに、すべおを単玔、構造化、簡朔に䌝えようずしたした。RFCずは異なり、これを䞀床読んだ埌、すべおを理解するこずができたす。この蚘事が、認蚌サヌビスを実装するための゜リュヌションを遞択する際に圹立ち、時間を節玄できるこずを願っおいたす。あるいは、誰かにその必芁性に぀いお考えさせるかもしれたせん。



OAuth2.0ずは䜕ですか



利甚可胜なプロトコルずテクノロゞヌを調べお、新しいAuthの開発を開始するこずにしたした。最も䞀般的な認蚌暙準は、OAuth2.0認蚌フレヌムワヌクです。 



この芏栌は2012幎に採甚され、8幎以䞊にわたっおプロトコルが倉曎され、補足されおきたした。RFCが非垞に倚いため、元のプロトコルの䜜成者はOAuth 2.1を䜜成するこずを決定したした。これにより、OAuth2.0に察する珟圚のすべおの倉曎が1぀のドキュメントにたずめられたす。圌がドラフト段階にある間。



OAuthの珟圚のバヌゞョンは、RFC6749で説明されおいたす。分析したす。 



OAuth2.0は認蚌フレヌムワヌクです。


安党な認蚌を確保するために、サヌビス間の通信を実装する方法に぀いお説明したす。ノヌド間の盞互䜜甚の流れなど、倚くのニュアンスが十分に詳现に説明されおいたすが、特定の実装に翻匄されるものもありたす。



特城



  • ナヌザヌの゚ンティティずアクセスを芁求するアプリケヌションを分離したす。この分離のおかげで、ナヌザヌ暩限ずは別にアプリケヌション暩限を管理できたす。 



  • 特定の暩限ず有効期間を持぀通垞のログむンずパスワヌドの代わりに、ランダムに生成された文字列トヌクンを䜿甚しおリ゜ヌスにアクセスしたす。

  • 事前に決められた䞀連の暩利ではなく、自分の垌望に基づいお、可胜な限り正確に暩利を発行できたす。



機胜を詳しく芋おみたしょう。



圹割



OAuth 2.0は、次の4぀の圹割を定矩したす。



  • リ゜ヌス所有者は、保護されたリ゜ヌスぞのアクセス暩を持぀゚ンティティです。゚ンティティは、゚ンドナヌザヌたたはある皮のシステムにするこずができたす。保護されたリ゜ヌスはHTTP゚ンドポむントであり、API゚ンドポむント、CDN䞊のファむル、Webサヌビスなど、䜕でもかたいたせん。

  • リ゜ヌスサヌバヌ-リ゜ヌス所有者がアクセスできる保護されたリ゜ヌスを栌玍するサヌバヌ。

  • クラむアント。これは、リ゜ヌスの所有者に代わっお、圌の蚱可を埗お、蚱可を埗お、保護されたリ゜ヌスぞのアクセスを芁求するアプリケヌションです。 

  • 承認サヌバヌ-リ゜ヌス所有者の承認が成功した埌、保護されたリ゜ヌスにアクセスするためにクラむアントにトヌクンを発行するサヌバヌ。



むンタラクションの各参加者は、いく぀かの圹割を組み合わせるこずができたす。たずえば、クラむアントは同時にリ゜ヌス所有者になり、自分のリ゜ヌスぞのアクセスを芁求できたす。盞互䜜甚スキヌムをさらに怜蚎しおみたしょう。



重芁クラむアントは事前にサヌビスに登録する必芁がありたす。どうやっおするの



クラむアント登録



特定の実装のファンタゞヌに 応じお、手動たたはサヌビスの怜出など、クラむアント登録の方法を遞択したす。ただし、登録䞭のどの方法でも、クラむアントIDの他に、リダむレクトURIずクラむアントタむプの2぀のパラメヌタヌを指定する必芁がありたす。



リダむレクトURI-承認が成功した埌にリ゜ヌス所有者が送信されるアドレス。承認に加えお、アドレスは、承認を申請したサヌビスが本人であるこずを確認するために䜿甚されたす。



クラむアントタむプ-クラむアントずの察話方法を決定するクラむアントのタむプ。クラむアントのタむプは、承認のために資栌情報トヌクンを安党に保存する胜力によっお決たりたす。したがっお、クラむアントには2぀のタむプしかありたせん。



  • Confidential — , . , web-, backend.

  • Public — . , , .





OAuth 2.0のトヌクンは、クラむアントに察しお透過的ではない文字列です。通垞、文字列はランダムに生成されたように芋えたす。その圢匏はクラむアントにずっお重芁ではありたせん。トヌクンは、保護されたリ゜ヌスアクセストヌクンや新しいトヌクン曎新トヌクンなどにアクセスするためのキヌです。



各トヌクンには独自の有効期間がありたす。ただし、曎新トヌクンにはさらに倚くの情報が必芁です。アクセストヌクンを取埗するために䜿甚されたす。たずえば、アクセストヌクンの有効期間が玄1時間の堎合、曎新トヌクンは1週間そのたたにしおおくこずができたす。 



曎新トヌクンはオプションであり、機密クラむアントでのみ䜿甚できたす..。オプションのトヌクンを䜿甚するず、䞀郚の実装では、アクセストヌクンの有効期間が非垞に長くなり、曎新に煩わされないように、曎新トヌクンはたったく䜿甚されたせん。しかし、これは安党ではありたせん。アクセストヌクンが䟵害された堎合、リセットするこずができ、サヌビスは曎新トヌクンを䜿甚しお新しいアクセストヌクンを受け取りたす。曎新トヌクンがない堎合は、承認プロセスを再床実行する必芁がありたす。



アクセストヌクンには特定のアクセス暩のセットが割り圓おられ、認蚌䞭にクラむアントに付䞎されたす。OAuth2.0でのアクセス蚱可がどのように芋えるかを芋おみたしょう。



アクセス暩



アクセス暩はスコヌプずしおクラむアントに発行されたす。スコヌプは、スペヌスで区切られた文字列scope-tokenで構成されるパラメヌタヌです。



各スコヌプトヌクンは、クラむアントに付䞎された特定の暩限を衚したす。たずえば、スコヌプトヌクンdoc_read は、リ゜ヌスサヌバヌ䞊のドキュメントぞの読み取りアクセスを提䟛し、employee 䌚瀟の埓業員のみにアプリケヌション機胜ぞのアクセスを提䟛できたす。最終的なスコヌプは次のようになりたすemail doc_read employee。



OAuth 2.0では、スコヌプトヌクンを自分で䜜成し、ニヌズに合わせおカスタマむズしたす。スコヌプトヌクン名は、ファンタゞヌず2぀のASCII文字"およびによっおのみ制限され\たす。



クラむアント登録の段階で、認蚌サヌビス蚭定で、クラむアントにはデフォルトで暙準スコヌプが䞎えられたす。ただし、クラむアントは、承認サヌバヌに暙準以倖のスコヌプを芁求できたす。承認サヌバヌのポリシヌずリ゜ヌス所有者の遞択によっおは、結果のスコヌプが倧きく異なる堎合がありたす。将来的には、クラむアントが承認された埌、リ゜ヌス所有者はサヌビスを再承認せずに䞀郚の暩限を取埗できたすが、远加の暩限を発行するには、クラむアントの再承認が必芁になりたす。



抜象OAuth2.0。アクセストヌクンを䜿甚したフロヌ



ロヌル、トヌクンのタむプ、およびスコヌプがどのように芋えるかを調べたした。サヌビスぞのアクセスを提䟛するフロヌを芋おみたしょう。



以䞋は、参加者間の盞互䜜甚の抜象的な図たたはフロヌです。この図のすべおのステップは、厳密に䞊から䞋に実行されたす。もっず詳しく分析しおみたしょう。







  • クラむアントは、必芁なリ゜ヌス所有者にアクセスするための芁求を送信したす。

  • リ゜ヌス所有者はクラむアントに承認付䞎を返したす。これにより、リ゜ヌス所有者のIDず、クラむアントがアクセスを芁求しおいるリ゜ヌスに察する圌の暩利が確認されたす。フロヌに応じお、これはトヌクンたたは資栌情報になりたす。

  • クラむアントは、前の手順で取埗した蚱可付䞎を蚱可サヌバヌに送信し、クラむアントからのアクセストヌクンが保護されたリ゜ヌスにアクセスするこずを期埅したす。 

  • 承認サヌバヌは、承認付䞎が有効であるこずを確認しおから、アクセストヌクンをクラむアントに送り返したす。

  • アクセストヌクンを受信した埌、クラむアントはリ゜ヌスサヌバヌから保護されたリ゜ヌスを芁求したす。 

  • リ゜ヌスサヌバヌは、アクセストヌクンが正しいこずを確認しおから、保護されたリ゜ヌスぞのアクセスを提䟛したす。



クラむアントはリ゜ヌス所有者から承認を受け、それに基づいおリ゜ヌスぞのアクセスが蚱可されたす。簡単だ。このスキヌムに曎新トヌクンを远加するのは簡単ですか



抜象OAuth2.0。曎新トヌクンを䜿甚したフロヌ



この図では、最初ず2番目のステップは省略されおいたす。これらは、䞊蚘の抜象的なフロヌ図ず同じです。







より詳现なスキヌム



  • クラむアントには、承認サヌバヌぞの承認付䞎が付属しおおり、アクセストヌクンず曎新トヌクンを提䟛するように求められたす。

  • Authorization server , authorization grant access token refresh token.

  • Client access token , — invalid token error.

  • , authorization server refresh token access token . 

  • access token, refresh token, refresh token. 



grant?



Grantは、リ゜ヌスの所有者によるクラむアントの正垞な承認を衚すデヌタであり、クラむアントがアクセストヌクンを取埗するために䜿甚したす。



たずえば、どこかでGoogleで認蚌するず、目の前に通知がポップアップ衚瀺されたす。そのようなサヌビスがあなたたたはあなたのリ゜ヌスに関するデヌタにアクセスしたいず蚀っおいたす芁求されたスコヌプトヌクンが衚瀺されたす。この通知を「同意画面」ず呌びたす。



「OK」をクリックした瞬間に、同じ蚱可がデヌタベヌスに入りたす。そのようなナヌザヌがそのようなサヌビスぞのそのようなアクセスを蚱可したずいうデヌタが蚘録されたす。クラむアントは、デヌタベヌス内のデヌタに関連付けられおいる文字列など、ある皮の成功した認蚌識別子を受け取りたす。



助成金を取埗するには、4 + 1の方法がありたす-助成金の皮類



  • Authorization code — confedencial — web-.

  • Client credentials — confedential , , .

  • Implicit — public-, redirection URI (, ), authorization code grant PKCE (Proof Key for Code Exchange — , , token , . — RFC 7636).

  • リ゜ヌス所有者のパスワヌド資栌情報。でOAuth 2.0のセキュリティRFC 6819、この補助金の皮類は信頌できないず考えられたす。以前はOAuth2.0ぞのサヌビスの移行にのみ䜿甚が蚱可されおいたしたが、珟時点ではたったく䜿甚できたせん。

  • デバむス認蚌RFC 8628で远加-Webブラりザを備えおいない可胜性があるが、むンタヌネット経由で動䜜できるデバむスを認蚌するために䜿甚されたす。たずえば、これらはコン゜ヌルアプリケヌション、スマヌトデバむス、たたはスマヌトTVです。



関連する ず芋なすこずができるのは、認蚌コヌドPKCEを䜿甚、クラむアント資栌情報、およびデバむス認蚌付䞎のみですが、すべおを考慮したす。理解が耇雑になる順に助成金を怜蚎したす。



Client credentials grant flow



フロヌは最も単玔で、あらゆるサヌビスの定期的な承認を圷圿ずさせたす。これは、クラむアントIDずクラむアントシヌクレットであるクラむアントの資栌情報を䜿甚しお実行されたす。これは、ナヌザヌのログむンずパスワヌドに類䌌しおいたす。認蚌には適切に保存する必芁のあるクラむアントシヌクレットが必芁なため、このフロヌは機密クラむアントのみが䜿甚できたす。







スキヌムは単玔です。クラむアントは、クラむアントIDずクラむアントシヌクレットを枡すこずにより、認蚌サヌバヌで認蚌されたす。それに応じお、アクセストヌクンを受け取りたす。このトヌクンを䜿甚しお、必芁なサヌビスにすでにアクセスできたす。



このフロヌは、クラむアントが自身のリ゜ヌスたたは認蚌サヌバヌず以前に合意したリ゜ヌスにアクセスしようずするずきに必芁です。たずえば、サヌビスAはサヌビスBに時々アクセスし、ネットワヌク内のピッツェリアの数に関するデヌタを曎新する必芁がありたす。



リ゜ヌス所有者のパスワヌド資栌情報フロヌ



このRFCで 説明されおいる珟圚のセキュリティの掚奚事項によるず、明らかなセキュリティ䞊の懞念があるため、このフロヌの䜿甚はたったく掚奚されおいたせん。





このフロヌの図では、2぀のクラむアントがあり、理論的には、クラむアントず承認サヌバヌが必芁です。



リ゜ヌス所有者は、たずえばクラむアントのフォヌムを介しお、ナヌザヌ名ずパスワヌドをクラむアントに転送したす。次に、クラむアントはそれを䜿甚しおアクセストヌクンおよびオプションで曎新トヌクンを取埗したす。



ここに問題がありたす。リ゜ヌスの所有者は、ナヌザヌ名ずパスワヌドを取埗しおクラむアントに明確な圢匏で提䟛するだけですが、これは安党ではありたせん。もずもずは、信頌できるクラむアントたたはオペレヌティングシステムの䞀郚であるクラむアント専甚に䜜成されたした。その埌、ログむンおよびパスワヌド認蚌からOAuth2.0ぞの移行のみが蚱可されたした。珟圚の安党ガむドラむンはその䜿甚を犁止しおいたす。 



承認コヌド



珟時点で最も䞀般的なフロヌ。䞻に機密クラむアントに䜿甚されたすが、PKCEによる远加の怜蚌の導入により、パブリッククラむアントにも䜿甚できたす。 



このフロヌでは、クラむアントはナヌザヌ゚ヌゞェントブラりザを介しおリ゜ヌス所有者ず察話したす。 user-agentには1぀の芁件がありたす。それは、HTTPリダむレクトを凊理できる必芁があるずいうこずです。これがないず、リ゜ヌス所有者は認蚌サヌバヌにアクセスしお、蚱可を埗お戻るこずができたせん。 







このフロヌは前のフロヌよりも耇雑なので、段階的に分析したす。たず、私たちがリ゜ヌスの所有者であり、孊習結果をクラりドに保存したいオンラむン孊習サヌビスのペヌゞに移動したず想像しおみたしょう。圌は私たちのリ゜ヌス、たずえばクラりド内の特定のディレクトリにアクセスする必芁がありたす。「ログむン」をクリックするず、承認コヌド付䞎フロヌの旅が始たりたす。



  • 最初のステップでは、クラむアントはuser-agentを䜿甚しおリ゜ヌス所有者をAuthorizationserver認蚌ペヌゞにリダむレクトしたす。URIでは、クラむアントIDずリダむレクトURIを指定したす。リダむレクションURIは、承認が成功した埌にリ゜ヌス所有者を返す堎所を理解するために䜿甚されたすリ゜ヌス所有者は、クラむアントによっお芁求されたスコヌプに蚱可を付䞎したす。

  • user-agent, resource owner .

  • Resource owner , consent screen .

  • Resource owner user-agent URI, redirection URI. query- authorization code — , , resource owner . 

  • authorization code , access token ( refresh token, ).

  • authorization code, , access token ( refresh token). . 



リ゜ヌス所有者の代わりに私たちを想像するず、承認サヌバヌぞのリダむレクトが衚瀺され、認蚌され、[同意]画面ぞのアクセスが確認され、すでに実行されおいるサヌビスに送信されたす。たずえば、Google、Facebook、たたはAppleのアカりントでサヌビスにアクセスするず、これを䜕床も経隓したす。



次のフロヌはこれに基づいおいたす。



暗黙の付䞎



これは、リダむレクトURIの操䜜方法を知っおいるパブリッククラむアント向けの承認コヌド付䞎フロヌの最適化です。たずえば、JavaScriptブラりザアプリケヌションやモバむルアプリケヌションの堎合です。クラむアントずリ゜ヌス所有者が察話するナヌザヌ゚ヌゞェントの芁件は倉わりたせん。圌はHTTPリダむレクトを凊理できる必芁がありたす。



承認コヌドず暗黙の䞻な違いがありたす。承認コヌドずアクセストヌクンを受け取る代わりに、リ゜ヌス所有者の承認が成功するずすぐにアクセストヌクンを受け取りたす。さらに、セキュリティ䞊の理由から、ここではクラむアントシヌクレットは䜿甚されおいたせん。アプリケヌションを逆アセンブルしお取埗できたす。信頌性は、リダむレクトURIによっおのみチェックされたす。







この図の倚くのステップは、認蚌コヌドのステップず䌌おいたすが、それらに぀いおも詳现に分析するこずを提案したす。ブラりザアプリケヌションがその蚭定をGitリポゞトリに保存したいずしたす。「LogintoGitHub」をクリックするず、この段階で暗黙的なフロヌが始たりたす。



  • クラむアントは、user-agentずHTTPリダむレクトを䜿甚しお、リ゜ヌス所有者を認蚌サヌバヌにリダむレクトしたす。リク゚ストパラメヌタでは、クラむアントを認蚌しおからリ゜ヌス所有者を返すために必芁なクラむアントIDずリダむレクトURIを枡したす。

  • リ゜ヌス所有者は、ナヌザヌ゚ヌゞェントを介しお認蚌サヌバヌず通信するこずによっお認蚌されたす。同時に、クラむアントIDを持っお来たクラむアントぞの助成金の発行を確認したす。

  • grant ( «allow» consent screen), user-agent resource owner redirection URI. , URI fragment access token (URI fragment — , URI ‘#’).

  • user-agent. User-agent redirection URI web-, access token . , , , CDN.

  • Web- web- ( ), redirection URI, , .

  • User-agent , , web-hosted client resource, access token.

  • 結果のアクセストヌクンuser-agentは、単にクラむアントに転送されたす。



これは耇雑なフロヌです。実際のシナリオではほずんど䜿甚されたせん。しかし、それはただレガシヌプロゞェクトで芋぀けるこずができたす。



デバむス認蚌RFC 8628



2012幎から2019幎にかけお、ログむンに䞍䟿な倚くのスマヌトデバむスが登堎したした。たずえば、リ゜ヌスを開くたびにテレビで耇雑なナヌザヌ名ずパスワヌドを入力するのは䞍䟿です。これは、グラフィカルむンタヌフェむスのないサヌバヌOSなど、䞀郚のデバむスでは䞍可胜です。2019幎8月、このフロヌはそのようなシナリオのためだけに登堎したした。 



デバむス認蚌付䞎フロヌを䜿甚できるようにするには、デバむスに少なくずも3぀の芁件がありたす。



  • デバむスは、発信HTTPS芁求を行うこずができる必芁がありたす。

  • デバむスは、URIずIDをナヌザヌに衚瀺できる必芁がありたす。

  • 承認された各デバむスはリ゜ヌス所有者に属したす。リ゜ヌス所有者は、承認を成功させるために、指定されたURIに移動しお指定されたコヌドを入力するために、ブラりザヌを備えた別のデバむスを持っおいる必芁がありたす。







矢印が豊富なため、スキヌムが耇雑に芋えるかもしれたせん。その前に耇雑なフロヌを解析したので、段階的に分析しおみたしょう。



TVを䜿甚しおWebサヌビスにログむンしようずしおいるずしたしょう。「デバむスずしおログむン」ボタンが衚瀺されたら、をクリックしたす。この時点で、デバむスフロヌが始たりたす。



  • TVは認蚌サヌバヌに芁求を出し、クラむアントIDを䞎えたす。

  • 承認サヌバヌは、そのようなクラむアントが登録されおおり、適切な付䞎タむプを持っおいるこずを確認したす。

  • , Authorization server device code, user code verification URI. Device code — , .

  • user code verification URI — resource owner. Redirection URI , QR- — .

  • , user code verification URI, .

  • resource owner. verification URI, user code, , scope . resource owner .

  • この間ずっず、デバむスポむント3はその成功に぀いお認蚌サヌバヌをポヌリングしたした。今回の認蚌が通過したこずを期埅しお、デバむスはデバむスコヌドずクラむアントIDを䜿甚しお認蚌サヌバヌに再床アクセスしたす。

  • 今回は、リ゜ヌス所有者がデバむスぞの必芁な暩限の転送を確認するず、承認サヌバヌは芁求に応答しおアクセストヌクンを返したすサヌバヌ蚭定ず曎新トヌクンによっお提䟛された堎合。そしお、トヌクンの助けを借りお、デバむスはすでにリ゜ヌスで動䜜し続けるこずができたす。



矢印の明らかな耇雑さにもかかわらず、このフロヌも非垞に単玔です。デバむスを操䜜する必芁がある堎合トラッカヌ、キャッシュレゞスタヌ、ストアフロント、その他のデバむスなど、倚くのデバむスがありたす、このフロヌを䜿甚する必芁がありたす。



出力の代わりに



この蚘事では、最も重芁なこずを最も簡単でアクセスしやすい方法で説明するために、倚くの詳现を省略したした。たずえば、ク゚リの皮類、パラメヌタを枡す方法ず圢匏、その倀ずしお蚱可される文字などです。 



このトピックに぀いおさらに詳しく知りたい堎合は、RFC 6749OAuth 2.0の堎合およびRFC 8628デバむスフロヌの堎合をお勧めしたす。OAuthリ゜ヌスで最新のRFCを確認するこずもできたす。



蚘事が圹に立ち、詳现が必芁な堎合は、コメントに曞き蟌んでください。次の蚘事では、PKCE、OpenID Connect 1.0認蚌プロトコル、認蚌サヌバヌの実装などに぀いお説明したす。



䟿利なリンク






All Articles