我正在使用itfoxtec-identity-saml2库与OneLogin SSO集成,那么如何将用户名/电子邮件发送给身份提供商,以便在IdP的用户名框中预先填写? 我知道我们可以使用从SP发送到Idp的AuthnRequest消息中的可选Subject / NameID字段,以从Idp请求特定主题。你们使用ITfoxtec SAML 2.0 MVC做到了吗?
答案 0 :(得分:1)
当前的ITfoxtec Identity SAML 2.0版本不支持具有NameID的Authn Request Subject元素。
版本3.1.0-beta1 https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/releases/tag/3.1.0-beta1支持具有NameID的主题。该Beta版本还增加了对Azure Key Vault的支持。
请让我知道Beta版本是否适合您。
将所选的NameID添加到Saml2AuthnRequest上的Subject:
[Route("Login")]
public IActionResult Login(string returnUrl = null)
{
var binding = new Saml2RedirectBinding();
binding.SetRelayStateQuery(new Dictionary<string, string> { { relayStateReturnUrl, returnUrl ?? Url.Content("~/") } });
return binding.Bind(new Saml2AuthnRequest(config)
{
Subject = new Subject { NameID = new NameID { ID = "abcd" } },
}).ToActionResult();
}