diff --git a/Cargo.lock b/Cargo.lock
index 55160271..786b324a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -674,6 +674,7 @@ dependencies = [
"auths-id",
"auths-pairing-daemon",
"auths-policy",
+ "auths-sdk",
"auths-storage",
"auths-telemetry",
"auths-verifier",
diff --git a/crates/auths-cli/src/adapters/allowed_signers_store.rs b/crates/auths-cli/src/adapters/allowed_signers_store.rs
new file mode 100644
index 00000000..f663a889
--- /dev/null
+++ b/crates/auths-cli/src/adapters/allowed_signers_store.rs
@@ -0,0 +1,53 @@
+//! File-based adapter for [`AllowedSignersStore`].
+
+use std::path::Path;
+
+use auths_sdk::ports::allowed_signers::AllowedSignersStore;
+use auths_sdk::workflows::allowed_signers::AllowedSignersError;
+
+/// Reads and writes allowed_signers files using the local filesystem.
+/// Uses atomic writes via `tempfile::NamedTempFile::persist`.
+pub struct FileAllowedSignersStore;
+
+impl AllowedSignersStore for FileAllowedSignersStore {
+ fn read(&self, path: &Path) -> Result