Ich arbeite über den IdentityServer MVC walkthrough in the documentation und es ist großartig, bis ich zu Teil 2 komme, wo ich eine andere API aus der MVC-App anrufe. Hier hängt der Browser beim Aufruf/callApi/ClientCredentials bis schließlich mit Aufgabe abgebrochen Fehlern Zeitüberschreitung und die VS-Debugger lösen eine Ausnahme Invalid Operation mit der api Startup-Klasse bei app.UseIdentityServerBearerTokenAuthentication(...)
mit der inneren Ausnahme: IDX10803: Unable to create to obtain configuration from: 'http://localhost:44300/identity/.well-known/openid-configuration'.
Browser hängt in IdentityServer MVC Walkthrough beim Aufruf von callapi/client_credentials
Wie ich sagte, bis jetzt funktionierte alles großartig in der Walkthrough. Das Discovery-Dokument kann über den Browser von dieser Adresse aus problemlos abgerufen werden (kein SSL-Fehler - das Site-Zertifikat ist vertrauenswürdig).
Das sieht ähnlich aus wie here, aber es ist anders, weil in dieser Konfiguration Identityserver und die Access Token Validierungs-Middleware in separaten Prozessen (beide in IIS Express mit meinem Konto ausgeführt) sind. Ich habe versucht, Einstellung DelayLoadMetadata
trotzdem und jetzt der Browser gibt die Aufgabe abgebrochen Ausnahme und Visual Studio wirft keine Ausnahme.
Ich fügte Protokollierung hinzu und sah keine Probleme - es zeigt, dass der MVC-Client sein Zugriffs-Token bekommt, und dann war es das.
Ich habe auch alle Apps und SSL-Ports neu konfiguriert, um einen "echten" Hostnamen und ein Zertifikat zu verwenden, damit ich alles über Fiddler ansehen konnte. Das hat für den gesamten Durchlauf (und auch den vorherigen) gut funktioniert, bleibt aber an diesem Punkt hängen. Ich sehe die API-App für das Discovery-Dokument abfragen und es wird nie eine Antwort erhalten.
Was fehlt mir?
Wenn Sie eine einfache Konsolenanwendung erstellen, führen Sie einen Ping zum Erkennungsendpunkt aus - und führen Sie diese auf dem Server aus, auf dem Sie Ihren mvc-Client ausführen. Was geschieht? Das Gleiche? –
Wenn Sie die SSL-Überprüfung deaktivieren - was passiert dann? In beiden Apps, setzen Sie dies in global.asax oder startup.cs ServicePointManager.ServerCertificateValidationCallback = delegate {return true; }; –
Ich habe die Konsolen-App noch nicht ausprobiert, aber ich kann das Discovery-Dokument von einem Browser bekommen, während der mvc-Client darauf wartet, dass die API antwortet. In Bezug auf die SSL-Verifizierung habe ich in der Vergangenheit nicht vertrauenswürdige Fehler erhalten (und behoben), und diese sind sofort passiert, ohne dass sie hängen geblieben sind. –