diff --git a/scitokens-server/etc/templates/client-template.xml b/scitokens-server/etc/templates/client-template.xml
index c3b7487..4e002c2 100644
--- a/scitokens-server/etc/templates/client-template.xml
+++ b/scitokens-server/etc/templates/client-template.xml
@@ -11,7 +11,7 @@
4b289478ab9e80f43a837620fd09e3484b10bb77
2022-01-19T21:39:03.254Z
1209600000
-{"tokens":{"access":{"audience":"ANY","type":"sci_token","qdl": {"load": "vfs#/scripts/scitokens/policies.qdl","xmd": {"exec_phase": ["pre_auth","post_token","post_refresh","post_exchange"]}}}}}
+{"tokens":{"access":{"audience":"ANY","type":"sci_token","qdl": {"load": "vfs#/scripts/scitokens/policies.qdl","xmd": {"exec_phase": ["pre_auth","post_token","post_refresh","post_exchange"]}}}, "identity": {"type": "identity", "qdl": {"load": "vfs#/scripts/scitokens/id_token_policies.qdl", "xmd": {"exec_phase": ["post_token", "post_refresh", "post_exchange"]}}} }}
false
https://localhost:9443/client2
true
diff --git a/scitokens-server/var/qdl/scitokens/id_token_policies.qdl b/scitokens-server/var/qdl/scitokens/id_token_policies.qdl
new file mode 100644
index 0000000..6c0cff0
--- /dev/null
+++ b/scitokens-server/var/qdl/scitokens/id_token_policies.qdl
@@ -0,0 +1,15 @@
+/*
+ Simply prefer the eppn for the subject; otherwise, pass the token through.
+ */
+
+if[
+ is_defined(claims.'eppn')
+][
+ claims.'sub' := claims.'eppn';
+]else[
+ if[
+ is_defined(claims.'email')
+ ][
+ claims.'sub' := claims.'email';
+ ];
+];