Tag: saml 2.0

使用Kentor.AuthServices.StubIdp作为生产IDP

我正在尝试在我的应用程序中实现IDP(SAML2)服务器。 鉴于我的应用程序具有所需的所有数据,我不希望我的任何合作伙伴要求我们的客户注册他们。 我对SAML2协议不太熟悉。 我发现项目Kentor.AuthServices.StubIdp是最有趣的,因为它实现了我需要的一切。 我也知道它不是为生产目的而建的。 我计划在StubIdp之上构建IDP,因为我买不起像ComponentPro这样昂贵的解决方案。 有更好的选择吗? 建立在StubIdp之上是一个好主意吗?

如何使用System.Cryptography解密EncryptedAssertion

身份提供程序使用component pro的function加密Saml Assertion Dim encryptedSamlAssertion As New EncryptedAssertion(samlAssertion, encryptingCert, New System.Security.Cryptography.Xml.EncryptionMethod(SamlKeyAlgorithm.Aes256Cbc)) 在服务提供商处,我试图解密断言。 但我不能使用组件专业版。 我必须使用System.Security.Cryptography X509Certificate用于加密和解密 Aes256Cbc是加密算法 请帮助我提供一些有关如何使用X509Certificate和Aes256Cbc算法实现SamlAssertions解密的更多信息

使用.NET 4.5(System.IdentityModel)/ WIF解密SAML 2断言

我正在尝试解密从基于Java的身份提供程序发出的加密SAML 2.0断言。 鉴于以下安全令牌处理程序的设置: X509Certificate2 cert = … // Contains private key var serviceTokens = new List(); serviceTokens.Add(new X509SecurityToken(cert)); var issuers = new ConfigurationBasedIssuerNameRegistry(); issuers.AddTrustedIssuer(“…thumbprint…”, “nottherealname”); var configuration = new SecurityTokenHandlerConfiguration { AudienceRestriction = { AudienceMode = AudienceUriMode.Never }, CertificateValidationMode = X509CertificateValidationMode.None, RevocationMode = X509RevocationMode.NoCheck, IssuerNameRegistry = issuers, MaxClockSkew = TimeSpan.FromMinutes(5), ServiceTokenResolver = SecurityTokenResolver.CreateDefaultSecurityTokenResolver(serviceTokens.AsReadOnly(), false) }; […]

我应该如何在ASP.NET MVC 4服务提供程序中实现SAMLP 2.0?

我正在使用C#开发一个MVC 4 Web应用程序,并希望使用现有的SAML 2.0身份提供程序来处理登录。 我正在使用与SimpleSAMLphp的 HTTP POST绑定 。 看起来,在.NET 4.5中,我应该使用Windows Identity Foundation 。 首先,我尝试安装身份和访问工具 。 (我使用的是Visual Studio 2013,它应该集成了这个工具,但是VS2013的版本不支持“re-entrancy” ,这意味着我不能用它来为我现有的应用程序添加WIF支持。) 在将Identity and Access Tool指向我的身份提供者的元数据后,我收到以下错误消息: 显然,这是错误消息,表明WIF不支持SAMLP 2.0 。 这似乎与支持的SAML 2.0 令牌不同(至少,这个过时的文档表明存在Microsoft.IdentityModel.Tokens.Saml2命名空间)。 然后我发现了SAML 2.0的WIF扩展 。 然而,这是在2011年5月发布的,从那时起似乎没有被触及过。 尽管如此,我下载了扩展程序并尝试构建ZIP文件中包含的SamlConfigTool。 该工具是一个控制台应用程序,通知我: 此工具将提示您创建描述您的信赖方的元数据文件所需的信息。 它将提示下载合作伙伴元数据文件的地址。 最后,它将输出一个名为Changes_To_Web_Config.xml的文件,该文件应对您的网站的web.config文件进行更改以启用SAML保护。 输入我的实体ID和SAML端点后,SamlConfigTool立即崩溃。 好吧,也许我不需要使用配置工具,我可以复制示例ServiceProvider VS项目中完成的工作。 迁移后,我可以在VS2012中打开项目,但我不清楚它究竟是如何工作的 – 它似乎不包含任何C#代码,只是Web.config中的新条目。 我不清楚如何调整此配置来替换我的MVC 4应用程序中的自定义登录代码,并且无论如何依赖于3年前的死库似乎不是一个好主意。 那么, 在ASP.NET MVC 4中实现SAML 2.0的最佳方法是什么 ? 我正在手工解码,编码,解析和压缩XML,感觉应该有一种更简单的方法。

如何使用C#正确准备“HTTP重定向绑定”SAML请求

