Skip to content

v3.4.0

Compare
Choose a tag to compare
@irotech irotech released this 04 May 15:47
· 201 commits to master since this release
e611275

Profile

Demo available, when running the Java Spring Boot example project, at https://localhost:8443/dbs-check

Added

  • Specify Identity Profile using RequirementsWithIdentityProfile() in DynamicPolicyBuilder
identityProfileJson
{
  "trust_framework": "UK_TFIDA",
  "scheme": {
    "type": "DBS",
    "objective": "STANDARD"
  }
}

DynamicPolicy dynamicPolicy = DynamicPolicy.builder()
                                           .withIdentityProfile(<identityProfileJson>)
                                           .build();
  • Specify subject_id, when used with WithIdentityProfile(), using WithSubject() in DynamicScenarioBuilder
DynamicScenario dynamicScenario = DynamicScenario.builder()
                                                 .withSubject(<subjectId>)
                                                 .withPolicy(dynamicPolicy)
                                                 .build();

ShareUrlResult shareUrl = yotiClient.createShareUrl(dynamicScenario);
  • Retrieve the Identity Profile Report using GetIdentityProfileReport() in HumanProfile
YotiClient yotiClient = YotiClient.builder()
                .withClientSdkId(<clientSdkId>)
                .withKeyPair(<clientKeyPair>)
                .build();

HumanProfile profile = yotiClient.getActivityDetails(<sharingToken>).getUserProfile();

Attribute<Map<String, Object>> identityProfileReport = profile.getIdentityProfileReport();

Map<String, Object> valueRepresentation = identityProfileReport.getValue();

valueRepresentation
{
  "identity_assertion": {
    "current_name": {
      "given_names": "JOHN JIM FRED",
      "first_name": "JOHN",
      "middle_name": "JIM FRED",
      "family_name": "FOO",
      "full_name": "JOHN JIM FRED FOO"
    },
    "date_of_birth": "1979-01-01"
  },
  "verification_report": {
    "report_id": "61b99534-116d-4a25-9750-2d708c0fb168",
    "timestamp": "2022-01-02T15:04:05Z",
    "subject_id": "f0726cb6-97c1-4802-9feb-eb7c6cd07949",
    "trust_framework": "UK_TFIDA",
    "schemes_compliance":
    [
      {
        "scheme": {
          "type": "RTW"
        },
        "requirements_met": true
      }
    ],
    "assurance_process": {
      "level_of_assurance": "MEDIUM",
      "policy": "GPG45",
      "procedure": "M1C",
      "assurance":
      [
        {
          "type": "EVIDENCE_STRENGTH",
          "classification": "4",
          "evidence_links":
          [
            "41960172-ca91-487c-8bb3-2c547f80fe54"
          ]
        },
        {
          "type": "EVIDENCE_VALIDITY",
          "classification": "3",
          "evidence_links":
          [
            "41960172-ca91-487c-8bb3-2c547f80fe54"
          ]
        },
        {
          "type": "VERIFICATION",
          "classification": "3",
          "evidence_links":
          [
            "41960172-ca91-487c-8bb3-2c547f80fe54",
            "fb0880ca-5dd5-4776-badb-17549123c50b"
          ]
        }
      ]
    },
    "evidence": {
      "documents":
      [
        {
          "evidence_id": "41960172-ca91-487c-8bb3-2c547f80fe54",
          "timestamp": "2022-01-02T15:04:05Z",
          "document_fields": {
            "full_name": "JOHN JIM FRED FOO",
            "date_of_birth": "1979-01-01",
            "nationality": "GBR",
            "given_names": "JOHN JIM FRED",
            "family_name": "FOO",
            "place_of_birth": "SAMPLETOWN",
            "gender": "MALE",
            "document_type": "PASSPORT",
            "issuing_country": "GBR",
            "document_number": "123456789",
            "expiration_date": "2030-01-01",
            "date_of_issue": "2020-01-01",
            "issuing_authority": "HMPO",
            "mrz": {
              "type": 2,
              "line1": "P<GBRFOO<<JOHN<JIM<FRED<<<<<<<<<<<<<<<<<<<<<",
              "line2": "1234567892GBR7901018M3001215<<<<<<<<<<<<<<02"
            }
          },
          "passed_checks":
          [
            {
              "check": "CHIP_DIGITAL_SIGNATURE"
            },
            {
              "check": "AUTOMATED_FACE_MATCH"
            },
            {
              "check": "FRAUD_DOCUMENTS_LIST"
            }
          ],
          "verifying_org": "Yoti Ltd.",
          "user_activity_ids":
          [
            "d4764f67-2992-4a69-9ff4-55b0e77cb3d0"
          ],
          "document_images_attribute_id": "f253c8ab-f07b-4aeb-9dd0-50e670c7ebaf"
        }
      ],
      "face": {
        "evidence_id": "fb0880ca-5dd5-4776-badb-17549123c50b",
        "initial_liveness": {
          "type": "ACTIVE",
          "timestamp": "2022-01-02T15:04:05Z"
        },
        "verifying_org": "Yoti Ltd.",
        "user_activity_ids":
        [
          "a8e41187-7f5b-4e83-83d5-dc471452f1a8"
        ],
        "selfie_attribute_id": "cc507f84-f1aa-476a-877b-850e949e0fc8"
      }
    }
  },
  "authentication_report": {
    "report_id": "d7202b65-657e-47a7-9679-7596db617b8c",
    "timestamp": "2022-01-02T15:04:05Z",
    "policy": "GPG44",
    "level": "MEDIUM"
  },
  "proof": "<signature provided here>"
}

  • Retrieve Attribute by id using GetAttributeById() in HumanProfile
