1

事情是如何设置的:

我有一个前端门户身份服务器

• 前端门户(角度)使用 oidc 客户端进行身份验证

• 当用户访问前端门户时,他会被重定向到身份服务器进行登录

• 成功验证后,我在身份服务器中设置声明,用户被重定向到带有 id_token 和 access_token 的前端门户

• 我可以使用 oidc 客户端的用户 (user.profile) 访问声明

问题/问题:

例如,如果我更新用户的名字,如何立即更新用户声明,以便最终用户可以立即看到他的更改?在这种情况下是注销然后登录是强制性的,还是无论如何我可以更新索赔?

OIDC 配置

OIDC_SETTINGS: UserManagerSettings = {
        authority: environment.IdentityServer,
        client_id: 'client_id',
        redirect_uri: environment.portal + '/callback',
        response_type: 'id_token token',
        scope: 'openid profile ',
        post_logout_redirect_uri: environment.portal,
        automaticSilentRenew: true,
        silent_redirect_uri: environment.portal + '/refresh',
        includeIdTokenInSilentRenew: true
    };

• 在身份服务器中,我在登录成功后设置声明,并使用GetUserClaims方法

 await HttpContext.SignInAsync(user.Id.ToString(), user.FullName, props, (await _identityManager.GetUserClaims(user)).ToArray());

GetUserClaims方法的示例

var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, user.UserName));

并且“电子邮件”声明类型应位于“个人资料”身份资源的 UserClaims 数组中

我希望这有帮助!先感谢您 :)

4

0 回答 0