首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用itfoxtec-identity-saml2 2时动态刷新用户声明

使用itfoxtec-identity-saml2 2时动态刷新用户声明
EN

Stack Overflow用户
提问于 2019-11-14 14:23:46
回答 1查看 358关注 0票数 2

我已经在一个ITFoxtec Core2.2应用程序中实现了SAML2标识包,它运行得很好!

我们的应用程序要求之一是,当管理用户更改其角色成员时,应该更新用户的声明(他们所处的角色等等),从而使cookie中的声明“无效”,从而必须更新它们。我一直在研究这个主题,我可以找到的大部分信息都与管理用户的UserManager/RoleManager/SecurityStamp/SignInManager身份ASP.NET方法有关--我们不使用这种方法,也不打算使用这种方法,因为我们使用的是Saml2。

当一个人通过ITFoxtec-Identity-Saml2 2登录,而不强迫他们实际重新登录时,您对如何触发索赔刷新有什么建议吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-15 13:24:31

恐怕您的场景不受SAML2.0标准的支持。基本上,SAML2.0要求用户重新进行身份验证以加载新的声明。

根据您正在使用的IdP,您可以强制用户重新进行身份验证,从而加载新的声明。

强制登录:

代码语言:javascript
复制
var authnRequest = new Saml2AuthnRequest(saml2Config)
{
    ForceAuthn = true,
    ...
};

或者被动登录,这是一个平滑的解决方案,如果IdP加载更新的声明对被动登录请求,而无需重新认证。然后调用IdP,但用户从未发现它。

被动登录请求:

代码语言:javascript
复制
var authnRequest = new Saml2AuthnRequest(saml2Config)
{
    IsPassive = true,
    ...
};

或者,您需要实现一个自定义解决方案,其中应用程序调用由SAML令牌保护的端点。端点查询用户在例如。一个数据库并返回更新的索赔。如果声明被更新,应用程序可以重新登录,我认为没有注销是可能的。

就像这样:

代码语言:javascript
复制
var principal = new ClaimsPrincipal(...);
await httpContext.SignInAsync(Saml2Constants.AuthenticationScheme, principal, 
    new AuthenticationProperties
    {
        IssuedUtc = ...,
        ExpiresUtc = ..,
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58859016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档