Avec ce post, je veux ouvrir un fil d'article dédié à IdentityServer4. Nous commençons par les concepts de base.
Le protocole d'authentification le plus prometteur est actuellement OpenID Connect , et OAuth 2.0 est le protocole d' authentification (octroi) . IdentityServer4 implémente ces deux protocoles. Il est optimisé pour les problèmes de sécurité courants .
OpenID Connect est un protocole et une norme d'authentification, il ne donne pas accès aux ressources (API Web), mais depuis il a été développé en plus du protocole d' autorisation OAuth 2.0 , il vous permet d'obtenir des paramètres de profil utilisateur comme si vous aviez accès à la ressource UserInfo .
JWT (JSON Web Token) est une norme Web qui définit une méthode de transmission des données utilisateur au format JSON sous forme cryptée.
OAuth 2.0 (RFC 6749) est un protocole et une norme d'autorisation. Il permet aux applications d'accéder à des ressources sécurisées, telles que l'API Web.
Jetez un œil au schéma d'accès à une ressource protégée et traitez les principales étapes et la terminologie acceptée:

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