From d9c5f15aae72420dfbcbb6654bdf0307b48bf4a2 Mon Sep 17 00:00:00 2001
From: Andreas Huber <andreas.huber@fjd.de>
Date: Fri, 12 Mar 2021 09:10:53 +0000
Subject: [PATCH] =?UTF-8?q?Hinweis=20auf=20Erforderlichkeit=20der=20Pr?=
 =?UTF-8?q?=C3=BCfung=20des=20Authentifizierungslevels=20und=20der=20authe?=
 =?UTF-8?q?ntifizierten=20Felder=20erg=C3=A4nzt.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../application/applicant-organization.json   |  4 +-
 models/application/applicant-person.json      |  4 +-
 models/common/authentification-info.json      | 51 ++++++++++++++-----
 ...atural-person.json => natural-person.json} |  4 +-
 4 files changed, 44 insertions(+), 19 deletions(-)
 rename models/common/{eID-natural-person.json => natural-person.json} (78%)

diff --git a/models/application/applicant-organization.json b/models/application/applicant-organization.json
index 41a56c6b..9f2e7b2d 100644
--- a/models/application/applicant-organization.json
+++ b/models/application/applicant-organization.json
@@ -22,7 +22,7 @@
         "additionalProperties": false,
         "properties": {
           "identityInfo": {
-            "$ref": "../common/eID-natural-person.json"
+            "$ref": "../common/natural-person.json"
           },
           "authentificationInfo": {
             "$ref": "../common/authentification-info.json"
@@ -110,4 +110,4 @@
   "required": [
     "type"
   ]
-}
\ No newline at end of file
+}
diff --git a/models/application/applicant-person.json b/models/application/applicant-person.json
index 9cc836a7..661678c2 100644
--- a/models/application/applicant-person.json
+++ b/models/application/applicant-person.json
@@ -15,7 +15,7 @@
       "$ref": "../common/authentification-info.json"
     },
     "identityInfo": {
-      "$ref": "../common/eID-natural-person.json"
+      "$ref": "../common/natural-person.json"
     },
     "contactInfo": {
       "$ref": "./applicant-contact-info.json"
@@ -74,4 +74,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/models/common/authentification-info.json b/models/common/authentification-info.json
index c67b3c28..6a0a52d8 100644
--- a/models/common/authentification-info.json
+++ b/models/common/authentification-info.json
@@ -2,6 +2,14 @@
   "type": "object",
   "title": "Authentifikation",
   "additionalProperties": false,
+  "description": "Informationen über die Authentifikation der Person.",
+  "x-examples": {
+    "example-1": {
+      "assuranceLevel": "high",
+      "authentificationMethod": "eID",
+      "timestamp": "2020-03-03T12:38:23Z"
+    }
+  },
   "properties": {
     "assuranceLevel": {
       "type": "string",
@@ -9,29 +17,46 @@
         "low",
         "substantial",
         "high"
-      ]
+      ],
+      "description": "Vertrauensniveau"
     },
     "authentificationMethod": {
-      "type": "string"
+      "type": "string",
+      "description": "Methode der Authentifikation"
     },
     "authentificationToken": {
       "type": "object"
     },
     "timestamp": {
       "type": "string",
-      "format": "date-time"
+      "format": "date-time",
+      "description": "Zeitstempel der Authentifikation"
+    },
+    "authenticatedFields": {
+      "type": "array",
+      "minItems": 1,
+      "uniqueItems": true,
+      "description": "Liste der authentifizierten Felder in `identityInfo`",
+      "items": {
+        "type": "string",
+        "enum": [
+          "placeOfBirth",
+          "dateOfBirth",
+          "gender",
+          "nationality",
+          "artisticName",
+          "doctoralDegrees",
+          "birthName",
+          "givenName",
+          "familyName",
+          "placeOfResidence"
+        ]
+      }
     }
   },
   "required": [
     "assuranceLevel",
-    "authentificationMethod"
-  ],
-  "description": "Informationen über die Authentifikation der Person.",
-  "x-examples": {
-    "example-1": {
-      "assuranceLevel": "high",
-      "authentificationMethod": "eID",
-      "timestamp": "2020-03-03T12:38:23Z"
-    }
-  }
+    "authentificationMethod",
+    "authenticatedFields"
+  ]
 }
\ No newline at end of file
diff --git a/models/common/eID-natural-person.json b/models/common/natural-person.json
similarity index 78%
rename from models/common/eID-natural-person.json
rename to models/common/natural-person.json
index db4db9d1..87b82d49 100644
--- a/models/common/eID-natural-person.json
+++ b/models/common/natural-person.json
@@ -1,6 +1,6 @@
 {
   "title": "Identity Information",
-  "description": "Informationen aus dem eID Funktion des Personalausweises",
+  "description": "Informationen zu einer natürlichen Person. Wichtig: Wenn einzelne Felder für einen elektronischen Identitätsnachweis als Schriftform-Ersatz genutzt werden, MUSS geprüft werden, ob im Objekt `authentificationInfo` ein entsprechendes Authentifizierungslevel angegeben ist. Zusätzlich MUSS geprüft werden, ob die genutzten Felder im Object `authenticatedFields` enthalten sind.",
   "type": "object",
   "x-examples": {
     "example-1": {
@@ -64,4 +64,4 @@
       "$ref": "./address-national.json"
     }
   }
-}
\ No newline at end of file
+}
-- 
GitLab