web-dev-qa-db-fra.com

Comment utiliser correctement le noeud final d'introspection avec le serveur d'identité 4?

J'utilise Identity Server 4 et j'essaie d'utiliser le point de terminaison d'introspection, mais rien que par les documents, je ne l'obtiens pas.

La documentation donne juste cet exemple

POST /connect/introspect
Authorization: Basic xxxyyy

token=<token>

Maintenant, pourquoi cette authentification de base existe-t-elle et que devrait être xxxyyy? Je veux dire, il n'y a pas d'authentification de base définie dans mon application. Je viens de configurer Identity Server 4 avec ASP.NET Core comme suit dans la variable ConfigureServices:

services.AddIdentityServer()
            .AddTemporarySigningCredential()
            .AddInMemoryApiResources(ApiResourceProvider.GetAllResources())
            .AddAspNetIdentity<Usuario>();

et dans Configure

app.UseIdentity();
app.UseIdentityServer();

Maintenant, j'ai juste essayé un POST à/connect/introspect avec le corps juste token=<token>, mais il a renvoyé un 404.

Je crois que je n'ai vraiment pas compris.

Comment utiliser le noeud final d'introspection avec Identity Server 4 dans ASP.NET Core?

13
user1620696

Introspection est généralement utilisé par les API pour valider un jeton entrant. Le point de terminaison d'introspection requiert également une authentification par spécification.

Vous devez configurer un secret API:

https://identityserver4.readthedocs.io/fr/release/reference/api_resource.html

Ensuite, utilisez le nom/secret de l'API pour vous authentifier par rapport au point de terminaison d'introspection. En utilisant l'authentification de base ou en affichant les valeurs dans le formulaire.

5
leastprivilege

La réponse de @ Jay ci-dessus m'a beaucoup aidé. Dans mon cas, j’avais oublié de changer le type de contenu en URL codé conformément à la norme RFC 7662 , à savoir. 

r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
0
Mo-Gang