IdentityServer4। मूल अवधारणा। OpenID कनेक्ट, OAuth 2.0, और JWT

इस पोस्ट के साथ मैं IdentityServer4 को समर्पित एक लेख धागा खोलना चाहता हूं। हम मूल अवधारणाओं से शुरू करते हैं।


इस समय सबसे होनहार प्रमाणीकरण प्रोटोकॉल OpenID कनेक्ट है , और प्रमाणीकरण प्रोटोकॉल (पहुंच प्रदान करना) OAuth 2.0 हैIdentityServer4 इन दो प्रोटोकॉल को लागू करता है। यह सामान्य सुरक्षा समस्याओं के लिए अनुकूलित है


OpenID कनेक्ट एक प्रोटोकॉल और प्रमाणीकरण मानक है, यह संसाधनों (वेब ​​एपीआई) तक पहुंच नहीं देता है, लेकिन तब से इसे OAuth 2.0 प्राधिकरण प्रोटोकॉल के शीर्ष पर विकसित किया गया था , यह आपको उपयोगकर्ता प्रोफ़ाइल पैरामीटर प्राप्त करने की अनुमति देता है जैसे कि आपके पास UserInfo संसाधन तक पहुंच थी

JWT (JSON वेब टोकन) एक वेब मानक है जो उपयोगकर्ता डेटा को JSON प्रारूप में एन्क्रिप्टेड रूप में प्रसारित करने के लिए एक विधि को परिभाषित करता है।

OAuth 2.0 (RFC 6749) एक प्रोटोकॉल और प्राधिकरण मानक है। यह एप्लिकेशन को सुरक्षित संसाधनों तक पहुंचने की अनुमति देता है, जैसे कि वेब एपीआई।

संरक्षित संसाधन तक पहुंचने के आरेख पर एक नज़र डालें और मुख्य चरणों और स्वीकृत शब्दावली से निपटें:


IS4


  1. . — . Web API.


  2. User , , . . User ( ) — , , , (username) (password);


  3. IdentityServer4 (client_id, client_secret), (username, password) grant_type scope. ( ).


    OAuth 2.0 , , . client_id client_secret.
    lient_id — , IdentityServer4 .
    client_secret IdentityServer4. API. IdentityServer4 .

  4. , IdentiryServer4 access- ( ) (refresh-). . , .


  5. Web API, . 401, 403 498, , , .


  6. , Web API .




IdentityServer4 IdentityServer4 identity-, access- refresh-.


  • identity- ( ) — . , . .
  • access- ( ) — API ( ) .
  • refresh- ( ) — , .

:


Authenticatation Server Url — . URL-.


Resource Url — URL- , , , .



POST IdentityServer4


'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'Expect': '100-continue'

:


'grant_type' : 'password',
'username' : login,
'password' : password,
'scope' : 'scope',
'client_id' : 'client_id',
'client_secret' : '{client_secret}'

username, password, client_id client_secret . :


grant_type — . , , API. password, OAuth 2.0 ( ).


OAuth 2.0 :


  • (authorization code). , .. (server-side applications), ;
  • (implicit). -, ;

, :


  • (resource owner). , . , . , OAuth 2.0.
  • . API. , , URI , , , API .

scope — . . , , , . .. scope scope . scope (, )


All Articles