2015-08-30 24 views
5

Ho un'istanza IdentityServer3 configurata e sto richiedendo un token utilizzando l'endpoint di autorizzazione (/ core/connect/authorize).Identity Server 3 L'endpoint di convalida del token di accesso non riesce con la convalida del pubblico

La mia richiesta di token è un'applicazione iOS.

I passano i seguenti parametri;

client_id=<clientid> 
response_type=id_token 
scope=openid 
redirect_uri=<redirecturi> 
state=<state> 
nonce=<nonce> 

Questo apre poi una vista web per me, io entro le mie credenziali e restituisce il redirect_uri con la #id_token accodati all'URL.

Per convalidare il token, lo passo all'endpoint di convalida del token di accesso (/ core/connect/accesstokenvalidation) del mio IdentityServer. Aggiungere lo ?token=<access token received from login>.

Allora ottengo la risposta

{ "Message": "invalid_token" } 

Quando controllo il registro

System.IdentityModel.Tokens.SecurityTokenInvalidAudienceException: IDX10214: Audience validation failed. Audience: '<clientid>'. Did not match: validationParamters.ValidAudience: '<identity_server_host>/resources' or validationParameters.ValidAudiences: 'null' 

che cosa sto facendo male qui? Sicuramente l'IdentityServer che ha creato il token dovrebbe validarlo come valido?

+0

Hai mai trovato una soluzione a questo? –

+0

Sì, vedi sotto la risposta –

risposta

3

Non si richiede un token di accesso nell'esempio. Con

response_type=id_token 

si ottiene solo il token identità che è possibile convalidare contro l'identità degli endpoint token. Per ottenere il token di accesso con la vostra richiesta è necessario modificare la vostra richiesta di

response_type=id_token token 
+0

Grazie. Questo ha funzionato per me. –