Exemplo n.º 1
0
 /// <summary>
 /// Initialize method implementation
 /// </summary>
 public override void Initialize(BaseProviderParams externalsystem)
 {
     try
     {
         if (!_isinitialized)
         {
             Trace.WriteLine("WebAuthNProvider Initialize");
             if (externalsystem is WebAuthNProviderParams)
             {
                 WebAuthNProviderParams param = externalsystem as WebAuthNProviderParams;
                 Config                           = param.Config;
                 Enabled                          = param.Enabled;
                 IsRequired                       = param.IsRequired;
                 WizardEnabled                    = param.EnrollWizard;
                 ForceEnrollment                  = param.ForceWizard;
                 PinRequired                      = param.PinRequired;
                 PinRequirements                  = param.PinRequirements;
                 DirectLogin                      = param.DirectLogin;
                 ConveyancePreference             = param.Options.AttestationConveyancePreference;
                 Attachement                      = param.Options.AuthenticatorAttachment;
                 Extentions                       = param.Options.Extensions;
                 Location                         = param.Options.Location;
                 UserVerificationIndex            = param.Options.UserVerificationIndex;
                 UserVerificationMethod           = param.Options.UserVerificationMethod;
                 UserVerificationRequirement      = param.Options.UserVerificationRequirement;
                 RequireResidentKey               = param.Options.RequireResidentKey;
                 ChallengeSize                    = param.Configuration.ChallengeSize;
                 HmacSecret                       = param.Options.HmacSecret;
                 CredProtect                      = (UserVerification?)param.Options.CredProtect;
                 EnforceCredProtect               = param.Options.EnforceCredProtect;
                 IdentityModelEventSource.ShowPII = param.Configuration.ShowPII;
                 Fido2Configuration fido = new Fido2Configuration()
                 {
                     ServerDomain                = param.Configuration.ServerDomain,
                     ServerName                  = param.Configuration.ServerName,
                     Origin                      = param.Configuration.Origin,
                     Timeout                     = param.Configuration.Timeout,
                     TimestampDriftTolerance     = param.Configuration.TimestampDriftTolerance,
                     ChallengeSize               = param.Configuration.ChallengeSize,
                     RequireValidAttestationRoot = param.Configuration.RequireValidAttestationRoot
                 };
                 Trace.WriteLine("WebAuthNAdapter Create");
                 _webathn       = new WebAuthNAdapter(fido, _simplemetadataservice);
                 _isinitialized = true;
                 Trace.WriteLine("WebAuthNAdapter Created");
                 Trace.WriteLine("WebAuthNProvider Initialized");
                 return;
             }
             else
             {
                 throw new InvalidCastException("Invalid WebAuthN Provider !");
             }
         }
     }
     catch (Exception ex)
     {
         this.Enabled = false;
         throw ex;
     }
 }
 /// <summary>
 /// Initialize method implementation
 /// </summary>
 public override void Initialize(BaseProviderParams externalsystem)
 {
     try
     {
         if (!_isinitialized)
         {
             Trace.WriteLine("WebAuthNProvider Initialize");
             if (externalsystem is WebAuthNProviderParams)
             {
                 WebAuthNProviderParams param = externalsystem as WebAuthNProviderParams;
                 Config                      = param.Config;
                 Enabled                     = param.Enabled;
                 IsRequired                  = param.IsRequired;
                 WizardEnabled               = param.EnrollWizard;
                 WizardDisabled              = param.EnrollWizardDisabled;
                 ForceEnrollment             = param.ForceWizard;
                 PinRequired                 = param.PinRequired;
                 PinRequirements             = param.PinRequirements;
                 DirectLogin                 = param.DirectLogin;
                 ConveyancePreference        = param.Options.AttestationConveyancePreference;
                 Attachement                 = param.Options.AuthenticatorAttachment;
                 Extentions                  = param.Options.Extensions;
                 UserVerificationMethod      = param.Options.UserVerificationMethod;
                 UserVerificationRequirement = param.Options.UserVerificationRequirement.ToEnum <UserVerificationRequirement>();
                 RequireResidentKey          = param.Options.RequireResidentKey;
                 ChallengeSize               = param.Configuration.ChallengeSize;
                 ForbiddenBrowsers           = param.Configuration.ForbiddenBrowsers;
                 InitiatedBrowsers           = param.Configuration.InitiatedBrowsers;
                 NoCounterBrowsers           = param.Configuration.NoCounterBrowsers;
                 Fido2Configuration fido = new Fido2Configuration()
                 {
                     ServerDomain            = param.Configuration.ServerDomain,
                     ServerName              = param.Configuration.ServerName,
                     Origin                  = param.Configuration.Origin,
                     Timeout                 = param.Configuration.Timeout,
                     TimestampDriftTolerance = param.Configuration.TimestampDriftTolerance,
                     ChallengeSize           = param.Configuration.ChallengeSize
                 };
                 Trace.WriteLine("WebAuthNAdapter Create");
                 _webathn = new WebAuthNAdapter(fido, _metadataservice);
                 Trace.WriteLine("WebAuthNAdapter Created");
                 _isinitialized = true;
                 Trace.WriteLine("WebAuthNProvider Initialized");
                 return;
             }
             else
             {
                 throw new InvalidCastException("Invalid WebAuthN Provider !");
             }
         }
     }
     catch (Exception ex)
     {
         this.Enabled = false;
         throw ex;
     }
 }
        /// <summary>
        /// Initialize method implementation
        /// </summary>
        public override void Initialize(BaseProviderParams externalsystem)
        {
            try
            {
                if (!_isinitialized)
                {
                    if (externalsystem is WebAuthNProviderParams)
                    {
                        WebAuthNProviderParams param = externalsystem as WebAuthNProviderParams;
                        Config                           = param.Config;
                        Enabled                          = param.Enabled;
                        IsRequired                       = param.IsRequired;
                        WizardEnabled                    = param.EnrollWizard;
                        ForceEnrollment                  = param.ForceWizard;
                        PinRequired                      = param.PinRequired;
                        DirectLogin                      = param.DirectLogin;
                        ConveyancePreference             = param.Options.AttestationConveyancePreference;
                        Attachement                      = param.Options.AuthenticatorAttachment;
                        Extentions                       = param.Options.Extensions;
                        Location                         = param.Options.Location;
                        UserVerificationIndex            = param.Options.UserVerificationIndex;
                        UserVerificationMethod           = param.Options.UserVerificationMethod;
                        UserVerificationRequirement      = param.Options.UserVerificationRequirement;
                        RequireResidentKey               = param.Options.RequireResidentKey;
                        ChallengeSize                    = param.Configuration.ChallengeSize;
                        IdentityModelEventSource.ShowPII = param.Configuration.ShowPII;
                        Fido2Configuration fido = new Fido2Configuration()
                        {
                            ServerDomain                = param.Configuration.ServerDomain,
                            ServerName                  = param.Configuration.ServerName,
                            Origin                      = param.Configuration.Origin,
                            Timeout                     = param.Configuration.Timeout,
                            TimestampDriftTolerance     = param.Configuration.TimestampDriftTolerance,
                            ChallengeSize               = param.Configuration.ChallengeSize,
                            RequireValidAttestationRoot = param.Configuration.RequireValidAttestationRoot
                        };

                        _webathn = new WebAuthNAdapter(fido, new SimpleMetadataService(new List <IMetadataRepository> {
                            new StaticMetadataRepository(DateTime.Now.AddMinutes(1).ToUniversalTime())
                        }));

                        _isinitialized = true;
                        return;
                    }
                    else
                    {
                        throw new InvalidCastException("Invalid WebAuthN Provider !");
                    }
                }
            }
            catch (Exception ex)
            {
                this.Enabled = false;
                throw ex;
            }
        }