首页 > 解决方案 > Umbraco ADFS 集成 (OpenIdConnect) GroupSid 未设置?

问题描述

我已经成功地为 Umbraco 8 设置了 ADFS 集成。我可以登录等等,但我不知道我的角色在哪里..

在 Azure 中进行配置的一方说我可以通过“GroupSid”声明获得它们,但它似乎是空的,还是我错过了什么?

SecurityTokenValidated = async n =>
                {
                    ClaimsIdentity claimsId = n.AuthenticationTicket.Identity;

                    var identityUser = n.AuthenticationTicket.Identity;

                    var newIdentityUser = new ClaimsIdentity(identityUser.AuthenticationType);

                    newIdentityUser.AddClaim(new Claim(ClaimTypes.Email, identityUser.Name));
                    newIdentityUser.AddClaim(new Claim(ClaimTypes.Upn, identityUser.Name));
                    newIdentityUser.AddClaim(new Claim(ClaimTypes.Role, identityUser.Name));
                    newIdentityUser.AddClaim(new Claim(ClaimTypes.GroupSid, identityUser.Name));
                    newIdentityUser.AddClaim(new Claim(ClaimTypes.PrimarySid, identityUser.Name));

                    var nameIdentifier = identityUser.FindFirst(ClaimTypes.NameIdentifier);
                    var givenName = identityUser.FindFirst(ClaimTypes.GivenName);

                    if (nameIdentifier != null)
                    {
                        newIdentityUser.AddClaim(nameIdentifier);
                    }
                    if (givenName != null)
                    {
                        newIdentityUser.AddClaim(givenName);
                    }

                    n.AuthenticationTicket = new AuthenticationTicket(newIdentityUser, n.AuthenticationTicket.Properties);

                   await Task.FromResult(BackOfficeUserPasswordCheckerResult.ValidCredentials);

                },

当断点到达这些行时,我会看到 Claims 集合。

ClaimsIdentity claimsId = n.AuthenticationTicket.Identity;

                var identityUser = n.AuthenticationTicket.Identity;

在这里,我只能看到诸如给定名称等值。

谁能给我一些帮助?是我这边的问题,还是 Azure 中的问题?

非常感谢!

标签: c#model-view-controllerumbracoadfs

解决方案


声明部分负责方未设置的角色(对于测试用户)。


推荐阅读