2015-08-30 19 views
5

Mam skonfigurowaną instancję IdentityServer3 i żądam tokena za pomocą autoryzowanego punktu końcowego (/ core/connect/authorize).Serwer tożsamości 3 Punkt końcowy sprawdzania poprawności tokenu dostępu zakończy się niepowodzeniem z niepowodzeniem sprawdzania poprawności odbiorców

Moja aplikacja żądająca tokena to aplikacja na iOS.

Mijam następujące parametry;

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

to wtedy otwiera się widok internetową dla mnie, wprowadzić swoje dane uwierzytelniające i zwraca redirect_uri z #id_token dołączonym do adresu URL.

Aby zweryfikować token, przekazuję go do punktu końcowego sprawdzania tokenu dostępu (/ core/connect/accesstokenvalidation) mojego serwera tożsamości. Dołączam ?token=<access token received from login>.

I wtedy uzyskać odpowiedź

{ "Message": "invalid_token" } 

Kiedy sprawdzić dziennik

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

Co robię źle tutaj? Z pewnością serwer tożsamości, który utworzył token, powinien go zatwierdzić jako ważny?

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? –

+0

Tak, patrz poniżej odpowiedź –

Odpowiedz

3

Nie żądasz tokena dostępu w twoim przykładzie. Z

response_type=id_token 

można dostać tylko token tożsamości, które można zatwierdzić przed tożsamości tokenu końcowego. Aby uzyskać token dostępu z żądaniem, należy zmienić żądanie na

response_type=id_token token 
+0

Dzięki. To działało dla mnie. –