public string GetSamlLogoutRequest() { try { SAMLLogoutRequest request = new SAMLLogoutRequest(); request.Destination = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.LOGOUT_SEND_TO); request.Alias = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.CPEPS); request.Issuer = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SP_LOGOUT_RETURN_URL); request.QAALevel = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.QAALEVEL); request.Country = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SAMLCOUNTRY); request.SpProvidedId = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.PROVIDERNAME); request.NameID = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SP_ID); request.Id = "_" + Guid.NewGuid().ToString(); SAMLEngine samlEngine = SAMLEngine.Instance; samlEngine.Init(); XmlDocument xml = samlEngine.GenerateLogoutRequest(request); string base64String = Convert.ToBase64String(Encoding.UTF8.GetBytes(xml.OuterXml)); return base64String; } catch (Exception e) { _logger.Error(e); throw; } }
/// <summary> /// Peticion de autenticacion SAML /// </summary> /// <param name="reqPath">ruta de retorno</param> /// <returns>Peticion SAML XML codificado en b64 </returns> public string GetSamLoginRequest(string reqPath) { try { SAMLRequest request = new SAMLRequest(); request.Destination = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SPEPS); request.AssertionConsumerServiceURL = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SP_RETURN_URL) + "?reqPath=" + reqPath; request.Alias = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.CPEPS); request.ProviderName = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.PROVIDERNAME); request.Issuer = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.SAMLISSUER); request.QAALevel = ConfigurationSettingsHelper.GetCriticalConfigSetting(CommonConstants.QAALEVEL); request.Id = "_" + Guid.NewGuid().ToString(); request.AddAttribute("eIdentifier", true); request.AddAttribute("givenName", true); request.AddAttribute("surname", true); request.AddAttribute("inheritedFamilyName", false); request.AddAttribute("eMail", false); SAMLEngine samlEngine = SAMLEngine.Instance; samlEngine.Init(); XmlDocument xml = samlEngine.GenerateRequest(request); _logger.Trace("Peticion SAML2: {0} ;", xml.OuterXml); string b64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(xml.OuterXml)); return b64; } catch (Exception e) { _logger.Error(e); throw; } }