首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SP通过C# Web API中符合标准的IDP元数据启动的SAML2.0 POST

SP通过C# Web API中符合标准的IDP元数据启动的SAML2.0 POST
EN

Stack Overflow用户
提问于 2018-03-20 18:21:06
回答 1查看 403关注 0票数 0

我想集成SP发起的SAML 2.0 POST。此外,我还需要生成Service Provider的元数据,以便将其共享给我的客户。请大家对此有所了解。示例代码会更有帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-08-17 18:01:18

经过研究,我发现用于C# Web API的Sustainsys.saml2是最好的选择,它几乎不需要编码,并且可以通过配置文件中的配置轻松集成。

因此,为了实现该实现,您需要做以下事情:

  1. X509证书,可由openssl工具在cygwin中生成。对于,您可以通过web application.
  2. ADFS服务器为您的应用程序生成authentication
  3. SAML元数据,方法是添加为您的应用程序生成的x509证书。这是一个你可以很容易的生成元数据的网站,你可以在https://www.samltool.com/sp_metadata.php.
  4. Then配置文件中添加配置。有关可以访问https://github.com/Sustainsys/Saml2.
  5. Then的更多信息,请将此代码添加到控制器

中的索引()中

代码语言:javascript
复制
 if (User.Identity.IsAuthenticated)
            {
                var ssotype = WebConfigurationManager.AppSettings["SSOType"];
                if (!string.IsNullOrEmpty(ssotype) && ssotype == "onelogin")
{
                    var email = System.Security.Claims.ClaimsPrincipal.Current.Claims.FirstOrDefault(x => x.Type.Equals("User.email")).Value;
                    Session["loginUserId"] = email;
                }
                else
                {
                    var email = System.Security.Claims.ClaimsPrincipal.Current.Claims.FirstOrDefault(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")).Value;
                    Session["loginUserId"] = email;
                }
                Response.Redirect("index.html",false);
            }
            else
            {
                String redirecturl = null;
                var idp = Sustainsys.Saml2.Configuration.SustainsysSaml2Section.Current.IdentityProviders.FirstOrDefault();
                var routevalues = new RouteValueDictionary();
                routevalues.Add("idp", idp.EntityId);
                redirecturl = "~/Saml2/SignIn?idp=" + HttpUtility.UrlEncode(idp.EntityId);
                Response.Redirect(redirecturl,false);
                
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49381613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档