diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature
index 4d4c49c6b..bfc7a3cf9 100644
--- a/features/fedramp_extensions.feature
+++ b/features/fedramp_extensions.feature
@@ -34,6 +34,7 @@ Examples:
| cia-impact-has-adjustment-justification |
| cia-impact-has-selected |
| cloud-service-model |
+ | component-has-authentication-method |
| component-type |
| control-implementation-status |
| data-center-alternate |
@@ -172,6 +173,8 @@ Examples:
| cia-impact-has-selected-PASS.yaml |
| cloud-service-model-FAIL.yaml |
| cloud-service-model-PASS.yaml |
+ | component-has-authentication-method-FAIL.yaml |
+ | component-has-authentication-method-PASS.yaml |
| component-type-FAIL.yaml |
| component-type-PASS.yaml |
| control-implementation-status-FAIL.yaml |
diff --git a/features/steps/fedramp_extensions_steps.ts b/features/steps/fedramp_extensions_steps.ts
index 424d1b1a6..84338650c 100644
--- a/features/steps/fedramp_extensions_steps.ts
+++ b/features/steps/fedramp_extensions_steps.ts
@@ -421,6 +421,7 @@ async function checkConstraints(
`The content may need adjustment to properly test this constraint.`
);
}
+ !quiet && console.error(formatSarifOutput(sarifOutput))
errors.push(""); // Add a blank line for readability
}
}
diff --git a/src/validations/constraints/content/ssp-all-VALID.xml b/src/validations/constraints/content/ssp-all-VALID.xml
index c38e0c37e..77986c485 100644
--- a/src/validations/constraints/content/ssp-all-VALID.xml
+++ b/src/validations/constraints/content/ssp-all-VALID.xml
@@ -309,8 +309,9 @@
-
-
+
+
+
External API Connection
diff --git a/src/validations/constraints/content/ssp-component-has-authentication-method-INVALID.xml b/src/validations/constraints/content/ssp-component-has-authentication-method-INVALID.xml
new file mode 100644
index 000000000..41bba60e6
--- /dev/null
+++ b/src/validations/constraints/content/ssp-component-has-authentication-method-INVALID.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index af9677979..efdecb643 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -81,6 +81,11 @@
+
+ Component Has Authentication Method
+
+ A FedRAMP SSP MUST include at least one authentication method for each leveraged system.
+
Has Authorization Boundary Diagram Link Href Target
diff --git a/src/validations/constraints/unit-tests/component-has-authentication-method-FAIL.yaml b/src/validations/constraints/unit-tests/component-has-authentication-method-FAIL.yaml
new file mode 100644
index 000000000..1b7355f71
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-authentication-method-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for component-has-authentication-method
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-authentication-method
+ content: ../content/ssp-component-has-authentication-method-INVALID.xml
+ expectations:
+ - constraint-id: component-has-authentication-method
+ result: fail
diff --git a/src/validations/constraints/unit-tests/component-has-authentication-method-PASS.yaml b/src/validations/constraints/unit-tests/component-has-authentication-method-PASS.yaml
new file mode 100644
index 000000000..76f5b7ef6
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-authentication-method-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for component-has-authentication-method
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-authentication-method
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: component-has-authentication-method
+ result: pass