Attribute<Object> selfie = profile.getAttributeById(<attribute_id_1>);
Attribute<Object> documentImage = profile.getAttributeById(<attribute_id_2>);

IDV

Added

  • Create session with Identity profile using WithIdentityProfileRequirements() and WithSubject() in SessionSpecificationBuilder
DocScanClient docScanClient = DocScanClient.builder()
      .withClientSdkId(<clientSdkId>)
      .withKeyPair(<clientKeyPair>)
      .build();

subjectJson
{
"subject_id": "<sessionId>"
}

identityProfileRequirementsJson
{
"trust_framework": "UK_TFIDA",
"scheme": {
  "type": "DBS",
  "objective": "STANDARD"
}
}

SessionSpec sessionSpec = SessionSpec.builder()
      .withSubject(<subjectJson>)IdentityProfile to IDV
      .withIdentityProfile(<identityProfileRequirementsJson>)
      .build();

CreateSessionResult session = docScanClient.createSession(sessionSpec);
String sessionId = session.getSessionId();
  • Retrieve session identity profile report using GetIdentityProfile() in GetSessionResult
GetSessionResult sessionResult = docScanClient.getSession(sessionId);

IdentityProfileResponse identityProfile = sessionResult.getIdentityProfile();

String subjectId = identityProfile.getSubjectId();
String result = identityProfile.getResult();
String failureReasonCode = identityProfile.getFailureReason().getReasonCode();
Object identityProfileReport = identityProfile.getIdentityProfileReport();

identityProfileReportJson
{
  "trust_framework": "UK_TFIDA",
  "schemes_compliance":
  [
    {
      "scheme": {
        "type": "DBS",
        "objective": "STANDARD"
      },
      "requirements_met": true,
      "requirements_not_met_info": "some string here"
    }
  ],
  "media": {
    "id": "c69ff2db-6caf-4e74-8386-037711bbc8d7",
    "type": "IMAGE",
    "created": "2022-03-29T11:39:24Z",
    "last_updated": "2022-03-29T11:39:24Z"
  }
}