Class: OmniauthOpenidFederation::FederationEndpoint::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth_openid_federation/federation_endpoint.rb,
sig/federation.rbs

Overview

Configuration class for FederationEndpoint Supports automatic key provisioning with separate signing and encryption keys Supports both openid_provider (OP) and openid_relying_party (RP) entity types

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 762

def initialize
  @issuer = nil
  @subject = nil
  @private_key = nil # Signing key (DEV/TESTING: can be same as encryption, PRODUCTION: use separate signing_key)
  @jwks = nil
  @metadata = nil
  @expiration_seconds = 86400 # 24 hours
  @kid = nil
  # Entity type configuration
  @entity_type = :openid_relying_party # Default to RP (primary use case)
  # Automatic key provisioning defaults
  @signing_key = nil # RECOMMENDED: Separate signing key for production
  @encryption_key = nil # RECOMMENDED: Separate encryption key for production
  @auto_provision_keys = true # Enable automatic key provisioning
  @entity_statement_path = nil # Path to cached entity statement (supports automatic key rotation)
  @key_rotation_period = nil # Key rotation period in seconds (nil = no automatic rotation)
  # JWKS endpoint defaults
  @current_jwks = nil
  @current_jwks_proc = nil
  # Signed JWKS endpoint defaults
  @signed_jwks_payload = nil
  @signed_jwks_payload_proc = nil
  @signed_jwks_expiration_seconds = 86400 # 24 hours
  @signed_jwks_signing_kid = nil
  # Caching defaults
  @jwks_cache_ttl = 3600 # 1 hour
  # Fetch Endpoint defaults
  @subordinate_statements = nil # Hash of subject_entity_id => {metadata, metadata_policy, constraints}
  @subordinate_statements_proc = nil # Proc that takes subject_entity_id and returns Subordinate Statement JWT
end

Instance Attribute Details

#authority_hintsArray[String]?

Authority hints configuration (for Entity Configuration)

Returns:

  • (Array[String], nil)


760
761
762
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 760

def authority_hints
  @authority_hints
end

#auto_provision_keysBoolean

Automatic key provisioning configuration

Returns:

  • (Boolean)


750
751
752
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 750

def auto_provision_keys
  @auto_provision_keys
end

#current_jwksHash[String, untyped]?

JWKS endpoint configuration

Returns:

  • (Hash[String, untyped], nil)


752
753
754
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 752

def current_jwks
  @current_jwks
end

#current_jwks_procProc?

JWKS endpoint configuration

Returns:

  • (Proc, nil)


752
753
754
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 752

def current_jwks_proc
  @current_jwks_proc
end

#encryption_keyObject

Automatic key provisioning configuration

Returns:

  • (Object)


750
751
752
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 750

def encryption_key
  @encryption_key
end

#entity_statement_pathString?

Automatic key provisioning configuration

Returns:

  • (String, nil)


750
751
752
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 750

def entity_statement_path
  @entity_statement_path
end

#entity_typeSymbol

Entity type configuration

Returns:

  • (Symbol)


748
749
750
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 748

def entity_type
  @entity_type
end

#expiration_secondsInteger

Returns the value of attribute expiration_seconds.

Returns:

  • (Integer)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def expiration_seconds
  @expiration_seconds
end

#issuerString?

Returns the value of attribute issuer.

Returns:

  • (String, nil)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def issuer
  @issuer
end

#jwksHash[String, untyped]?

Returns the value of attribute jwks.

Returns:

  • (Hash[String, untyped], nil)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def jwks
  @jwks
end

#jwks_cache_ttlInteger

Caching configuration

Returns:

  • (Integer)


756
757
758
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 756

def jwks_cache_ttl
  @jwks_cache_ttl
end

#key_rotation_periodInteger?

Automatic key provisioning configuration

Returns:

  • (Integer, nil)


750
751
752
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 750

def key_rotation_period
  @key_rotation_period
end

#kidString?

Returns the value of attribute kid.

Returns:

  • (String, nil)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def kid
  @kid
end

#metadataHash[String, untyped]?

Returns the value of attribute metadata.

Returns:

  • (Hash[String, untyped], nil)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def 
  @metadata
end

#private_keyObject

Returns the value of attribute private_key.

Returns:

  • (Object)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def private_key
  @private_key
end

#signed_jwks_expiration_secondsInteger

Signed JWKS endpoint configuration

Returns:

  • (Integer)


754
755
756
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 754

def signed_jwks_expiration_seconds
  @signed_jwks_expiration_seconds
end

#signed_jwks_payloadHash[String, untyped]?

Signed JWKS endpoint configuration

Returns:

  • (Hash[String, untyped], nil)


754
755
756
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 754

def signed_jwks_payload
  @signed_jwks_payload
end

#signed_jwks_payload_procProc?

Signed JWKS endpoint configuration

Returns:

  • (Proc, nil)


754
755
756
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 754

def signed_jwks_payload_proc
  @signed_jwks_payload_proc
end

#signed_jwks_signing_kidString?

Signed JWKS endpoint configuration

Returns:

  • (String, nil)


754
755
756
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 754

def signed_jwks_signing_kid
  @signed_jwks_signing_kid
end

#signing_keyObject

Automatic key provisioning configuration

Returns:

  • (Object)


750
751
752
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 750

def signing_key
  @signing_key
end

#subjectString?

Returns the value of attribute subject.

Returns:

  • (String, nil)


746
747
748
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 746

def subject
  @subject
end

#subordinate_statementsHash[String, Hash[Symbol, untyped]]?

Fetch Endpoint configuration (for serving Subordinate Statements)

Returns:

  • (Hash[String, Hash[Symbol, untyped]], nil)


758
759
760
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 758

def subordinate_statements
  @subordinate_statements
end

#subordinate_statements_procProc?

Fetch Endpoint configuration (for serving Subordinate Statements)

Returns:

  • (Proc, nil)


758
759
760
# File 'lib/omniauth_openid_federation/federation_endpoint.rb', line 758

def subordinate_statements_proc
  @subordinate_statements_proc
end