claims-based-identity 相关问题

用于向声明感知应用程序呈现身份的应用程序模型。此标识包含来自受信任来源的安全包中的声明元素,例如电子邮件地址或用户名。此模型将应用程序与身份验证机制分开。

postgresql current_setting('request.jwt.claim.id'::text, true)::integer;

我正在尝试创建一个函数来从 JWT 令牌获取 id 并将其传递给另一个函数。当我通过传递 JWT 令牌从邮递员进行测试时,如果我的有效负载包含 o...

回答 1 投票 0

为什么这段向 ClaimsPrincipal 添加声明的代码是正确的?

我正在尝试使用我自己的 IClaimsTransformation 实现中的 TransformAsync 方法来操作我的 Web 应用程序中的声明。 微软文档中的示例代码如下所示: 我们...

回答 1 投票 0

使用 async/await 设置 Thread.CurrentPrincipal

下面是我尝试在异步方法中将 Thread.CurrentPrincipal 设置为自定义 UserPrincipal 对象的简化版本,但自定义对象在离开等待后会丢失

回答 5 投票 0

如何拆分角色声明 blazor Web 程序集?

我正在从事 Blazor Web Assembly 的客户端项目。 这是我的程序: 使用 Blazored.LocalStorage; 使用 Epicerie_Client; 使用 Epicerie_Client.Services; 使用 Epicerie_Client.Services.Interfaces;...

回答 0 投票 0

使用 IdentityServer 和另一个 JwtBearer 令牌进行身份验证

中央服务将 IdentityServer 作为当前的身份验证方法,需要保持不变。 现在需要支持另一个 Jwt 不记名令牌。 似乎有可能拥有两个令牌...

回答 1 投票 0

如何在 .NET Framework 4.7 ASP.NET Web API 端点上应用 Microsoft Identity Platform 身份验证

我有一个使用 .NET Framework 4.7.2 构建的旧版 ASP.NET Web API 应用程序,目前尚未为其实现身份验证。如何应用 Microsoft Identity Platform 身份验证...

回答 1 投票 0

System.Web.Mvc.HttpAntiForgeryException:MVC 5

使用MVC 5.1.1/VS 2013 Professional/.Net 4.5 我偶尔会收到错误(来自本地主机和生产 IIS 7): System.Web.Mvc.HttpAntiForgeryException:防伪造cookie tok...

回答 3 投票 0

AspNet Identity Core - 自定义登录声明

我正在尝试通过在数据库中添加逻辑“已删除”列来扩展我的身份用户。 然后,我想使用该值通过自定义 UserClaimsPrincipalFactory 向用户添加声明。 我想要...

回答 3 投票 0

Azure Active Directory 强制执行图形端点而不是组声明

根据文档,如果用户是 200 个或更多组的成员,则默认返回的 JWT 令牌将不包含组声明;它将包含 _claim_names 和

回答 1 投票 0

AuthorizationContext.Principal 会自动从 ClaimsPrincipal 更改为 GenericPrincipal

