微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Blazor 服务器应用程序 - OKTA 组未出现在声明中

如何解决Blazor 服务器应用程序 - OKTA 组未出现在声明中

我在 OKTA 中创建了一个 Blazor Server Web 应用程序并启用了 Open Id。还添加了 2 个用户及其组。下面是我在 Startup.cs 中配置 OpenId 的代码。我可以记录并获取索赔详情。

//hk okta

            services.AddAuthentication(options =>
            {
                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;

            })
            .AddCookie()
            .AddOpenIdConnect(options =>
            {
                options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.Authority = Configuration["Okta:Domain"] + "/oauth2/default";
                options.RequireHttpsMetadata = true;
                options.ClientId = Configuration["Okta:ClientId"];
                options.ClientSecret = Configuration["Okta:ClientSecret"];
                options.ResponseType = OpenIdConnectResponseType.Code;
                options.Scope.Add("openid");
                options.Scope.Add("profile");
                options.Savetokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    NameClaimType = "name",RoleClaimType = "groups",RequireSignedTokens = true
                };
            }
            );

即使我在 Claim 中获得了详细信息,登录用户的组名也没有出现在任何地方。有没有办法解决这个问题或任何其他线索?我正在循环浏览如下声明。

@foreach (var claim in context.User.Claims)
                {
                    <tr>
                        <td>@claim.Type</td>
                        <td>@claim.Value</td>
                    </tr>

解决方法

我注意到我在“声明”设置页面中错误地选择了一个过滤选项,这导致我的群组被错误地过滤。现在我的所有群组都出现在 Claim 中。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。