Dengan posting ini saya ingin membuka utas artikel yang didedikasikan untuk IdentityServer4. Kami mulai dengan konsep dasar.
Protokol otentikasi yang paling menjanjikan saat ini adalah OpenID Connect , dan OAuth 2.0 adalah protokol otentikasi (pemberian) . IdentityServer4 mengimplementasikan dua protokol ini. Itu dioptimalkan untuk masalah keamanan umum .
OpenID Connect adalah standar protokol dan otentikasi, itu tidak memberikan akses ke sumber daya (Web API), tetapi karena itu dikembangkan di atas protokol otorisasi OAuth 2.0 , memungkinkan Anda untuk mendapatkan parameter profil pengguna seolah-olah Anda memiliki akses ke sumber daya UserInfo .
JWT (JSON Web Token) adalah standar web yang mendefinisikan metode untuk mentransmisikan data pengguna dalam format JSON dalam bentuk terenkripsi.
OAuth 2.0 (RFC 6749) adalah standar protokol dan otorisasi. Ini memungkinkan aplikasi untuk mengakses sumber daya yang aman, seperti API Web.
Lihatlah diagram mengakses sumber daya yang dilindungi dan berurusan dengan langkah-langkah utama dan terminologi yang diterima:

. β . β 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 (, )