इस पोस्ट के साथ मैं IdentityServer4 को समर्पित एक लेख धागा खोलना चाहता हूं। हम मूल अवधारणाओं से शुरू करते हैं।
इस समय सबसे होनहार प्रमाणीकरण प्रोटोकॉल OpenID कनेक्ट है , और प्रमाणीकरण प्रोटोकॉल (पहुंच प्रदान करना) OAuth 2.0 है । IdentityServer4 इन दो प्रोटोकॉल को लागू करता है। यह सामान्य सुरक्षा समस्याओं के लिए अनुकूलित है ।
OpenID कनेक्ट एक प्रोटोकॉल और प्रमाणीकरण मानक है, यह संसाधनों (वेब एपीआई) तक पहुंच नहीं देता है, लेकिन तब से इसे OAuth 2.0 प्राधिकरण प्रोटोकॉल के शीर्ष पर विकसित किया गया था , यह आपको उपयोगकर्ता प्रोफ़ाइल पैरामीटर प्राप्त करने की अनुमति देता है जैसे कि आपके पास UserInfo संसाधन तक पहुंच थी ।
JWT (JSON वेब टोकन) एक वेब मानक है जो उपयोगकर्ता डेटा को JSON प्रारूप में एन्क्रिप्टेड रूप में प्रसारित करने के लिए एक विधि को परिभाषित करता है।
OAuth 2.0 (RFC 6749) एक प्रोटोकॉल और प्राधिकरण मानक है। यह एप्लिकेशन को सुरक्षित संसाधनों तक पहुंचने की अनुमति देता है, जैसे कि वेब एपीआई।
संरक्षित संसाधन तक पहुंचने के आरेख पर एक नज़र डालें और मुख्य चरणों और स्वीकृत शब्दावली से निपटें:

. — . — Web API.
User , , . . User ( ) — , , , (username) (password);
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 .
, IdentiryServer4
access-
( ) (refresh-
). . , .
Web API, . 401, 403 498, , , .
, 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 (, )