add_auth 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +38 -14
- data/ROADMAP.md +87 -38
- data/SECURITY.md +6 -0
- data/app/controllers/add_auth/accounts_controller.rb +138 -0
- data/app/controllers/add_auth/assets_controller.rb +2 -1
- data/app/controllers/add_auth/external_identities_controller.rb +56 -0
- data/app/controllers/add_auth/mobile_sessions_controller.rb +120 -0
- data/app/controllers/add_auth/provider_sign_ins_controller.rb +248 -0
- data/app/helpers/add_auth/sign_ins_helper.rb +2 -1
- data/app/jobs/add_auth/account_delivery_job.rb +14 -0
- data/app/jobs/add_auth/account_request_job.rb +17 -0
- data/app/mailers/add_auth/account_mailer.rb +12 -0
- data/app/views/add_auth/account_mailer/link.text.erb +7 -0
- data/app/views/add_auth/accounts/_check_email.html.erb +5 -0
- data/app/views/add_auth/accounts/_delete.html.erb +6 -0
- data/app/views/add_auth/accounts/_email.html.erb +12 -0
- data/app/views/add_auth/accounts/_invalid_proof.html.erb +5 -0
- data/app/views/add_auth/accounts/_password.html.erb +12 -0
- data/app/views/add_auth/accounts/_proof.html.erb +16 -0
- data/app/views/add_auth/accounts/_register.html.erb +17 -0
- data/app/views/add_auth/accounts/_request.html.erb +14 -0
- data/app/views/add_auth/accounts/_unavailable.html.erb +3 -0
- data/app/views/add_auth/external_identities/_index.html.erb +22 -0
- data/app/views/add_auth/external_identities/_unavailable.html.erb +3 -0
- data/app/views/add_auth/passkeys/_controls.html.erb +3 -1
- data/app/views/add_auth/provider_sign_ins/_enrollment.html.erb +12 -0
- data/app/views/add_auth/provider_sign_ins/_failure.html.erb +3 -0
- data/app/views/add_auth/provider_sign_ins/_prepare.html.erb +7 -0
- data/app/views/add_auth/reauthentications/_form.html.erb +9 -0
- data/app/views/add_auth/sessions/_list.html.erb +1 -1
- data/app/views/add_auth/sessions/index.html.erb +7 -0
- data/app/views/add_auth/sign_ins/_confirmation.html.erb +1 -0
- data/app/views/add_auth/sign_ins/_form.html.erb +17 -0
- data/app/views/add_auth/sign_ins/_remember.html.erb +6 -0
- data/app/views/layouts/add_auth/authentication.html.erb +4 -3
- data/exe/add_auth-preflight +26 -0
- data/lib/add_auth/configuration.rb +78 -4
- data/lib/add_auth/core/access_policy.rb +11 -1
- data/lib/add_auth/core/account_lifecycle.rb +251 -0
- data/lib/add_auth/core/account_policy.rb +50 -0
- data/lib/add_auth/core/external_identities/evidence.rb +98 -0
- data/lib/add_auth/core/external_identities.rb +278 -0
- data/lib/add_auth/core/intake.rb +6 -1
- data/lib/add_auth/core/maintenance.rb +5 -3
- data/lib/add_auth/core/migration/account_adoption.rb +79 -0
- data/lib/add_auth/core/migration/readiness.rb +41 -0
- data/lib/add_auth/core/mobile_authentication.rb +35 -0
- data/lib/add_auth/core/mobile_handoffs.rb +83 -0
- data/lib/add_auth/core/mobile_profile.rb +46 -0
- data/lib/add_auth/core/mobile_response.rb +12 -0
- data/lib/add_auth/core/native_authentication.rb +77 -0
- data/lib/add_auth/core/passwords/bcrypt_support.rb +28 -0
- data/lib/add_auth/core/passwords/credential.rb +49 -0
- data/lib/add_auth/core/passwords/legacy_bcrypt.rb +43 -0
- data/lib/add_auth/core/passwords/lifecycle.rb +60 -0
- data/lib/add_auth/core/remaining_factors.rb +24 -0
- data/lib/add_auth/core/sessions.rb +102 -17
- data/lib/add_auth/core/step_up.rb +13 -1
- data/lib/add_auth/migration/static_inventory.rb +116 -0
- data/lib/add_auth/rails/account_password_entry.rb +24 -0
- data/lib/add_auth/rails/authentication.rb +1 -1
- data/lib/add_auth/rails/authentication_pages.rb +5 -0
- data/lib/add_auth/rails/doctor.rb +70 -3
- data/lib/add_auth/rails/ejection.rb +1 -1
- data/lib/add_auth/rails/engine.rb +6 -1
- data/lib/add_auth/rails/migration/account_store.rb +41 -0
- data/lib/add_auth/rails/migration/effective_inventory.rb +162 -0
- data/lib/add_auth/rails/migration/key_type.rb +23 -0
- data/lib/add_auth/rails/migration/source_bridge.rb +53 -0
- data/lib/add_auth/rails/password_adoption.rb +37 -0
- data/lib/add_auth/rails/provider_enrollment.rb +61 -0
- data/lib/add_auth/rails/provider_libraries/apple_form_post_correlation.rb +127 -0
- data/lib/add_auth/rails/provider_libraries/apple_jwks.rb +68 -0
- data/lib/add_auth/rails/provider_libraries/apple_native.rb +55 -0
- data/lib/add_auth/rails/provider_libraries/callback_route.rb +16 -0
- data/lib/add_auth/rails/provider_libraries/omniauth.rb +136 -0
- data/lib/add_auth/rails/provider_libraries/omniauth_correlation.rb +107 -0
- data/lib/add_auth/rails/provider_libraries/openid_connect.rb +62 -0
- data/lib/add_auth/rails/provider_libraries/request_protection.rb +43 -0
- data/lib/add_auth/rails/runtime.rb +170 -8
- data/lib/add_auth/rails/stores/account_credentials.rb +44 -0
- data/lib/add_auth/rails/stores/account_lock.rb +16 -7
- data/lib/add_auth/rails/stores/account_tokens.rb +96 -0
- data/lib/add_auth/rails/stores/authority.rb +28 -0
- data/lib/add_auth/rails/stores/commit_dispatch.rb +32 -0
- data/lib/add_auth/rails/stores/external_identities.rb +91 -0
- data/lib/add_auth/rails/stores/maintenance.rb +1 -1
- data/lib/add_auth/rails/stores/mobile_handoffs.rb +53 -0
- data/lib/add_auth/rails/stores/security_events.rb +3 -6
- data/lib/add_auth/rails/user_lifecycle.rb +8 -10
- data/lib/add_auth/result.rb +1 -0
- data/lib/add_auth/version.rb +1 -1
- data/lib/add_auth.rb +4 -0
- data/lib/generators/add_auth/accounts/accounts_generator.rb +52 -0
- data/lib/generators/add_auth/accounts/templates/add_add_auth_accounts.rb.tt +49 -0
- data/lib/generators/add_auth/accounts/templates/add_auth_account_token.rb +6 -0
- data/lib/generators/add_auth/accounts/templates/add_auth_address_claim.rb +6 -0
- data/lib/generators/add_auth/devise_accounts/devise_accounts_generator.rb +23 -0
- data/lib/generators/add_auth/devise_accounts/templates/prepare_add_auth_devise_accounts.rb.tt +17 -0
- data/lib/generators/add_auth/email_link/templates/add_auth_challenge.js +1 -0
- data/lib/generators/add_auth/email_tokens/templates/create_add_auth_sign_in_tokens.rb.tt +3 -1
- data/lib/generators/add_auth/external_identities/external_identities_generator.rb +52 -0
- data/lib/generators/add_auth/external_identities/templates/add_add_auth_external_enrollment.rb.tt +5 -0
- data/lib/generators/add_auth/external_identities/templates/add_add_auth_external_identity_validity.rb.tt +5 -0
- data/lib/generators/add_auth/external_identities/templates/add_auth_external_identity.rb +4 -0
- data/lib/generators/add_auth/external_identities/templates/add_auth_external_transaction.rb +6 -0
- data/lib/generators/add_auth/external_identities/templates/create_add_auth_external_identities.rb.tt +50 -0
- data/lib/generators/add_auth/external_identities/templates/providers.rb +51 -0
- data/lib/generators/add_auth/install/templates/initializer.rb +4 -0
- data/lib/generators/add_auth/javascript/templates/passkey.js +8 -5
- data/lib/generators/add_auth/mobile_sessions/mobile_sessions_generator.rb +48 -0
- data/lib/generators/add_auth/mobile_sessions/templates/add_add_auth_mobile_sessions.rb.tt +9 -0
- data/lib/generators/add_auth/mobile_sessions/templates/add_auth_mobile_handoff.rb +5 -0
- data/lib/generators/add_auth/mobile_sessions/templates/create_add_auth_mobile_handoffs.rb.tt +27 -0
- data/lib/generators/add_auth/mobile_sessions/templates/mobile.rb +8 -0
- data/lib/generators/add_auth/notifications/templates/create_add_auth_security_events.rb.tt +3 -1
- data/lib/generators/add_auth/passkeys/templates/add_add_auth_passkeys.rb.tt +7 -3
- data/lib/generators/add_auth/step_up/templates/add_add_auth_reauthentication.rb.tt +3 -1
- data/lib/tasks/add_auth.rake +18 -1
- metadata +85 -2
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
class CreateAddAuthMobileHandoffs < ActiveRecord::Migration[8.0]
|
|
2
|
+
def change
|
|
3
|
+
user_key = connection.columns(:users).find { |column| column.name == connection.primary_key(:users) }
|
|
4
|
+
raise "Unsupported authentication primary key" unless user_key && [:integer, :uuid].include?(user_key.type)
|
|
5
|
+
user_type = (user_key.type == :integer && user_key.limit == 8) ? :bigint : user_key.type
|
|
6
|
+
create_table :add_auth_mobile_handoffs do |t|
|
|
7
|
+
t.references :user, type: user_type, foreign_key: {on_delete: :cascade}
|
|
8
|
+
t.string :external_digest, null: false
|
|
9
|
+
t.string :digest
|
|
10
|
+
t.string :client_id, limit: 64, null: false
|
|
11
|
+
t.string :callback, limit: 2048, null: false
|
|
12
|
+
t.string :state, limit: 128, null: false
|
|
13
|
+
t.string :challenge_digest, null: false
|
|
14
|
+
t.string :credential_id
|
|
15
|
+
t.string :credential_version
|
|
16
|
+
t.integer :policy_version
|
|
17
|
+
t.datetime :authenticated_at
|
|
18
|
+
t.datetime :issued_at, null: false
|
|
19
|
+
t.datetime :expires_at, null: false
|
|
20
|
+
t.datetime :consumed_at
|
|
21
|
+
t.timestamps
|
|
22
|
+
end
|
|
23
|
+
add_index :add_auth_mobile_handoffs, :external_digest, unique: true
|
|
24
|
+
add_index :add_auth_mobile_handoffs, :digest, unique: true
|
|
25
|
+
add_index :add_auth_mobile_handoffs, :expires_at
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Mobile sessions are optional and remain disabled after generating persistence.
|
|
2
|
+
# Review the host/client timeout policy before enabling. These are example values.
|
|
3
|
+
# AddAuth.configure do |config|
|
|
4
|
+
# config.mobile.lifetime = 30 * 86_400
|
|
5
|
+
# config.mobile.idle_timeout = 14 * 86_400
|
|
6
|
+
# config.mobile.clients = %w[android ios]
|
|
7
|
+
# config.mobile.enabled = true
|
|
8
|
+
# end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
require "add_auth/rails/migration/key_type"
|
|
2
|
+
|
|
1
3
|
class CreateAddAuthSecurityEvents < ActiveRecord::Migration[8.0]
|
|
2
4
|
def change
|
|
3
5
|
create_table :add_auth_security_events do |t|
|
|
4
|
-
t.references :user, foreign_key: {on_delete: :nullify}
|
|
6
|
+
t.references :user, type: AddAuth::Rails::Migration::KeyType.for(connection, :users), foreign_key: {on_delete: :nullify}
|
|
5
7
|
t.string :kind, null: false
|
|
6
8
|
t.string :digest, null: false
|
|
7
9
|
t.text :delivery_payload
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
require "add_auth/rails/migration/key_type"
|
|
2
|
+
|
|
1
3
|
class AddAddAuthPasskeys < ActiveRecord::Migration[8.0]
|
|
2
4
|
def change
|
|
5
|
+
user_key_type = AddAuth::Rails::Migration::KeyType.for(connection, :users)
|
|
6
|
+
session_key_type = AddAuth::Rails::Migration::KeyType.for(connection, :sessions, session: true)
|
|
3
7
|
# Rails 8.0 cannot reflect SQLite's FALSE literal emitted by Rails 8.1.
|
|
4
8
|
# Keep the additive schema readable by both supported Rails lines.
|
|
5
9
|
false_default = (connection.adapter_name == "SQLite") ? -> { "0" } : false
|
|
@@ -11,7 +15,7 @@ class AddAddAuthPasskeys < ActiveRecord::Migration[8.0]
|
|
|
11
15
|
add_column :sessions, :authentication_credential_id, :string
|
|
12
16
|
add_column :sessions, :authentication_uv, :boolean, default: false_default, null: false
|
|
13
17
|
create_table :add_auth_credentials do |t|
|
|
14
|
-
t.references :user, null: false, foreign_key: {on_delete: :cascade}
|
|
18
|
+
t.references :user, type: user_key_type, null: false, foreign_key: {on_delete: :cascade}
|
|
15
19
|
t.string :external_id, null: false
|
|
16
20
|
t.text :public_key, null: false
|
|
17
21
|
t.bigint :sign_count, default: 0, null: false
|
|
@@ -31,8 +35,8 @@ class AddAddAuthPasskeys < ActiveRecord::Migration[8.0]
|
|
|
31
35
|
t.string :kind, null: false
|
|
32
36
|
t.string :browser_digest, null: false
|
|
33
37
|
t.string :configuration_digest, null: false
|
|
34
|
-
t.references :user, foreign_key: {on_delete: :cascade}
|
|
35
|
-
t.references :session, foreign_key: {on_delete: :cascade}
|
|
38
|
+
t.references :user, type: user_key_type, foreign_key: {on_delete: :cascade}
|
|
39
|
+
t.references :session, type: session_key_type, foreign_key: {on_delete: :cascade}
|
|
36
40
|
t.string :session_digest
|
|
37
41
|
t.string :authentication_purpose
|
|
38
42
|
t.datetime :expires_at, null: false
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
require "add_auth/rails/migration/key_type"
|
|
2
|
+
|
|
1
3
|
class AddAddAuthReauthentication < ActiveRecord::Migration[8.0]
|
|
2
4
|
def change
|
|
3
5
|
add_column :sessions, :elevation_version, :string
|
|
4
6
|
add_column :sessions, :elevation_expires_at, :datetime
|
|
5
|
-
add_reference :add_auth_sign_in_tokens, :session, foreign_key: {on_delete: :cascade}
|
|
7
|
+
add_reference :add_auth_sign_in_tokens, :session, type: AddAuth::Rails::Migration::KeyType.for(connection, :sessions, session: true), foreign_key: {on_delete: :cascade}
|
|
6
8
|
add_column :add_auth_sign_in_tokens, :session_digest, :string
|
|
7
9
|
add_column :add_auth_sign_in_tokens, :authentication_purpose, :string
|
|
8
10
|
end
|
data/lib/tasks/add_auth.rake
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
namespace :add_auth do
|
|
4
|
+
desc "Read-only Devise inventory in an isolated local test/development host"
|
|
5
|
+
task devise_preflight: :environment do
|
|
6
|
+
require "json"
|
|
7
|
+
require "add_auth/rails/migration/effective_inventory"
|
|
8
|
+
begin
|
|
9
|
+
report = AddAuth::Rails::Migration::EffectiveInventory.new.call
|
|
10
|
+
puts JSON.pretty_generate(report)
|
|
11
|
+
abort "Inventory is incomplete; resolve the reported bounds before migration." unless report.dig(:facts, :complete)
|
|
12
|
+
rescue
|
|
13
|
+
# Host exception text may contain query values or secret configuration.
|
|
14
|
+
abort "Effective inventory failed. Use an isolated local Devise host with one SQLite/PostgreSQL pool and no surrounding transaction."
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
4
18
|
desc "Check installed AddAuth authentication, delivery and maintenance wiring"
|
|
5
19
|
task doctor: :environment do
|
|
6
20
|
require "add_auth/rails/doctor"
|
|
@@ -19,13 +33,16 @@ namespace :add_auth do
|
|
|
19
33
|
require "add_auth/rails/stores/maintenance"
|
|
20
34
|
models = {}
|
|
21
35
|
models[:session] = ::Session if AddAuth.configuration.session.enabled && defined?(::Session)
|
|
36
|
+
models[:external_transaction] = ::AddAuthExternalTransaction if defined?(::AddAuthExternalTransaction)
|
|
37
|
+
models[:mobile_handoff] = ::AddAuthMobileHandoff if defined?(::AddAuthMobileHandoff)
|
|
22
38
|
models[:ceremony] = ::AddAuthCeremony if defined?(::AddAuthCeremony)
|
|
23
39
|
models[:email] = ::AddAuthSignInToken if defined?(::AddAuthSignInToken)
|
|
24
40
|
models[:notification] = ::AddAuthSecurityEvent if defined?(::AddAuthSecurityEvent)
|
|
41
|
+
models[:account] = ::AddAuthAccountToken if defined?(::AddAuthAccountToken)
|
|
25
42
|
stores = models.filter_map do |kind, model|
|
|
26
43
|
[kind, AddAuth::Rails::Stores::Maintenance.new(model: model, kind: kind)] if model.table_exists?
|
|
27
44
|
end.to_h
|
|
28
|
-
jobs = {email: AddAuth::EmailDeliveryJob, notification: AddAuth::SecurityNotificationJob}
|
|
45
|
+
jobs = {email: AddAuth::EmailDeliveryJob, notification: AddAuth::SecurityNotificationJob, account: AddAuth::AccountDeliveryJob}
|
|
29
46
|
enqueue = lambda do |kind, id|
|
|
30
47
|
raise AddAuth::Error, "maintenance enqueue failed" unless jobs.fetch(kind).perform_later(id)
|
|
31
48
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: add_auth
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Taimoor Qureshi
|
|
@@ -203,10 +203,13 @@ description: |
|
|
|
203
203
|
reauthentication and recovery. It adds hardened sessions, security mail and
|
|
204
204
|
challenge providers, with shared Turbo/HTML pages and permitted no-JavaScript
|
|
205
205
|
alternatives. It upgrades the generated User and Session models in place.
|
|
206
|
+
Optional account lifecycle, Devise migration, provider-library integration
|
|
207
|
+
and finite native sessions share the same account and session policies.
|
|
206
208
|
Documentation: https://addauthgem.com.
|
|
207
209
|
email:
|
|
208
210
|
- taimoorq@gmail.com
|
|
209
|
-
executables:
|
|
211
|
+
executables:
|
|
212
|
+
- add_auth-preflight
|
|
210
213
|
extensions: []
|
|
211
214
|
extra_rdoc_files: []
|
|
212
215
|
files:
|
|
@@ -216,24 +219,46 @@ files:
|
|
|
216
219
|
- README.md
|
|
217
220
|
- ROADMAP.md
|
|
218
221
|
- SECURITY.md
|
|
222
|
+
- app/controllers/add_auth/accounts_controller.rb
|
|
219
223
|
- app/controllers/add_auth/assets_controller.rb
|
|
224
|
+
- app/controllers/add_auth/external_identities_controller.rb
|
|
225
|
+
- app/controllers/add_auth/mobile_sessions_controller.rb
|
|
220
226
|
- app/controllers/add_auth/passkeys_controller.rb
|
|
227
|
+
- app/controllers/add_auth/provider_sign_ins_controller.rb
|
|
221
228
|
- app/controllers/add_auth/reauthentications_controller.rb
|
|
222
229
|
- app/controllers/add_auth/recoveries_controller.rb
|
|
223
230
|
- app/controllers/add_auth/sessions_controller.rb
|
|
224
231
|
- app/controllers/add_auth/sign_ins_controller.rb
|
|
225
232
|
- app/helpers/add_auth/sign_ins_helper.rb
|
|
226
233
|
- app/javascript/controllers/.keep
|
|
234
|
+
- app/jobs/add_auth/account_delivery_job.rb
|
|
235
|
+
- app/jobs/add_auth/account_request_job.rb
|
|
227
236
|
- app/jobs/add_auth/delivery_job.rb
|
|
228
237
|
- app/jobs/add_auth/email_delivery_job.rb
|
|
229
238
|
- app/jobs/add_auth/email_request_job.rb
|
|
230
239
|
- app/jobs/add_auth/security_notification_job.rb
|
|
240
|
+
- app/mailers/add_auth/account_mailer.rb
|
|
231
241
|
- app/mailers/add_auth/security_mailer.rb
|
|
232
242
|
- app/mailers/add_auth/sign_in_mailer.rb
|
|
233
243
|
- app/models/concerns/.keep
|
|
234
244
|
- app/views/.keep
|
|
245
|
+
- app/views/add_auth/account_mailer/link.text.erb
|
|
246
|
+
- app/views/add_auth/accounts/_check_email.html.erb
|
|
247
|
+
- app/views/add_auth/accounts/_delete.html.erb
|
|
248
|
+
- app/views/add_auth/accounts/_email.html.erb
|
|
249
|
+
- app/views/add_auth/accounts/_invalid_proof.html.erb
|
|
250
|
+
- app/views/add_auth/accounts/_password.html.erb
|
|
251
|
+
- app/views/add_auth/accounts/_proof.html.erb
|
|
252
|
+
- app/views/add_auth/accounts/_register.html.erb
|
|
253
|
+
- app/views/add_auth/accounts/_request.html.erb
|
|
254
|
+
- app/views/add_auth/accounts/_unavailable.html.erb
|
|
255
|
+
- app/views/add_auth/external_identities/_index.html.erb
|
|
256
|
+
- app/views/add_auth/external_identities/_unavailable.html.erb
|
|
235
257
|
- app/views/add_auth/passkeys/_controls.html.erb
|
|
236
258
|
- app/views/add_auth/passkeys/_list.html.erb
|
|
259
|
+
- app/views/add_auth/provider_sign_ins/_enrollment.html.erb
|
|
260
|
+
- app/views/add_auth/provider_sign_ins/_failure.html.erb
|
|
261
|
+
- app/views/add_auth/provider_sign_ins/_prepare.html.erb
|
|
237
262
|
- app/views/add_auth/reauthentications/_check_email.html.erb
|
|
238
263
|
- app/views/add_auth/reauthentications/_confirmation.html.erb
|
|
239
264
|
- app/views/add_auth/reauthentications/_different_browser.html.erb
|
|
@@ -253,11 +278,15 @@ files:
|
|
|
253
278
|
- app/views/add_auth/sign_ins/_different_browser.html.erb
|
|
254
279
|
- app/views/add_auth/sign_ins/_form.html.erb
|
|
255
280
|
- app/views/add_auth/sign_ins/_invalid_link.html.erb
|
|
281
|
+
- app/views/add_auth/sign_ins/_remember.html.erb
|
|
256
282
|
- app/views/add_auth/sign_ins/show.html.erb
|
|
257
283
|
- app/views/layouts/add_auth/authentication.html.erb
|
|
284
|
+
- exe/add_auth-preflight
|
|
258
285
|
- lib/add_auth.rb
|
|
259
286
|
- lib/add_auth/configuration.rb
|
|
260
287
|
- lib/add_auth/core/access_policy.rb
|
|
288
|
+
- lib/add_auth/core/account_lifecycle.rb
|
|
289
|
+
- lib/add_auth/core/account_policy.rb
|
|
261
290
|
- lib/add_auth/core/browser_binding.rb
|
|
262
291
|
- lib/add_auth/core/challenge/base.rb
|
|
263
292
|
- lib/add_auth/core/challenge/http.rb
|
|
@@ -268,14 +297,30 @@ files:
|
|
|
268
297
|
- lib/add_auth/core/delivery.rb
|
|
269
298
|
- lib/add_auth/core/digest/base.rb
|
|
270
299
|
- lib/add_auth/core/digest/hmac.rb
|
|
300
|
+
- lib/add_auth/core/external_identities.rb
|
|
301
|
+
- lib/add_auth/core/external_identities/evidence.rb
|
|
271
302
|
- lib/add_auth/core/intake.rb
|
|
272
303
|
- lib/add_auth/core/maintenance.rb
|
|
304
|
+
- lib/add_auth/core/migration/account_adoption.rb
|
|
305
|
+
- lib/add_auth/core/migration/readiness.rb
|
|
306
|
+
- lib/add_auth/core/mobile_authentication.rb
|
|
307
|
+
- lib/add_auth/core/mobile_handoffs.rb
|
|
308
|
+
- lib/add_auth/core/mobile_profile.rb
|
|
309
|
+
- lib/add_auth/core/mobile_response.rb
|
|
310
|
+
- lib/add_auth/core/native_authentication.rb
|
|
311
|
+
- lib/add_auth/core/passwords/bcrypt_support.rb
|
|
312
|
+
- lib/add_auth/core/passwords/credential.rb
|
|
313
|
+
- lib/add_auth/core/passwords/legacy_bcrypt.rb
|
|
314
|
+
- lib/add_auth/core/passwords/lifecycle.rb
|
|
273
315
|
- lib/add_auth/core/rate_limit.rb
|
|
316
|
+
- lib/add_auth/core/remaining_factors.rb
|
|
274
317
|
- lib/add_auth/core/security_events.rb
|
|
275
318
|
- lib/add_auth/core/sessions.rb
|
|
276
319
|
- lib/add_auth/core/step_up.rb
|
|
277
320
|
- lib/add_auth/core/strategies/email_link.rb
|
|
278
321
|
- lib/add_auth/core/strategies/passkey.rb
|
|
322
|
+
- lib/add_auth/migration/static_inventory.rb
|
|
323
|
+
- lib/add_auth/rails/account_password_entry.rb
|
|
279
324
|
- lib/add_auth/rails/authentication.rb
|
|
280
325
|
- lib/add_auth/rails/authentication_pages.rb
|
|
281
326
|
- lib/add_auth/rails/delivery_cipher.rb
|
|
@@ -283,13 +328,33 @@ files:
|
|
|
283
328
|
- lib/add_auth/rails/ejection.rb
|
|
284
329
|
- lib/add_auth/rails/elevation.rb
|
|
285
330
|
- lib/add_auth/rails/engine.rb
|
|
331
|
+
- lib/add_auth/rails/migration/account_store.rb
|
|
332
|
+
- lib/add_auth/rails/migration/effective_inventory.rb
|
|
333
|
+
- lib/add_auth/rails/migration/key_type.rb
|
|
334
|
+
- lib/add_auth/rails/migration/source_bridge.rb
|
|
335
|
+
- lib/add_auth/rails/password_adoption.rb
|
|
286
336
|
- lib/add_auth/rails/password_entry.rb
|
|
337
|
+
- lib/add_auth/rails/provider_enrollment.rb
|
|
338
|
+
- lib/add_auth/rails/provider_libraries/apple_form_post_correlation.rb
|
|
339
|
+
- lib/add_auth/rails/provider_libraries/apple_jwks.rb
|
|
340
|
+
- lib/add_auth/rails/provider_libraries/apple_native.rb
|
|
341
|
+
- lib/add_auth/rails/provider_libraries/callback_route.rb
|
|
342
|
+
- lib/add_auth/rails/provider_libraries/omniauth.rb
|
|
343
|
+
- lib/add_auth/rails/provider_libraries/omniauth_correlation.rb
|
|
344
|
+
- lib/add_auth/rails/provider_libraries/openid_connect.rb
|
|
345
|
+
- lib/add_auth/rails/provider_libraries/request_protection.rb
|
|
287
346
|
- lib/add_auth/rails/rate_limit_cache.rb
|
|
288
347
|
- lib/add_auth/rails/runtime.rb
|
|
348
|
+
- lib/add_auth/rails/stores/account_credentials.rb
|
|
289
349
|
- lib/add_auth/rails/stores/account_lock.rb
|
|
350
|
+
- lib/add_auth/rails/stores/account_tokens.rb
|
|
351
|
+
- lib/add_auth/rails/stores/authority.rb
|
|
352
|
+
- lib/add_auth/rails/stores/commit_dispatch.rb
|
|
290
353
|
- lib/add_auth/rails/stores/delivery_state.rb
|
|
291
354
|
- lib/add_auth/rails/stores/email_tokens.rb
|
|
355
|
+
- lib/add_auth/rails/stores/external_identities.rb
|
|
292
356
|
- lib/add_auth/rails/stores/maintenance.rb
|
|
357
|
+
- lib/add_auth/rails/stores/mobile_handoffs.rb
|
|
293
358
|
- lib/add_auth/rails/stores/passkeys.rb
|
|
294
359
|
- lib/add_auth/rails/stores/security_events.rb
|
|
295
360
|
- lib/add_auth/rails/stores/sessions.rb
|
|
@@ -297,10 +362,16 @@ files:
|
|
|
297
362
|
- lib/add_auth/result.rb
|
|
298
363
|
- lib/add_auth/testing.rb
|
|
299
364
|
- lib/add_auth/version.rb
|
|
365
|
+
- lib/generators/add_auth/accounts/accounts_generator.rb
|
|
366
|
+
- lib/generators/add_auth/accounts/templates/add_add_auth_accounts.rb.tt
|
|
367
|
+
- lib/generators/add_auth/accounts/templates/add_auth_account_token.rb
|
|
368
|
+
- lib/generators/add_auth/accounts/templates/add_auth_address_claim.rb
|
|
300
369
|
- lib/generators/add_auth/challenge/challenge_generator.rb
|
|
301
370
|
- lib/generators/add_auth/challenge/templates/recaptcha.rb.tt
|
|
302
371
|
- lib/generators/add_auth/challenge/templates/turnstile.rb.tt
|
|
303
372
|
- lib/generators/add_auth/controllers/controllers_generator.rb
|
|
373
|
+
- lib/generators/add_auth/devise_accounts/devise_accounts_generator.rb
|
|
374
|
+
- lib/generators/add_auth/devise_accounts/templates/prepare_add_auth_devise_accounts.rb.tt
|
|
304
375
|
- lib/generators/add_auth/ejection.rb
|
|
305
376
|
- lib/generators/add_auth/email_link/email_link_generator.rb
|
|
306
377
|
- lib/generators/add_auth/email_link/templates/add_add_auth_email_binding.rb.tt
|
|
@@ -310,6 +381,13 @@ files:
|
|
|
310
381
|
- lib/generators/add_auth/email_tokens/email_tokens_generator.rb
|
|
311
382
|
- lib/generators/add_auth/email_tokens/templates/add_auth_sign_in_token.rb
|
|
312
383
|
- lib/generators/add_auth/email_tokens/templates/create_add_auth_sign_in_tokens.rb.tt
|
|
384
|
+
- lib/generators/add_auth/external_identities/external_identities_generator.rb
|
|
385
|
+
- lib/generators/add_auth/external_identities/templates/add_add_auth_external_enrollment.rb.tt
|
|
386
|
+
- lib/generators/add_auth/external_identities/templates/add_add_auth_external_identity_validity.rb.tt
|
|
387
|
+
- lib/generators/add_auth/external_identities/templates/add_auth_external_identity.rb
|
|
388
|
+
- lib/generators/add_auth/external_identities/templates/add_auth_external_transaction.rb
|
|
389
|
+
- lib/generators/add_auth/external_identities/templates/create_add_auth_external_identities.rb.tt
|
|
390
|
+
- lib/generators/add_auth/external_identities/templates/providers.rb
|
|
313
391
|
- lib/generators/add_auth/install/install_generator.rb
|
|
314
392
|
- lib/generators/add_auth/install/templates/initializer.rb
|
|
315
393
|
- lib/generators/add_auth/javascript/javascript_generator.rb
|
|
@@ -317,6 +395,11 @@ files:
|
|
|
317
395
|
- lib/generators/add_auth/javascript/templates/codec.js
|
|
318
396
|
- lib/generators/add_auth/javascript/templates/passkey.js
|
|
319
397
|
- lib/generators/add_auth/mailer_views/mailer_views_generator.rb
|
|
398
|
+
- lib/generators/add_auth/mobile_sessions/mobile_sessions_generator.rb
|
|
399
|
+
- lib/generators/add_auth/mobile_sessions/templates/add_add_auth_mobile_sessions.rb.tt
|
|
400
|
+
- lib/generators/add_auth/mobile_sessions/templates/add_auth_mobile_handoff.rb
|
|
401
|
+
- lib/generators/add_auth/mobile_sessions/templates/create_add_auth_mobile_handoffs.rb.tt
|
|
402
|
+
- lib/generators/add_auth/mobile_sessions/templates/mobile.rb
|
|
320
403
|
- lib/generators/add_auth/notifications/notifications_generator.rb
|
|
321
404
|
- lib/generators/add_auth/notifications/templates/add_auth_security_event.rb
|
|
322
405
|
- lib/generators/add_auth/notifications/templates/create_add_auth_security_events.rb.tt
|