我有一个使用 ASP.NET Identity 的 Identity Server 4 实现。我之前问过一个关于如何应用某些登录规则的问题,并收到了一个答案,解释了如何在Startup.cs. 这是我添加到该ConfigureServices方法中的内容:
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(15);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Password.RequiredLength = 9;
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireUppercase = true;
options.Password.RequireNonAlphanumeric = false;
options.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Run Code Online (Sandbox Code Playgroud)
密码规则似乎有效,但锁定规则不起作用。我需要启用什么功能吗?
在我的应用程序中,我集成Identity server 3了openid-connect. 在我们的生产服务器上,我们的网站位于导致问题的反向代理后面;
当用户登录并被身份服务器重定向回时,我们的应用程序希望将用户重定向到他的原始位置(带有 的页面AuthorizeAttribute)。这里的问题是用户被重定向到隐藏的 url 而不是reverse proxy.
如何将用户重定向到公共网址?
"expires_at"一旦我成功登录,我想知道该属性的实际用途,然后身份服务器返回以下响应JSON
{
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSIsImtpZCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSJ9.eyJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo0NDMwMCIsImF1ZCI6ImpzIiwiZXhwIjoxNTAyNDI4MjQyLCJuYmYiOjE1MDI0Mjc5NDIsIm5vbmNlIjoiYWU0MTZlZjQwNDc4NDkwNmI5NTg3MDkxY2I0ODhjZjUiLCJpYXQiOjE1MDI0Mjc5NDIsImF0X2hhc2giOiJIWEhKWl9LdkdfcnVwMXZQY1lKYWRnIiwic2lkIjoiNjY0M2Y0NjlkMGY3YzgxZWQ3MDFhZmQ5MmYzYzFiMDYiLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTAyNDI3NDYxLCJpZHAiOiJpZHNydiIsImFtciI6WyJwYXNzd29yZCJdfQ.ai98BnTEqWQDBT9BPMJmft-KVgC9nLR2fQCpWW95E-CqyW0vrVtgXTh-ExDAXcQGrl2CzEf0a-7B2SnfAJ9qwSFmn4T--bZMKnoN2YnsHdbad9rhCGOvKEDI0NCfTlDYFQ03ZUdZVW27hYJO6Bbt8FeJPBIv3Ko7MV40gqDGojZ74twO_YZOIzJNJGDmIysquD_hRGU75xTz41MBuMob3FMzmLegIOYqUDFz6A8VrFEL3j1Cgo67sp7IP4RQ9uJj56kU8DI4mZR6YCFp3QdLtYqQPVO6zkO1OhpeDVyZNffC1PbFDsJ5lhPRicZ5MZo-m8eMVSNis6X5fWhuuC9kAg",
"session_state": "0JCstb_hlFJAAw30DwbPoV6mDvg01QRbZ-H4N2TyFcY.03e0a811c45d02838f745a3b369ecabc",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSIsImtpZCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSJ9.eyJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo0NDMwMCIsImF1ZCI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzAwL3Jlc291cmNlcyIsImV4cCI6MTUwMjQyODAwMiwibmJmIjoxNTAyNDI3OTQyLCJjbGllbnRfaWQiOiJqcyIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJlbWFpbCIsImFwaSJdLCJzdWIiOiIxIiwiYXV0aF90aW1lIjoxNTAyNDI3NDYxLCJpZHAiOiJpZHNydiIsImFtciI6WyJwYXNzd29yZCJdfQ.A6Dj10rBKN2CIo1wLfj_stuNXq-QH66sfdhuQiqqMGXcTQ88VnWcgCo13_br8_-gBb0fTGkdHRHZAP5oHbYtiJA9AAMO7Z8R_JsrVdYSaK9SXpRMuKdEhYTK1BQjVPsU04hHJAIEPQZ0i8MKE3FOsyoDEMOfXdVR8oY9vqEpN5X1AYQ4ia_aB_cHPzOUYccr1B5nn4VWl47D-BW6bf4v60P0wHx1uSYeTN_N3J9nbgEXqvLY6ED978jFRvFz7zllHWkIZSxM91Mu-uyIKa6-MRNuYvbtejdNtDzPpUjWDnAsYhL-AyxKaqq1prACkCxESpPXUggl2jMH8hWbl8lX4w",
"token_type": "Bearer",
"scope": "openid profile email api",
"profile": {
"sid": "6643f469d0f7c81ed701afd92f3c1b06",
"sub": "1",
"auth_time": 1502427461,
"idp": "idsrv",
"amr": [
"password"
],
"given_name": "Bob",
"family_name": "Smith",
"email": "bob.smith@email.com"
},
"expires_at": 1502428003
}
Run Code Online (Sandbox Code Playgroud)
我想知道 的目的"expires_at": 1502428003,并让我知道此属性的格式是否返回 Ticks / Milliseconds / Seconds / ???
这个属性"expires_at": 1502428003和 Silent Renew有什么关系new Oidc.UserManager().signinSilentCallback();???
identity oauth-2.0 openid-connect identityserver3 oidc-client-js
我使用身份服务器设置了自己的身份权限。
我正在运行本机 Windows 应用程序,目前我正在使用IdentityModel 的 OidcClient库来连接权限并获取令牌。
我想添加对 Azure AD 的支持,并且由于我无法在 Azure AD 上设置应用程序以使用HybridWithProofKey流,并且发现了这个MSAL,我决定试一试。
在 MSAL 中有一个PublicClientApplication类在其构造函数中接受字符串权限(源)
当在这个构造函数中传递我的 URL 时,我想象它会使用发现服务并找到正确的端点和它的工作。但令我惊讶的是,这不起作用。
我收到以下错误消息:
AADSTS50049: Unknown or invalid instance.
在 github MSAL 上搜索 AADSTS50049 返回零结果。我已经克隆了该项目并开始调试。
我发现请求被发送到我的授权网址,但在
GET https://login.microsoftonline.com/common/discovery/instance?api-version=1.0&authorization_endpoint=https%3A%2F%2Fmyidentityserverhostname%2Fidentityserver%2Foauth2%2Fv2.0%2Fauthorize HTTP/1.1
此请求在此源中完成,并返回上述错误。
那么,MSAL 是否打算与非 azure 权限一起使用?
azure-active-directory identityserver3 azure-ad-b2c identityserver4 azure-ad-msal
我有一个非常简单的 MVC5 网站,我正在尝试使用 IdentityServer3 来保护它。
我的网站和我的 IdentityServer 实例都作为单独的站点托管在 AppHarbor 中。两者都在 https 后面。
当我访问网站中受[Authorize]属性(例如/Home/About)保护的资源时,我成功重定向到 IdentityServer,并且可以成功进行身份验证。
当 IdentityServer 将其响应 POST 回网站(通过app.FormPostResponse.js)时,网站以 302 重定向响应所请求的资源 - 正如预期的那样。但是,此重定向是指向http,而不是 https (请参阅下面的网络跟踪)。
我确定这只是我的 IdentityServer 配置有问题,但我很感激任何关于我有什么问题的指示。
(AppHarbor 在 IIS 前面使用反向代理(我相信是 nginx),SSL 终止的地方 - 所以我有RequireSsl = false这个场景,根据 IdentityServer 文档。)
这是我的网站 Startup.cs
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = "https://<my-idsrv3>.apphb.com/identity",
ClientId = "<my-client-id>",
Scope …Run Code Online (Sandbox Code Playgroud) 我正在使用services.AddIdentityExpressAdminUiConfiguration()IdentityExpress 包。我如何指定SignIn.RequireConfirmedAccount?
通常这将在services.AddDefaultIdentity()调用中完成,但由于AddIdentityExpressAdminUiConfiguration()添加了身份,如果我这样做,我最终会出现异常。
将以下内容添加到 ConfigureServices() 不起作用:
services.Configure<SignInOptions>(x => x.RequireConfirmedAccount = true).因为UserManager.Options.SignIn.RequireConfirmedAccount始终为 false。
我正在尝试在同一个启动中共同主持identityserver3和web api(用于使用Bearer令牌的用户管理).但是我收到以下错误:任务被取消了.当尝试调用http://identity_local/core/.well-known/openid-configuration(identity_local指向localhost)时,启动时会发生任务取消.
我的创业公司如下:
app.Map("/core", idsrvApp =>
{
var factory = new IdentityServerServiceFactory();
factory.UserService = new IdentityServer3.Core.Configuration.Registration<IUserService, UserService>();
factory.ScopeStore = new IdentityServer3.Core.Configuration.Registration<IScopeStore>(resolver => scopeStore);
var options = new IdentityServerOptions
{
SigningCertificate = Certificate.Load(),
IssuerUri = "http://identity_local/core",
PublicOrigin = "http://identity_local",
RequireSsl = false, //for now
Factory = factory,
};
idsrvApp.UseIdentityServer(options);
});
app.Map("/admin", adminApp =>
{
adminApp.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "http://identity_local/core",
IssuerName = "identity_local",
ValidationMode = ValidationMode.Local,
RequiredScopes = new[] { "api", "roles" }
});
adminApp.UseResourceAuthorization(new AuthorisationManager());
var config = …Run Code Online (Sandbox Code Playgroud) 我有ASP.NET Core应用程序和应用程序正在使用OpenIDConnect身份验证.我使用IdentityServer3作为身份验证服务器.我很困惑我应该在ASP.NET Core中使用哪些NuGet包进行身份验证和授权.
本文在这里建议使用Microsoft.AspNet.*****,所以像下面
Microsoft.AspNet.Authorization
Microsoft.AspNet.Authentication.Cookies
Microsoft.AspNet.Authentication.OpenIdConnect;
Run Code Online (Sandbox Code Playgroud)
但是,还有以下NuGet包,它看起来像.NET Core特有的.
Microsoft.AspNetCore.Authorization
Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.OpenIdConnect;
Run Code Online (Sandbox Code Playgroud)
这些软件包之间的区别是什么?我应该将哪些软件包用于ASP.NET Core中的OpenIdConnect身份验证?
asp.net-core-mvc .net-core coreclr identityserver3 asp.net-core
我正在尝试使用IdentityServer3.Admin测试版(https://github.com/IdentityServer/IdentityServer3.Admin),但是在设置它时遇到了一些问题,似乎无法找到任何指导.
我已经设置了IdentityManager项目,所以我已经使用它作为指南来获取我现在的,但IdentityAdminServiceFactory似乎缺少像IdentityManagerServiceFactory那样的配置方法.
这是我到目前为止我的Startup.cs文件中的代码.任何帮助感激不尽!
谢谢.
app.Map("/admin", adminApp =>
{
var factory = new IdentityAdminServiceFactory();
//factory.Configure() or something would go here???
adminApp.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
adminApp.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
MetadataAddress = ConfigurationManager.AppSettings["AzureADMetadataEndpoint"],
Wtrealm = ConfigurationManager.AppSettings["AzureADApplicationId"],
SignInAsAuthenticationType = "Cookies",
Notifications = new WsFederationAuthenticationNotifications
{
SecurityTokenValidated = ctx =>
{
var roleClaim = new Claim("role", "IdentityManagerAdministrator");
ctx.AuthenticationTicket.Identity.AddClaim(roleClaim);
return Task.FromResult(0);
}
}
});
adminApp.UseIdentityAdmin(new IdentityAdminOptions
{
Factory = factory,
AdminSecurityConfiguration = new AdminHostSecurityConfiguration
{
HostAuthenticationType = "Cookies",
NameClaimType = ClaimTypes.Name,
RoleClaimType …Run Code Online (Sandbox Code Playgroud) 似乎这两个都提供了授权和身份验证。
两者都使用OpenID connect。
identityserver3 ×10
c# ×2
identity ×2
oauth-2.0 ×2
.net-core ×1
appharbor ×1
asp.net-core ×1
asp.net-mvc ×1
auth0 ×1
azure-ad-b2c ×1
coreclr ×1