Ident record
Example of an full ident record:
<idr:Confirmation
xmlns:idr="http://www.a-trust.at/namespace/idconfirmation#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
Version='4'>
<idr:PersonData>
<idr:GivenName>Max Xaver</idr:GivenName>
<idr:FamilyName>Mustermann</idr:FamilyName>
<idr:SexCode>female</idr:SexCode>
<idr:DateOfBirth>1976-11-11</idr:DateOfBirth>
<idr:PlaceOfBirth>Wien</idr:PlaceOfBirth>
<idr:PhoneNumber>+436505555555</idr:PhoneNumber>
<idr:EMailAddress>test@test.com</idr:EMailAddress>
<idr:PostalAddress>
<idr:AddressLine1>Max Mustermann</idr:AddressLine1>
...
<idr:PostalCode>1000</idr:PostalCode>
</idr:PostalAddress>
</idr:PersonData>
<idr:Identification>
<idr:IdMethod>IdCard</idr:IdMethod>
<idr:IdType>PERS</idr:IdType>
<idr:IdNumber>12345678</idr:IdNumber>
<idr:IdIssueDate>2011-08-01</idr:IdIssueDate>
<idr:IdAuthority>Mag. Wien</idr:IdAuthority>
<idr:IdNation>AT</idr:IdNation>
</idr:Identification>
<idr:ProcessData>
<idr:Name>A-TrustQES</idr:Name>
<idr:Tag>CustomTag</idr:Tag>
<idr:Design>A-Trust</idr:Design>
<idr:Language>DE</idr:Language>
<idr:Response>
<idr:Success>https://.../success?token=123455</idr:Success>
<idr:Error>https://.../error?token=123455</idr:Error>
</idr:Response>
<idr:Binding type="MobilePhoneNumber">+436505555555</idr:Binding>
<idr:HashValue>8jew91qk...1982qw=</idr:HashValue>
</idr:ProcessData>
<dsig:Signature>...</dsig:Signature>
</idr:Confirmation>
Structure of the Ident record
The identity record is an XML file with the root element Confirmation. The following elements can be defined within it:
- PersonData
- Identification
- ProcessData
- Custom
- Signature
At least the elements PersonData, Identification, ProcessData, and Signature must be specified.
Likewise, the attribute Version must be specified with the value 4.
PersonData
The element PersonData contains the personal data.
- GivenName
- FamilyName
- SexCode (female, male, company, diverse, intersex, open, unknown, not stated)
- DateOfBirth (Format: YYYY-MM-DD)
- PlaceOfBirth
- PhoneNumber
- EMailAddress
- PostalAddress/AddressLine1
- PostalAddress/AddressLine2
- PostalAddress/AddressLine3
- PostalAddress/AddressLine4
- PostalAddress/CountryCode
- PostalAddress/PostalCode
The field SexCode can contain the values male, female, company, diverse, intersex, open, unknown or not stated.
Example PersonData
<idr:Confirmation
xmlns:idr="http://www.a-trust.at/namespace/idconfirmation#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
Version='4'>
<idr:PersonData>
<idr:GivenName>Max Xaver</idr:GivenName>
<idr:FamilyName>Mustermann</idr:FamilyName>
<idr:SexCode>female</idr:SexCode>
<idr:DateOfBirth>1976-11-11</idr:DateOfBirth>
<idr:PlaceOfBirth>Wien</idr:PlaceOfBirth>
<idr:PhoneNumber>+436505555555</idr:PhoneNumber>
<idr:EMailAddress>test@test.com</idr:EMailAddress>
<idr:PostalAddress>
<idr:AddressLine1>Max Mustermann</idr:AddressLine1>
<idr:AddressLine2></idr:AddressLine2>
<idr:AddressLine3>Mustergasse 1</idr:AddressLine3>
<idr:AddressLine4>Wien</idr:AddressLine4>
<idr:CountryCode>AT</idr:CountryCode>
<idr:PostalCode>1000</idr:PostalCode>
</idr:PostalAddress>
</idr:PersonData>
...
</idr:Confirmation>
AddressLine1 Should contain the name of the person or company. Maximum 32 characters.
AddressLine2 If a company was specified in AddressLine1, the person's name will be entered here. Maximum 32 characters.
AddressLine3 Contains the street name, building number, and apartment number. Maximum 32 characters.
AddressLine4 Contains the city or town. Maximum 24 characters.
CountryCode Country code (2 digits - ISO 3166 Alpha-2 code)
PostalCode Postal code (max. 6 digits)
Identification
This field is used to specify identification characteristics.
At least the IDMethod field must be specified, possible values are:
- AutoIdent
- BankIdent
- EID
- IdCard
- QES
- TrustedDatabase
- VideoIdent
If the person's identification is based on video identification, this must be specified in the IdMethod field.
Example IDMethod for video identification
<idr:Confirmation
xmlns:idr="http://www.a-trust.at/namespace/idconfirmation#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
Version='4'>
...
<idr:Identification>
<idr:IdMethod>VideoIdent</idr:IdMethod>
</idr:Identification>
...
</idr:Confirmation>
If the signatory is identified by means of an identity document (e.g. by a Registration Officer), the other identity document details must also be provided.
- IdNation
- IdAuthority
- IdIssueDate
- IdNumber
- IdType
The following are the most frequently used values for the ID document type: (IdType). A complete list can be found in the interface's XML schema.
- REIS Internationaler Reisepass
- FUEH Österreichischer Führerschein
- IDKA Österreichische Identitätskarte
- PERD Deutscher Personalausweis
- RA Rechtsanwaltsausweis
- eDA eDA Dienstausweis Republik Österreich
- eDAO eDA Land Oberösterreich
- EDU EDU-Card
- GEME Gemeindeausweis
<idr:Confirmation
xmlns:idr="http://www.a-trust.at/namespace/idconfirmation#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
Version='4'>
...
<idr:Identification>
<idr:IdMethod>IdCard</idr:IdMethod>
<idr:IdType>PERS</idr:IdType>
<idr:IdNumber>12345678</idr:IdNumber>
<idr:IdIssueDate>2011-08-01</idr:IdIssueDate>
<idr:IdAuthority>Mag. Wien</idr:IdAuthority>
<idr:IdNation>AT</idr:IdNation>
</idr:Identification>
...
</idr:Confirmation>
ProcessData
The element ProcessData contains information about the required process; elements to be specified:
- Name (A-TrustQES, EuIdentity, WebId, Seal, TestCa, ShortLived)
- Tag
- CustomerName
- Design
- Language (DE, EN)
- Response/Success
- Response/Error
- IdentValidTo
- Binding
- HashValue
<idr:Confirmation
xmlns:idr="http://www.a-trust.at/namespace/idconfirmation#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
Version='4'>
...
<idr:ProcessData>
<idr:Name>A-TrustQES</idr:Name>
<idr:Tag>CustomTag</idr:Tag>
<idr:Design>A-Trust</idr:Design>
<idr:Language>DE</idr:Language>
<idr:Response>
<idr:Success>https://.../success?token=12</idr:Success>
<idr:Error>https://.../error?token=12</idr:Error>
</idr:Response>
<idr:IdentValidTo>2025-01-01</idr:IdentValidTo>
<idr:Binding type="MobilePhoneNumber">+436505555555</idr:Binding>
<idr:HashValue>8jew91qk...1982qw=</idr:HashValue>
</idr:ProcessData>
...
</idr:Confirmation>
- IdentValidTo The maximum is 30 days, this can be reduced with this parameter.
- Response These URLs will be used for redirection after successful activation or in case of an error.
- Binding binds the Ident Record to a user factor, possible values for the field type
typeare:- MobilePhoneNumber
- CINCSN
- ExtCardNumber
- ActivationCode
Binding and HashValue
Optionally, a Binding and HashValue can be specified.
These values are passed to the identified person to initiate the issuance of the selected product at a later time via https://www.a-trust.at/Aktivierung.
The Binding can be randomly assigned or linked to the person, e.g., their phone number or email address.
The HashValue element contains a Base64-encoded SHA256 hash value derived from the Binding and the
Freischalte-PIN (Unlock PIN), these are concatenated.
Hash=Base64(SHA256(UTF8_Bytes(Binding+FreischaltePIN)))
The Freischalte-PIN is:
- A code generated by the identifying system, which may only be known to the identified person (e.g., activation code sent by registered mail)
- A secret chosen by the identified person and known only to them (e.g., revocation password)
The activation code and Freischalte-PIN values must be UTF-8 encoded. A pseudocode implementation is shown in the following Listing.
Pseudocode for HashValue Generation
var identifier = AktivierungsCode+FreischaltePIN;
var utf8bytes = UTF8.GetBytes(identifier);
var hash = SHA256(utf8bytes);
var HashValue = Base64.Encode(hash);
Custom
The element Custom contains additional fields that are not further defined.
Signature
This element contains an XMLDSIG signature of the identified data.
Required and recommended elements
The following elements must be specified at a minimum:
- PersonData/GivenName
- PersonData/FamilyName
- PersonData/DateOfBirth
- Identification/IdMethod
- ProcessData/Name
- Signature