protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
     request.IsPassive    = configuration.IsPassive;
     request.ForceAuthn   = configuration.ForceAuthn;
     request.Version      = configuration.Version;
     request.IssueInstant = DateTime.UtcNow;
 }
예제 #2
0
        protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
        {
            var audienceRestriction = new AudienceRestriction();

            configuration.AudienceRestriction.Aggregate(audienceRestriction, (a, next) => { a.Audience.Add(next); return(a); });
            request.Conditions.Items.Add(audienceRestriction);
        }
예제 #3
0
 protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
     request.Issuer = new NameId
     {
         Value  = configuration.EntityId,
         Format = NameIdentifierFormats.Entity
     };
 }
예제 #4
0
        protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
        {
            var format = this.ResolveFormat(configuration);

            request.NameIdPolicy = new NameIdPolicy
            {
                AllowCreate = configuration.AllowCreateNameIdPolicy,
                Format      = format
            };
        }
        protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
        {
            if (configuration.RequestedAuthnContextConfiguration == null)
            {
                return;
            }
            var comparison = (AuthnContextComparisonType)Enum.Parse(typeof(AuthnContextComparisonType), configuration.RequestedAuthnContextConfiguration.Comparision);

            request.RequestedAuthnContext = new RequestedAuthnContext
            {
                Comparison       = comparison,
                ItemsElementName = configuration.RequestedAuthnContextConfiguration.RequestedAuthnContexts.Select(x => (AuthnContextType)Enum.Parse(typeof(AuthnContextType), x.AuthnContextType)).ToArray(),
                Items            = configuration.RequestedAuthnContextConfiguration.RequestedAuthnContexts.Select(x => x.AuthnContextUri.AbsoluteUri).ToArray()
            };
        }
예제 #6
0
 protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
     if (configuration.ScopingConfiguration == null)
     {
         return;
     }
     if (configuration.ScopingConfiguration.RequesterIds != null && configuration.ScopingConfiguration.RequesterIds.Count == 0)
     {
         configuration.ScopingConfiguration.RequesterIds.Add(configuration.EntityId);
     }
     request.Scoping = new Scoping
     {
         ProxyCount  = configuration.ScopingConfiguration.PoxyCount.ToString(),
         RequesterId = configuration.ScopingConfiguration.RequesterIds.ToArray()
     };
 }
예제 #7
0
        private string ResolveFormat(AuthnRequestConfiguration configuration)
        {
            var format = NameIdentifierFormats.Unspecified;

            if (configuration.EncryptNameId || configuration.DefaultNameIdFormat == new Uri(NameIdentifierFormats.Encrypted))
            {
                return(NameIdentifierFormats.Encrypted);
            }
            if (configuration.DefaultNameIdFormat != null)
            {
                var defaultNameId = configuration.SupportedNameIdentifierFormats.FirstOrDefault(x => x == configuration.DefaultNameIdFormat);
                if (defaultNameId != null)
                {
                    format = defaultNameId.AbsoluteUri;
                }
            }

            return(format);
        }
예제 #8
0
 protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
 }
 protected override void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
     request.AssertionConsumerServiceIndex = configuration.AssertionConsumerServiceIndex;
 }
예제 #10
0
 public void Build(AuthnRequest request, AuthnRequestConfiguration configuration)
 {
     this.BuildInternal(request, configuration);
 }
예제 #11
0
 protected abstract void BuildInternal(AuthnRequest request, AuthnRequestConfiguration configuration);