Tag: authentication

OWIN身份validation,使当前令牌失效并删除co​​okie

我有一个OWIN中间件用于身份validation。 我们有两种类型的身份validation。 第一种类型是使用以下配置的承载令牌 var OAuthOptions = new OAuthAuthorizationServerOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalBearer, TokenEndpointPath = new PathString(“/Token”), Provider = new ApplicationOAuthProvider(PublicClientId), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = true, AccessTokenFormat = new SecureTokenFormatter(GetMachineKey()) }; 第二种类型使用外部登录的身份validationcookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ExternalCookie, AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive, CookieHttpOnly = true, CookieSecure = CookieSecureOption.SameAsRequest, CookieName = “.AspNet.” + DefaultAuthenticationTypes.ExternalCookie, ExpireTimeSpan = TimeSpan.FromMinutes(5), […]

如何使用特定凭据连接到C#中的TFS服务器?

我正在尝试编写连接到TFS的ac#应用程序并检索工作项信息。 不幸的是,似乎所有使用TFS SDK的示例都使用当前用户的默认凭据(即我的域登录信息)。 我找到的最接近的信息是使用TeamFoundationServer (String, ICredentials)构造函数,但是我找不到与ICredentials接口接口的合适类的任何信息(特别是因为它似乎没有使用System.Net ICredentials但是TeamFoundationServer特定的ICredentials)。 有没有人对使用特定用户名/密码/域名组合登录TFS有任何见解?

如何在ASP.NET Boilerplate中设置社交登录?

我正在尝试通过Googlevalidation用户身份。 我正在使用带有Vue的ASP.NET Core的ABP启动模板。 这是我到目前为止所做的: 我在GoogleAuthProviderApi中创建了一个GoogleAuthProviderApi: using System; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication.Google; using Newtonsoft.Json.Linq; namespace Mindbus.MindbooksSEO.Authentication.External.Google { public class GoogleAuthProviderApi : ExternalAuthProviderApiBase { public const string Name = “Google”; public override async Task GetUserInfo(string accessCode) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.UserAgent.ParseAdd(“Microsoft ASP.NET Core OAuth middleware”); client.DefaultRequestHeaders.Accept.ParseAdd(“application/json”); client.Timeout = TimeSpan.FromSeconds(30); […]

UseWindowsAzureActiveDirectoryBearerAuthentication如何在validation令牌时起作用?

我遵循以下GitHub示例,以实现跨WebApp和WebApi的身份validation机制。 https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet 我正在为WebApp和WebApi使用单个App注册,获取“ https://abc.onmicrosoft.com/App ”的访问令牌并将其传递给WebApi。 我将令牌附加到名为“Bearer”的HTTPS标头。 我在WebApi Owin Startup类中有以下内容来validationAudience和Tenant的令牌,但实际上并未按预期validation令牌。 几个问题:1。什么触发下面的处理程序来validation租户和受众的令牌? 它是Controller类的[Authorize]属性吗? 2.如何找到执行处理程序的令牌? 3.将SaveSigninToken设置为true可保存令牌。 如何检索令牌并从此令牌获取Graph API的访问令牌? app.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = “abc.onmicrosoft.com”, TokenValidationParameters = new TokenValidationParameters { ValidAudience = “https://abc.onmicrosoft.com/App”, SaveSigninToken = true, } }); 请指教。 提前致谢!

从本地计算机关闭网络确定用户Active Directory组

我当前的项目要求我针对Active Directory组validation用户。 问题是,计算机可能并不总是连接到域,但用户可能仍需要运行该工具。 我知道我没有连接时无法查询Active Directory,而是在尝试查询机器SAM(MSAM)。 我在断开网络连接时无法确定当前用户。 这是我正在使用的: PrincipalContext principalctx = new PrincipalContext(ContextType.Machine); UserPrincipal uprincipal = new UserPrincipal(principalctx); 从这一点开始,我如何询问当前登录本地计算机的用户。 当连接到域时,我可以使用UserPrincipal.Current进行查询。 如果我没有连接到域,它将无法说”The server could not be contacted” 。 注意:使用上面的代码不能使用此方法,而是可以放弃PrincipalContext并直接查询当前用户。 在识别出当前用户的情况下,我可以查询GetGroups()并确定它们是否在所需的组中。 此外,有人可以描述三个ContextType选项ApplicationDirectory, Domain, Machine 。 我担心我不完全理解每个选项,因此可能使用不正确。

Web API中的MVC-6与MVC-5 BearerAuthentication

我有一个Web API项目,使用UseJwtBearerAuthentication到我的身份服务器。 启动时的配置方法如下所示: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseJwtBearerAuthentication(options => { options.AutomaticAuthentication = true; options.Authority = “http://localhost:54540/”; options.Audience = “http://localhost:54540/”; }); // Configure the HTTP request pipeline. app.UseStaticFiles(); // Add MVC to the request pipeline. app.UseMvc(); } 这是有效的,我想在MVC5项目中做同样的事情。 我试着这样做: Web api: public class SecuredController : ApiController { [HttpGet] [Authorize] public IEnumerable<Tuple> Get() { […]

用于JWT承载认证的.NET Core IssuerSigningKey文件

我正在努力实现(或理解)JWT承载令牌认证的签名密钥。 我希望有人可以帮助我或解释我的错误。 在过去的几周里,我抓了大量的教程,设法让一个自定义的Auth-Controller运行,它发出我的令牌并设法建立JWT承载认证,以validation标题中的令牌。 有用。 我的问题是所有示例和教程要么生成随机或内存(发行者)签名密钥,要么使用硬编码的“密码”字符串或从某些配置文件中获取它们(在代码示例中查找“密码”)。 我的意思是validation设置(在StartUp.cs中): //using hardcoded “password” SecurityKey key = new SymmetricSecurityKey(System.Text.Encoding.ASCII.GetBytes(“password”)); app.UseJwtBearerAuthentication(new JwtBearerOptions { AutomaticAuthenticate = true, AutomaticChallenge = true, TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidIssuer = “MyIssuer”, ValidateAudience = true, ValidAudience = “MyAudience”, ValidateLifetime = true, IssuerSigningKey = key } }); 在创建令牌的AuthController中: //using hardcoded password var signingKey = […]

用于CXF Web服务的.NET客户端身份validation和SOAP凭据标头

情景 我必须使用.NET客户端访问Web服务。 该服务是Apache CXF Web服务。 需要用户名和密码validation。 我创建了代理。 我已经设置了凭证。 MyServiceReference proxy = new MyServiceReference(); proxy.Credentials = new NetworkCredential(“username”, “password”); string res = proxy.Method1(); 当我运行客户端时,抛出以下exception: System.Web.Services.Protocols.SoapHeaderException: An error was discovered processing the header 服务发布者告诉我,SOAP头中没有凭据。 所以,我猜IWebProxy.Credentials不是设置身份validation的正确方法。 题 那么,我如何设置身份validation所需的SOAP头?

如何伪造Active Directory?

我正在使用C#开发一个需要针对Active Directory进行身份validation的应用程序。 我有Windows 7,无法在本地安装Active Directory。 我无权访问具有Active Directory的现有服务器(通过连接到VPN的十个步骤除外)。 我宁愿不创建运行Windows Server的虚拟机。 有没有可能在内存中运行并拦截AD调用以返回伪造数据? 如果它不存在,从理论上讲,将它拉下来需要什么?

owin oauth发送其他参数

我确信这是可能的,但不确定如何实现。 我有一个OWIN OAUTH实现,它当前接受用户的用户名和密码,并根据数据库对它们进行身份validation。 我想扩展它以通过SmartCard Uid来支持使用SmartCard进行单点登录。 我可以在OWIN登录中传递其他参数吗?如果是,如何传递? 基本前提是用户可以使用用户名/密码组合或SmartCard uid登录(如果通过SmartCard uid并且在数据库中找到,则应用程序将登录用户) 我目前正在传递username , password和grant_type ,我想将uid添加到该列表中并在我的AuthorizationServiceProvider选择它。 我可以在OAuthGrantResourceOwnerCredentialsContext上看到UserName , Password和ClientId ,但我看不到任何其他属性可以支持我想要实现的内容。 这是我目前在我的服务提供商中所拥有的 public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add(“Access-Control-Allow-Origin”, new[] { “*” }); var user = await this._userService.FindUser(context.UserName, context.Password); if (user == null) { context.SetError(“invalid_grant”, “The user name or password is incorrect.”); return; } var identity = new […]