问题标签 [owin.security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
305 浏览

asp.net - OWIN 授权代码流始终返回“invalid_request”(400 错误请求)

我正在尝试将授权代码流添加到基于 OWIN 的应用程序中。

我的设置是:

启动.cs

MyAuthorizationCodeProvider.cs

虽然密码授予流程和刷新令牌流程一样有效,但授权代码流程总是"invalid_request"在我请求 HTTP GET 时返回

http://host/oauth/authorize?response_type=code&client_id=sample333&redirect_uri=https%3A%2F%2Fhost%2F&scope=access&state=samplee666

我什至无法调试我的MyAuthorizationCodeProvider(创建/接收方法中没有断点命中)

我肯定错过了一些大事:-)但我不知道是什么....

0 投票
0 回答
97 浏览

asp.net - webapi service1 的 access_token 问题被其他 webapi 服务接受

我通过引用此链接 https://www.codeproject.com/Articles/1187872/Token-Based-Authentication-for-Web-API-where-Legac在 Web api 服务中实现基于令牌的身份验证

出于测试目的,我创建了两个具有相同身份验证代码的 webapi 服务,如下所示。通过使用“邮递员”工具从 webapi 服务 1 发出 access_tokenhttp://localhost:53396/token并复制它。

在工具中打开一个新选项卡Postman以访问 webapi 服务 2 的控制器方法http://localhost:49489/api/values,添加Authorization标头并传递 webapi 服务 1 发出的复制令牌 bearer Ihqbo6s16BOtKOMqIPYIKbv_N616MAg2X5exa9eLDQPtaTxa5Ucy7lB_oOkyutaWpBFSpIdomhza2pB3ca6gxY3QgOANG7rhPBnxA74EcQYsLGpHJVqXusmTmJ_CpXj9k00e_vngobyBMU3Dqpoxm35lD7vgL27JG6WXhUZ-qo8u6IzzaXliP2A25-pTVv1mRjQGCGGumisDssii0GUZ4K0RsAoq852x8UFawUOZUg8

然后点击“发送”按钮,webapi 服务 2 接受令牌并返回结果!我不应该被服务 2 接受,因为这不是由该服务(服务 2)发布的。

API调用结果

请让我更正我在这里做错的事情,好像发生这种情况之后,任何人都可以从他们的服务中生成一个令牌并使用相同的令牌来访问其他 Web api 服务。

以下是我的 webapi 服务中的身份验证相关代码。

启动.cs

WebApiConfig.cs

ApplicationOAuthProvider.cs

值控制器.cs

网页配置

0 投票
1 回答
159 浏览

c# - Owin.Security.Providers - OpenIDAuthenticationMiddlewareBase 派生类声明 FieldNotFoundException

使用 Nuget 包Owin.Security.Providers.OpenIDBase 2.1.1和-DLLsOwin.Security.Provides.OpenID 2.24.0版本2.0.0.0

我正在派生我自己的提供程序 - 即MyOwnAuthenticationMiddleware : OpenIDAuthenticationMiddlewareBase<MyOwnAuthenticationOptions>,并将其IAppBuilder.Use()作为标准启动的一部分传递给。

这可以在我自己的机器上编译并运行良好 - 经典的开发人员系列。

但是,当在 Microsoft Visual Studio Online 的构建服务器(Hosted 2017)上构建时,它会构建,但在启动时会引发运行时错误:

字段HTTPClient(a System.Net.Http.HttpClient) 显然无法在派生的泛型类中找到 - 它是 的成员OpenIDAuthenticationMiddlewareBase,在活记忆中没有改变。

我在想构建服务器必须链接到不同的OpenIDAuthenticationMiddlewareBase,但错误消息中的完整规范名称另有说明。

由于正在进行的 .NET Framework/.NET Standard DLL 地狱,我收到了相当多的警告 - 一个与不同版本的 .NET 相关System.Net.Http,我也将其作为 Nuget 包。这可能是相关的吗?

在一个不相关的注释上 - 有没有其他人觉得 Nuget 依赖项和令人眼花缭乱的 .NET Framework/Standard/Core 版本控制数组的组合刚刚重新创建了 .NET 本来应该缓解的同一个 DLL 地狱?

0 投票
1 回答
2779 浏览

c# - OpenID Connect AllowedRedirectUris 为空,导致 IdentityServer4 上出现“无效的 redirect_uri”

我在 .NET Core 项目上有一个正在运行的 IdentityServer4,我正在尝试使现有的 .NET Framework Web 应用程序成为该服务器的客户端。

该项目正在使用Microsoft.Owin.Security,并在Startup.cs我设置身份验证设置。

但是,当请求发送到 IdentityServer 时,AllowedRedirectUris参数只是一个空数组,因此RedirectUri参数与该空数组中的一个不匹配,从而导致invalid redirect_uri错误。

这是Startup.cs现有项目的:

这是在日志记录中找到的从该配置生成的请求:

那么有谁知道我可以如何使AllowedRedirectUris包含给定的内容RedirectUri,以便我的 IdentityServer4 接受请求?

更新:这是 IdentityServer4 项目中的客户端对象:

Update2:这是Startup.csIdentityServer4 的: