@@ -34,6 +34,7 @@ def _parser() -> argparse.ArgumentParser:
3434 for child in (tcp , http ):
3535 child .add_argument ("--expected-evidence-source" , required = True )
3636 child .add_argument ("--expected-assurance" , required = True )
37+ child .add_argument ("--expected-issuer" , required = True )
3738 child .add_argument ("--expected-subject-kind" , required = True )
3839 child .add_argument ("--expected-subject-stability" , required = True )
3940 child .add_argument ("--expected-capability" , required = True )
@@ -42,6 +43,8 @@ def _parser() -> argparse.ArgumentParser:
4243 child .add_argument ("--expected-target-value" )
4344 child .add_argument ("--expect-proxy" , action = "store_true" )
4445 child .add_argument ("--expect-authenticated" , action = "store_true" )
46+ child .add_argument ("--expect-principal-match" , action = "store_true" )
47+ child .add_argument ("--expect-evidence-binding" , action = "store_true" )
4548 return parser
4649
4750
@@ -53,6 +56,7 @@ def _assert_snapshot(raw: str, args: argparse.Namespace) -> dict[str, Any]:
5356 assert identity ["provider" ] == "tailscale" , identity
5457 assert identity ["evidence_source" ] == args .expected_evidence_source , identity
5558 assert identity ["assurance" ] == args .expected_assurance , identity
59+ assert identity ["issuer" ] == args .expected_issuer , identity
5660 assert identity ["subject_kind" ] == args .expected_subject_kind , identity
5761 assert identity ["subject_stability" ] == args .expected_subject_stability , identity
5862 assert identity ["subject_verified" ] is (args .expected_subject_stability != "none" ), identity
@@ -71,6 +75,9 @@ def _assert_snapshot(raw: str, args: argparse.Namespace) -> dict[str, Any]:
7175 spoofed = hashlib .sha256 (f"login:{ args .spoof_login } " .encode ()).hexdigest ()
7276 assert identity ["subject_fingerprint" ] != spoofed , "Serve trusted a client-supplied identity header"
7377 assert payload ["auth" ]["authenticated" ] is args .expect_authenticated , payload ["auth" ]
78+ assert payload ["auth" ]["principal_matches_identity" ] is args .expect_principal_match , payload ["auth" ]
79+ assert payload ["auth" ]["peer_evidence_binding_present" ] is args .expect_evidence_binding , payload ["auth" ]
80+ assert payload ["auth" ]["domain" ] == ("tailscale" if args .expect_authenticated else None ), payload ["auth" ]
7481 return payload
7582
7683
0 commit comments