Dotnet核心安全oauth和持票人

时间:2017-04-25 19:48:16

标签: asp.net-core oauth-2.0 identityserver4

我正在尝试获得一个小点网核mvc和api应用程序,我已经转过身来需要一点方向。

我必须使用ADFS 3.0 Server2012 R2作为登录/密码的来源。

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

我不想向API发送登录名/密码,只是一个不记名令牌。

我针对ADFS端点配置了cookieauthentication和OAuth,它适用于mvc ui,但我不知道如何/如何使用API​​来使用httpclient从mvc ui控制器到API。< / p>

很久以前我使用过IdentityServer 1或者2并且使用了承载令牌,但我无法弄清楚如何在OAuth事件中的OnCreatingTicket中创建令牌而不确定将其存储在何处。我尝试了一个声明,但它没有用,所以它可能是畸形或错误的。

我不确定我的问题是否保证使用像IdentityServer这样的东西,因为网站很小而且我不需要用户存储,所有内容都在LDAP / ADFS中。

我是否可以注册三个中间件peices,从oauth身份验证中构建一个令牌,将其存储在某个地方,如声明并将其传递到已验证的httpclient?

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

在adfsOption中构建一个令牌......

我尝试的一切都得到了 消息“发生安全性错误”

1 个答案:

答案 0 :(得分:0)

我的问题的答案是肯定的,非常直截了当。我稍后会发一个要点。我高兴的主要问题是httpclient并不喜欢我对ssl的开发证书。

我仍然不确定将令牌放入索赔中是否正常。 cookie和oauth每15分钟使其无效并刷新它,但随机获取刷新令牌将非常困难。

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

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