Test-token-tjenesten

Test-token-tjenesten (heretter kalla TTT) er eit API som er meint for å forenkle bruk av token til testformål. Med dette API-et kan ein hente ut token som er signert med dem same signeringsnøkkelen som «ekte» token frå HelseID sitt testmiljø.

Bruksmønster

TTT gir deg to ulike bruksmønster

  1. dersom du eig eit API og vil teste validering av gyldige og ugyldige tokens
  2. dersom du er ein systemleverandør og vil teste tilgang til eit eller fleire API som krev brukarinnlogging

Korleis tar du i bruk TTT

Per idag er dette framgangsmåten for å ta i bruk TTT. Vi arbeidar med ein ny framgangsmåte for å forenkle denne prosessen.

For å ta API-et i bruk, må du

  • Generere eit nøkkelpar (privatnøkkel og offentleg nøkkel)
  • Opprette ein klientkonfigurasjon i HelseID Selvbetjening TEST som gir deg tilgang til TTT (sjå under). Dette fordrar at du har brukartilgang i HelseID Selvbetjening TEST.

Framgangsmåte i HelseID Selvbetjening TEST:

  1. Velg «Ta i bruk HelseID»
  2. Klikk på «Ny klientkonfigurasjon»
  3. Under «Søk etter fagsystem», søk på «HelseID»
  4. Velg «HelseID TTT-klient»
  5. Huk av for «Test-token-tjeneste…» og skriv inn namnet på audience du vil bruke test-token mot
  6. Klikk på «Gå videre»
  7. Klikk på «Nøkkelpar (avansert)»
  8. Klikk på «Laste opp en offentlig nøkkel»
  9. Bruk «Last opp fil», og legg til fila jwk_pub.json frå forrige steg
  10. Slå opp klientkonfigurasjonen du har laga, og kopier verdien for Klient-ID
  11. Putt denne klient-ID-en inn i konfigurasjonsfila config.json under parameteret Authentication:ClientId
  12. Klientkonfigurasjonen krev (foreløpig) ei godkjenning; du må vente på denne før du kan ta i bruk klienten.

Eksempel på bruk

Nedanfor finn du eksempel på korleis parametrane kan justerast i TTT. Oversikta viser korleis JSON-objektet som blir sendt inn til endepunkt i API-et vil sjå ut.

For eit kodeeksempel på bruk av TTT, sjekk ut TestTokenTool på GitHub.

Du vil bruke TTT til å hente ut

  • eit generisk token
{ }
  • eit token med berre obligatoriske claim
{
  "withoutDefaultGeneralClaims": true,
  "withoutDefaultUserClaims": true
}
  • eit ugyldig token for å teste eit API (sett berre ein av dei mulige parametrane under)
{
  "signJwtWithInvalidSigningKey": true,
  "setInvalidIssuer": true,
  "setInvalidAudience": true
}
  • eit utgått token for å teste eit API (sett berre ein av dei mulige parametrane under)
{
  "expirationParameters": {
    "setExpirationTimeAsExpired": true,
    "expirationTimeInSeconds": 300,
    "expirationTimeInDays": 0
  }
}
  • eit token med ein spesifikk header
{
  "headerParameters": {
    "typ": "at+jwt"
  }
}
  • eit token med spesifikke klient-claims (sett berre dei som er relevante)
{
  "issuerEnvironment": "Test",
  "generalClaimsParameters": {
    "scope": [
      “openid”, 
      “profile”, 
      “read”,
      “mitt:supre:api/scope”
    ],
    "clientId": "eeb808a2-6e6f-42ae-849a-505432cf128f",
    "sfmJournalId": "ed30a6a5-4834-40be-a32b-1e4f5217e378",
    "orgnrParent": "883974832",
    "orgnrSupplier": "994598759",
    "clientTenancy": true,
    "clientAuthenticationMethodsReferences": "private_key_jwt",
    "clientName": "Mitt Klientnavn",
    "jti": "F4F832F0C68E24F0011F773B71CC6739"
  }
}
  • eit token med spesifikke brukar-claims (sett berre dei som er relevante)
{
  "userClaimsParameters": {
    "pid": "06828399789",
    "pidPseudonym": "PGzVzvP2JvlXV\u002B\u002BOJSJAQG5d99BH8QsikmxpdIAKSZk=",
    "hprNumber": "565505933",
    "name": "KVART GREVLING",
    "givenName": "KVART",
    "middleName": "",
    "familyName": "GREVLING",
    "identityProvider": "idporten-oidc",
    "securityLevel": "4",
    "assuranceLevel": "high",
    "network": "internett",
    "amr": "pwd",
    "subject": "PGzVzvP2JvlXV\u002B\u002BOJSJAQG5d99BH8QsikmxpdIAKSZk=",
    "sid": "0970F0ED60C552597BFC254150FA406D"
  }
  "getPersonFromPersontjenesten": true,
  "onlySetNameForPerson": true,
  "getHprNumberFromHprregisteret": true,
  "setPidPseudonym": true,
  "setSubject": true
}
  • eit DPoP-token
{
  "createDPoPTokenWithDPoPProof": true
}
  • eit token med endra DPoP-parametrar (sett berre dei som er relevante)
{
  "dPoPProofParameters": {
    "htuClaimValue": "https://eksempelapi.nhn.no/api",
    "htmClaimValue": "POST",
    "privateKeyForProofCreation": {
      "kty": "RSA",
      "n": "0VULJlIGn4SM-Y0ZTYOKSpr3KyCbVXK...mVIKTMrAvt72UphUFUkqEwM0Jat2ECuRbOC2VhhovPooYYHNRHvvpQ0",
      "e": "AQAB",
      "alg": "RS512"
  },
    "invalidDPoPProofParameters": "SetIatValueInThePast"
  }
}
  • eit token som brukar tillitsrammeverket
{
  "createTillitsrammeverkClaims": true
}
  • eit token med endra parametrar for tillitsrammeverket (sett berre dei som er relevante)
{
  "tillitsrammeverkClaimsParameters": {
    "practitionerAuthorizationCode": "AA",
    "practitionerAuthorizationText": "",
    "practitionerLegalEntityId": "946469045",
    "practitionerLegalEntityName": "Helse Først",
    "practitionerPointOfCareId": "983658776",
    "practitionerPointOfCareName": "Sjukehus AS",
    "practitionerDepartmentId": "4206043",
    "practitionerDepartmentName": "Avdeling 4",
    "careRelationshipHealthcareServiceCode": "210", 	
    "careRelationshipHealthcareServiceText": "Anestesiologi",
    "careRelationshipPurposeOfUseCode": "TREAT",
    "careRelationshipPurposeOfUseText": "Behandling",
    "careRelationshipPurposeOfUseDetailsCode": "28",
    "careRelationshipPurposeOfUseDetailsText": "Digitalt tilsyn",
    "careRelationshipTracingRefId": "30F4AB40-DBC2-41A7-8AC4-181AD3FDC25B",
    "patientsPointOfCareId": "983658776",
    "patientsPointOfCareName": "Sjukehus AS",
    "patientsDepartmentId": "4206043",
    "patientsDepartmentName": "Avdeling 4"
  }
}
  • eit token med eit eller fleire API-spesifikke claims
{
  "apiSpecificClaims": [
    {"type": "e-helse:sfm.api/client/claims/sfm-id", "value": "e37233c0-e649-4b70-92bd-7f1e12eac897"},
    {"type": "...", "value": "..."},
  ]
}