我需要使用HTTP重定向绑定方法创建SP启动的SAML 2.0身份validation事务。 事实certificate这很容易。 只需获取IdP URI并连接单个查询字符串参数SAMLRequest 。 param是xml的编码块,用于描述SAML请求。 到现在为止还挺好。 将SAML转换为查询字符串参数时出现问题。 我相信这个准备过程应该是: 构建SAML字符串 压缩此字符串 Base64编码字符串 UrlEncode字符串。 SAML请求 URN:xx-xx-xx 代码 private string GetSAMLHttpRedirectUri(string idpUri) { var saml = string.Format(SAMLRequest, Guid.NewGuid()); var bytes = Encoding.UTF8.GetBytes(saml); using (var output = new MemoryStream()) { using (var zip = new DeflaterOutputStream(output)) { zip.Write(bytes, 0, bytes.Length); } var base64 = Convert.ToBase64String(output.ToArray()); var urlEncode […]

使用C#在XML中进行SAML断言

这是我面临的问题,需要一些帮助/指导。 我从我的引擎生成了一条XML消息,需要将其解析为服务。 为此,我必须将该消息更改为SOAP消息并在其上插入SAML令牌。 我正在尝试使用C#代码执行此操作。 下面是我生成的输入消息和预期输出: 输入消息: 删除已在SOAP Body中插入的输入消息 期望的输出消息: https://localhost:443/Gateway/PatientDiscovery/1_0/NwHINService/NwHINPatientDiscovery urn:hl7-org:v3:PRPA_IN201305UV02:CrossGatewayPatientDiscovery http://www.w3.org/2005/08/addressing/anonymous 461433e3-4591-453b-9eb6-791c7f5ff882 2012-06-08T18:31:44Z 2012-06-08T18:36:44Z CN=SAML User,OU=SU,O=SAML User,L=Los Angeles,ST=CA,C=US 5MearYAjQTErf01u/7UlKo2hEyc= eCEFcl9iEl6u0MrAehJdsRrgbOCnirOE8i9IQpYMb25sMEaeLzXR7SFGf+TrPyv87YwYUr8lP1xK Iohggt9yCkdvsVIOhRxiOQmK36ATjIsCNVdjqQwH2Ez9q9esRPgWIlS0vDRKxylaz1eGEX5ZCGdg rBuScX3uvVjA5s/SVfQh6Enw9cbW/1i5Vcrvrie9ro2EdNS6CM1qLmf9bY37E5XK3f3Zt2xne1TH OXyqH9jXU5RdE14vD+jNHAjCLq61rG5+ImWtZ2sYmp8+vLJGOVSH6yUEDV2v04AdsXUYbjgRvMjo /mC8Mec2LdX0pGAuqS+hF4xdlR4RNI74Jj7Esg== maFp5lsEHjhrQQCL0e8cbxMoDpGk1r6Uion/LA2iuD3T+sspJh8TNToQrurpFFVY/u6IzHKIk64s 9894pxbwYNwv/LzRVzM5pOXmCT73KGAg3Cry+QOO5KrN8hR/OXyH90/LIS77FZY+bepqD6qx4URa 2/GLll08fu8xh1wPFDMCFAmb2Xz/5gK0fimUXJAWi1+PlNKMLnDGxHgvz5ZwiN1/QwXcQEc1mcJC imLoiCSrk7nvmqkxX4ZZ1dYzQJWdlB8Om4r9Uu96q5cZFTYwSdivLpPFKSzn/2MI9NryZC0VaIBu HRhgAmspAzM90BjLO5vtiwrrfx/E3uYcMjcSEQ== AQAB UID=WilmaAnderson maFp5lsEHjhrQQCL0e8cbxMoDpGk1r6Uion/LA2iuD3T+sspJh8TNToQrurpFFVY/u6IzHKIk64s9894pxbwYNwv/LzRVz M5pOXmCT73KGAg3Cry+QOO5KrN8hR/OXyH90/LIS77FZY+bepqD6qx4URa2/GLll08fu8xh1wPFDMCFAmb2Xz/5gK0fimUXJAWi1+PlNKML nDGxHgvz5ZwiN1/QwXcQEc1mcJCimLoiCSrk7nvmqkxX4ZZ1dYzQJWdlB8Om4r9Uu96q5cZFTYwSdivLpPFKSzn/2MI9NryZC0VaIBuHRhg AmspAzM90BjLO5vtiwrrfx/E3uYcMjcSEQ== AQAB urn:oasis:names:tc:SAML:2.0:ac:classes:X509 WilmaWA Anderson 2.16.840.1.113883.3.609.10.330.000 2.16.840.1.113883.3.609.10.330.000 2.16.840.1.113883.3.609.10.330.000 PATAA000000040^^^&2.16.840.1.113883.3.609.20.330.000&ISO wOyuouXyvOr9+wFonBcY/sfKQdc= L3DLzs6axzNlKUuySKvg52ljw+QrLkmJLbJH7kyHoafjyUavzmw3IPAsg70UfVS8tpM+ut7Im4ouqn9eVOttY2BY8MTyBGUSlwj/2IGHdzxoqcXpLFXxx7ntti2Zt/mfmnV1A+iu+a0l5uIRBy6OdxbSsZg1yK2UYaR60WkVEXVH1MZXnHmE33woHjrScvXh1i mdJ8apZzCuWZ4Nlbf85kvwVjriyCOK2O1nUvY7ZmSsuHGqTOrgemoDQxlNKb3F4Rn48W1yIiAAAJZuq2Qx5KJ4b6aX17/M73pqvqTKMz5Wv YrmL54FzhXIalns6LzAZ6EZo4YdYOODmuchIZwZqg== _e1154a8a-bbd5-426d-afa5-ed7071f1b1ff Test Testing 使用X509证书我可以创建签名部分。 但是,我无法创建SAML断言和SOAP消息。 如果有人可以帮助/指导我这将是一个很大的帮助。 这是我在C#中的代码: […]