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
- dersom du eig eit API og vil teste validering av gyldige og ugyldige tokens
- 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:
- Velg «Ta i bruk HelseID»
- Klikk på «Ny klientkonfigurasjon»
- Under «Søk etter fagsystem», søk på «HelseID»
- Velg «HelseID TTT-klient»
- Huk av for «Test-token-tjeneste…» og skriv inn namnet på audience du vil bruke test-token mot
- Klikk på «Gå videre»
- Klikk på «Nøkkelpar (avansert)»
- Klikk på «Laste opp en offentlig nøkkel»
- Bruk «Last opp fil», og legg til fila jwk_pub.json frå forrige steg
- Slå opp klientkonfigurasjonen du har laga, og kopier verdien for Klient-ID
- Putt denne klient-ID-en inn i konfigurasjonsfila config.json under parameteret Authentication:ClientId
- 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": "..."},
]
}