Ich verwende die Bearer-Token-Authentifizierung für die asp.net-Web-API erfolgreich, wie in der standardmäßigen Einzelseiten-Anwendungsvorlage gezeigt. Aber jetzt möchte ich die gleiche Web-API von einer anderen Website (eine andere URL) verwenden.
Wenn ich eine Anfrage an die Web API AuthorizeEndpoint (standardmäßig / api / Account / ExternalLogin ) von einer anderen Site abrichte, bekomme ich error: invalid_request . Ich schätze, das Problem liegt im redirect_uri-Wert, da das Ändern des Werts der Website, die auf derselben Domäne wie die Web-API ausgeführt wird, das Problem löst.
Die Methode ValidateClientRedirectUri in der Anwendung OAuthAuthorizationServerProvider wird nicht ausgelöst. Basierend auf meiner Suche in der Katana-Quelle liegt der Fehlerursprung in OAuthAuthorizationServerHandler.InvokeAuthorizeEndpointAsync .
Hat jemand anderes die gleichen Probleme oder mache ich etwas falsch?
Die Katana OAuth-Middleware ist nicht als Cross-Application gedacht - sie dient hauptsächlich dazu, einen OAuth-Autorisierungsserver in die Geschäftsressource einzubetten.
Wenn Sie einen richtigen (kostenlosen) Authorization Server haben wollen - schauen Sie hier: Ссылка
Das Bearer-Token scheint ein Hash in einen Anforderungs-Hash zu sein, der für Ihre Anwendung lokal ist.
Wir verwenden ein jwt-Token mit einem separaten Validierungshandler. Arbeitet über Anwendung.
Immer noch auf der Suche nach einem besseren Weg, aber jetzt funktioniert es.
Tags und Links asp.net-web-api asp.net oauth owin asp.net-web-api2