0

我的 SAML2 “工作”(身份验证:成功)但 shibboleth 没有向我发送任何索赔数据,我需要用户电子邮件 :)

陈词滥调的人告诉我将其添加我的 SAML2 元数据中……它显然不存在。

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-
format:emailAddress</md:NameIDFormat>

我们正在使用来自https://github.com/Sustainsys/Saml2/的 OWIN 中间件来让这一切正常工作,但它的配置非常好?

        additionalProviders["saml2p"] =
                (IAppBuilder app, string signInAsType, AuthenticationProviderElement config) =>
                {
                    var opt = new Saml2AuthenticationOptions(false)
                    {
                        SPOptions = new SPOptions
                        {
                            EntityId = new EntityId("https://my.site.ca")
                        },
                        SignInAsAuthenticationType = signInAsType,
                        AuthenticationType = "saml2p",
                        Caption = "MySite",
                        Notifications = new Saml2Notifications()
                        {
                            AcsCommandResultCreated = (result, response) =>
                            {
                                var claimsIdentity = result.Principal.Identity as ClaimsIdentity;

                                //None of this exists in the result
                                var userEmail = claimsIdentity.Claims.FirstOrDefault(x => x.Type == "User.email");
                                var userFirstName = claimsIdentity.Claims.FirstOrDefault(x => x.Type == "User.FirstName");
                                var userLastName = claimsIdentity.Claims.FirstOrDefault(x => x.Type == "User.LastName");
                            },
                            LogoutCommandResultCreated = commandResult =>
                            {
                                // Post logout URL
                                commandResult.Location = new Uri("/login", UriKind.Relative);
                            }
                        },
                    };

                    Sustainsys.Saml2.Configuration.Options.GlobalEnableSha256XmlSignatures();

                    opt.IdentityProviders.Add(new IdentityProvider(
                      new EntityId("https://their.site.ca/shibboleth-idp/shibboleth"),
                      opt.SPOptions)
                    {
                        LoadMetadata = true
                    });

                    app.UseSaml2Authentication(opt);
                };

        return additionalProviders;

TL;博士; md:NameIDFormat 不在 SustainSys SAML2 元数据输出中

4

1 回答 1

0

我这边的配置是正确的,问题是 shibboleth 中的配置没有发回http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier声明。

于 2018-08-03T17:10:04.577 回答