2015-08-30 4 views
5

Ich habe eine IdentityServer3-Instanz eingerichtet und ersende ein Token mit dem autorisierten Endpunkt (/ core/connect/authorize).Identity Server 3-Zugriffstoken Validierungsendpunkt schlägt fehl mit Audience Validation Failed

Meine Anwendung, die das Token anfordert, ist eine iOS-Anwendung.

Ich übergebe die folgenden Parameter;

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

Dies ist dann für mich eine Web-Ansicht öffnet, gebe ich mein Beglaubigungsschreiben und es gibt die redirect_uri mit dem #id_token an die URL angehängt.

Um das Token zu validieren, gebe ich es an den Validierungsendpunkt für den Zugriffstoken (/ core/connect/accesstokenvalidation) meines IdentityServers weiter. Ich füge ?token=<access token received from login> an.

ich dann die Antwort

{ "Message": "invalid_token" } 

Wenn ich das Protokoll überprüfen

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

Was mache ich falsch hier? Sicher, der IdentityServer, der das Token erstellt hat, sollte es als gültig validieren?

+0

ändern müssen Haben Sie jemals eine Lösung für diese finden? –

+0

Ja, siehe unten die Antwort –

Antwort

3

In Ihrem Beispiel fordern Sie kein Zugriffs-Token an. Mit

response_type=id_token 

Sie nur die Identitäts-Token erhalten, die Sie gegen den Identitäts-Token-Endpunkt validieren. Um die Zugriffstoken mit Ihrer Anfrage erhalten Sie Ihre Anfrage an

response_type=id_token token 
+0

Danke. Das hat für mich funktioniert. –