/// <summary> /// Called when the provider is loaded by the AD FS service. The config will be loaded in this function. /// </summary> /// <param name="configData"></param> public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { Log("OnAuthenticationPipelineLoad: Provider Version " + version); var registryReader = new RegistryReader(Log); // Read logging entry first to be able to log the reading of the rest if needed this.debuglog = registryReader.Read("debug_log") == "1"; // Read the other defined keys into a dict List <string> configKeys = new List <string>(new string[] { "use_upn", "url", "disable_ssl", "enable_enrollment", "service_user", "service_pass", "service_realm", "realm", "trigger_challenges", "send_empty_pass" }); var configDict = new Dictionary <string, string>(); configKeys.ForEach(key => { string value = registryReader.Read(key); Log("Read value '" + value + "' for key '" + key + "'"); configDict[key] = value; }); string url = GetFromDict(configDict, "url"); if (string.IsNullOrEmpty(url)) { Error("No server URL configured. Can not initialize privacyIDEA without a server URL."); throw new Exception("No server URL configured. Can not initialize privacyIDEA without a server URL."); } // Note: the config asks if ssl verify should be disabled, while the constructor parameter indicates if ssl verify should be enabled! bool shouldUseSSL = GetFromDict(configDict, "disable_ssl", "0") != "1"; this.privacyIDEA = new PrivacyIDEA(url, "PrivacyIDEA-ADFS", shouldUseSSL); this.privacyIDEA.Logger = this; string serviceUser = GetFromDict(configDict, "service_user", ""); string servicePass = GetFromDict(configDict, "service_pass", ""); if (!string.IsNullOrEmpty(serviceUser) && !string.IsNullOrEmpty(servicePass)) { this.privacyIDEA.SetServiceAccount(serviceUser, servicePass, GetFromDict(configDict, "service_realm")); } this.use_upn = GetFromDict(configDict, "use_upn", "0") == "1"; this.enrollmentEnabled = GetFromDict(configDict, "enable_enrollment", "0") == "1"; this.enrollmentApps = registryReader.ReadMultiValue("enrollment_apps"); this.triggerChallenge = GetFromDict(configDict, "trigger_challenges", "0") == "1"; if (!this.triggerChallenge) { // Only if triggerChallenge is disabled, sendEmptyPassword COULD be set this.sendEmptyPassword = GetFromDict(configDict, "send_empty_pass", "0") == "1"; } this.privacyIDEA.Realm = GetFromDict(configDict, "realm", ""); var realmmap = registryReader.GetRealmMapping(); Log("realmmapping: " + string.Join(" , ", realmmap)); this.privacyIDEA.RealmMap = realmmap; }
public void Setup() { server = WireMockServer.Start(); privacyIDEA = new PrivacyIDEA(server.Urls[0], "test", false); }