Dotnet 核心安全性 oauth 和 bearer

Dotnet core security oauth and bearer

我正在尝试保护一个小的 dot net 核心 mvc 和 api 应用程序,但我已经转过身来,需要一些指导。

我必须使用 ADFS 3.0 Server2012 R2 作为 login/password 的来源。

我必须在 API 中使用版本控制。 (Microsft.aspnetcore.mvc.versioning)

我不想发送 login/password 到 API,只是一个不记名令牌。

我针对 ADFS 端点配置了 cookieauthentication 和 OAuth,它适用于 mvc ui,但我不知道 how/what 要让 API 工作使用 httpclient 从 mvc ui 控制器到 API.

很久以前,我使用了 IdentityServer 1 或 2,并使用了不记名令牌,但我不知道如何在 OAuth 事件的 OnCreatingTicket 中创建令牌,也不确定将其存储在哪里。我尝试了一个声明,但它没有用,所以它可能格式不正确或完全错误。

我不确定我的问题是否需要使用像 IdentityServer 这样的东西,因为站点很小而且我不需要用户存储,一切都在 LDAP/ADFS 中。

我可以注册三个中间件 peices,build 来自 oauth 身份验证的令牌,将其存储在某个地方(如声明)并通过验证的 httpclient 传递它吗?

 app.UseCookieAuthentication(option);
 app.UseJwtBearerAuthentication(bearer);  //api
 app.UseOAuthAuthentication(adfsOption);  //mvc ui

在 adfsOption b 中uild 一个令牌...

我尝试的一切都会得到
留言 "A security error occurred"

我的问题的答案是肯定的,非常简单。稍后我会 post 要点。我的主要问题是 httpclient 不喜欢我的 ssl 开发证书。

我仍然不确定是否可以将令牌放入声明中。 cookie和oauth每15分钟作废并刷新一次,但随机获取一个刷新令牌会很困难。

添加这个非常糟糕的代码允许它检查我的令牌并且它按预期工作。

 handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };