gpt4 book ai didi

asp.net-mvc - 使用 OWIN 和 WsFederation 对 MVC、Web api 和 signalR 应用程序进行身份验证

转载 作者:行者123 更新时间:2023-12-04 08:52:16 26 4
gpt4 key购买 nike

对于我的公司,我必须创建一个 POC 来检查我们是否可以为我们的项目使用 wsFederation 身份验证,该项目有一个 MVC 应用程序、一些 webapi Controller 和一些 signalR 集线器,所有这些都在不同的项目中。
我们还想在客户端应用程序和身份提供程序应用程序中使用 OWIN 身份验证中间件。

我首先使用 Thinktecture Identity Server v2 作为身份提供者(但我们必须在某个时候开发自己的)。
对于 MVC 应用程序,它非常简单,并且使用 SAML2 token 运行良好。

但是现在事情变得有点复杂,因为我希望 Web 应用程序上经过身份验证的用户能够从 Web api 应用程序调用 Controller 方法(记住,这与 MVC 不同),使用 ajax 调用。

我已经阅读了很多关于委派和 actAs token 的内容,但我有点迷茫,不知道从哪里或如何开始这部分。另外,我找不到任何有关使用 OWIN 身份验证的委派的信息。

所以我的第一个问题是:有可能做到这一点吗?
然后:有人能指出我正确的方向吗?

最佳答案

我在工作时遵循了 Vittorio Bertocci 的指示。

http://www.cloudidentity.com/blog/2013/01/09/using-the-jwt-handler-for-implementing-poor-man-s-delegation-actas/

关于它的一些注释,它说 JWTSecurityTokenHandler,现在是 JwtSecurityTokenHandler。这是一个小错字,但如果你不知道的话,这是一个放松 15 分钟的好方法。

我也无法使用 X509 FindByThumbprint 部分。我认为我没有正确注册我的本地证书。明天上类后,我将发布我必须更改的内容以使其正常工作。

Dominick Baier (http://leastprivilege.com/) 还开设了一门名为 WebApi v2 Security 的复数视觉类(class),该类(class)很好地讨论了如何注入(inject)安全管道并设置 web api 项目来处理这个问题。

作为另一种选择,您可以将 Vittorio 使用的 TokenValidationHandler 类替换为 Microsoft.Owin.Security.Jwt 包,并在 Startup.cs 文件中实现以下代码。

app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { ConfigurationSettings.AppSettings["ida:Realm"] },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(
ConfigurationSettings.AppSettings["ida:ValidIssuer"],
ConfigurationSettings.AppSettings["ida:SymmetricKey"])
},
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = context =>
{
var identity = context.Ticket.Identity;
return System.Threading.Tasks.Task.FromResult<object>(null);
}
}
});

关于asp.net-mvc - 使用 OWIN 和 WsFederation 对 MVC、Web api 和 signalR 应用程序进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23748315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com