我不知道为什么 AuthorizationManager 中的上下文原则会发生变化。我的代码就像 公共类 AuthorizationManager :ClaimsAuthorizationManager { 公共覆盖 bool CheckAcc...

回答 2 投票 0

我应该为 OpenIdConnectOptions.SignOutScheme 设置什么?

我正在使用 .NET 6 和 Identity Server 4。 我应该为 OpenIdConnectOptions.SignOutScheme 设置什么? 这是我在 Startup.ConfigureServices() 中的内容: .AddOpenIdConnect("oidc", "

回答 0 投票 0

Request/Response中的Identity对象和Principal有什么区别?

我正在使用 .NET 6 和 Identity Server 4。 这三个 Identities 有什么区别(这是从 OpenIdConnectEvents 派生的类)? 为什么principalIdentity中有声明但没有...

回答 0 投票 0

如何获取自己的跨域ClaimsIdentity?

自 .NET 4.5 以来,身份管理通过 ClaimsPrincipal 类进行,该类具有一个 Identities 属性,该属性通常填充一个 ClaimsIdentity 代表当前活动

回答 0 投票 0

如何根据用户角色授予网站所有页面的访问权限?

我的要求是管理员用户可以授权其他用户访问站点中的页面数。 用户及其分配的页面存储在数据库中,格式如下。 Id UserId ClaimType 页面 1 ...

回答 0 投票 0

GenerateUserIdentity 在此方法中,我需要根据域名获取当前域名,我需要添加声明值。 Asp.net 4.5 框架

公共异步任务 GenerateUserIdentityAsync(UserManager 管理器) 在这种方法中,我需要在身份声明中添加域名。 这个方法从 2 p 调用...

回答 0 投票 0

使用 Microsoft.Identity.Web 的 Azure AD 登录在不同的应用程序中返回不同的声明名称

我有 2 个 Umbraco Web 应用程序在 .NET Core 6 上运行,它们都配置为使用相同的 Azure AD 应用程序注册来基于此处的代码进行后台身份验证。 作为代币的一部分

回答 0 投票 0

使用 Web 应用程序代理时 ADFS 3.0 错误事件 ID 511 和 364

我们正在尝试设置我们的开发环境,当 WAP 与 ADFS 一起使用时,我们正面临问题。以下是我们目前所拥有的。 我们的 ADFS 服务器绑定到 Active Directory 并且正在工作...

回答 2 投票 0

何时可以索赔

我在 GenerateUserIdentityAsync 方法中添加声明: 公共类 ApplicationUser : IdentityUser { 公共异步任务 GenerateUserIdentityAsync(UserManager 我在 GenerateUserIdentityAsync 方法中添加声明: public class ApplicationUser : IdentityUser { public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) { var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); userIdentity.AddClaim(new Claim(ClaimsStaticStrings.Inactivity, company.Inactivity.ToString())); return userIdentity; } } 然后我尝试在帐户/登录方法中获取它: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: int inactivity = Utils.GetInactivityFromIdentity(User.Identity); Response.Cookies.Add(new HttpCookie("inactivity", inactivity.ToString())); return RedirectToAction("Index", "Home"); } } public static int GetInactivityFromIdentity(IIdentity identity) { System.Security.Claims.ClaimsIdentity claims = (System.Security.Claims.ClaimsIdentity)identity; var claim = claims.FindFirst(Models.ClaimsStaticStrings.Inactivity); if (claim != null) { return int.Parse(claim.Value); } else throw new Exception("Inactivity is not set"); } 它抛出异常“Inactivity is not set”。变量 'claims' 只有一个声明 - name 但是当我从任何其他页面(重定向后)调用 GetInactivityFromIdentity 方法时 - 它工作正常(并且声明中充满了所有设置的声明)。为什么会这样? 声明被序列化到 auth-cookie 中。在您通过身份验证重新加载页面之前,不会设置 Cookie。在您尝试从 cookie 访问声明时,HTTP 请求中没有 cookie - SignInManager 只会在请求完成时设置 cookie,但不会在请求完成后立即设置。您确实需要一个重定向/页面重新加载周期来获取可用的 cookie 和声明。 您必须以某种方式获得inactivity价值,而不是通过声明,而是在您登录用户时从您的数据存储中获得。 无法访问登录用户声明的原因是登录过程中设计的事件顺序 - .Net 问题。 当您执行调用 SignInManager.SignIn() 时,事件顺序将带您完成项目的扩展类 ApplicationSignInManager,它派生自 SingInManager - 在其中您会发现一个名为 CreateUserIdentityAsync 的覆盖方法,它会被触发通过登录调用。 在这个方法中,用户身份声明被创建并返回(通过调用 GenerateUserIdentityAsync),只有在登录过程的后期才能访问它们。 这里的工作是在 ApplicationSignInManager 类中创建一个名为 AppUserClaims 的 ClaimsIdentity 类型的公共属性,并使用它来存储用户身份声明值,然后再将它们检索到登录流程。 public override Task<ClaimsIdentity> CreateUserIdentityAsync(ApplicationUser user) { var iClaims = user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager); AppUserClaims = iClaims.Result; return iClaims; } 一旦你存储了这个属性的声明,回到登录方法内部,你就可以像下面这样访问它——记住声明值总是字符串类型: string YourX = SignInManager.AppUserClaims.FindFirst("YourX").Value;

回答 2 投票 0

使用 Keycloak 的 OIDC 标准声明的用户属性

我正在使用 Keycloak 作为应用程序的身份提供者。用户可以直接通过Keycloak创建账户,用户需要填写一些映射到OIDC sta的个人信息...

回答 0 投票 0

Azure AD b2c 自定义策略访问令牌在使用应用程序时每 15 米突然过期

我们在 MVC 应用程序中使用 azure AD b2c,Identity Experience Framework 自定义策略身份验证。 我们在代码中将令牌过期超时设置为 4 小时,但它仍然会在......内过期

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.