Lokal kjøring i Docker
For å kjøre de nødvendige komponentene ifbm. token exchange lokalt anbefaler vi bruk av Docker. Et eksempel på dette
finner du her.
Istedenfor Tokendings, som er token exchange-serveren vi kjører på SKIP, benyttes mock-oauth2-server.
Med litt konfigurasjon
kan vi få mock-oauth2-server til å returnere ganske like tokens som Tokendings gjør på SKIP. Dersom du skal validere
tokenx-utstedte tokens lokalt bør du sette well_known_url / jwks_uri i appen som skal validere til å gå mot mock-oauth.
Eksempel på docker-compose.yml ved veksling av ID-porten-tokens (idp=https://test.idporten.no):
services:
mock-oauth2-server:
image: ghcr.io/navikt/mock-oauth2-server:latest
ports:
- "8091:8080"
environment:
SERVER_PORT: 8080
JSON_CONFIG: | # config som sikrer nokså like returnerte tokens som på SKIP
{ "interactiveLogin": false, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "default", "tokenExpiry": 3600, "requestMappings": [ { "requestParam": "grant_type", "match": "urn:ietf:params:oauth:grant-type:token-exchange", "claims": { "aud": "$${audience}", "client_id": "$${client_id}", "iss": "http://tokendings.tokenx-api:8080", "idp": "https://test.idporten.no" } } ] } ] }
texas:
image: ghcr.io/nais/texas:latest
ports:
- "3000:3000"
environment:
BIND_ADDRESS: "0.0.0.0:3000"
TOKEN_X_ENABLED: true
TOKEN_X_CLIENT_ID: "ditt-cluster:ditt-namespace:ditt-applikasjonsnavn"
TOKEN_X_WELL_KNOWN_URL: "http://mock-oauth2-server:8080/default/.well-known/openid-configuration"
TOKEN_X_PRIVATE_JWK: '{"p":"_LNnIjBshCrFuxtjUC2KKzg_NTVv26UZh5j12_9r5mYTxb8yW047jOYFEGvIdMkTRLGOBig6fLWzgd62lnLainzV35J6K6zr4jQfTldLondlkldMR6nQrp1KfnNUuRbKvzpNKkhl12-f1l91l0tCx3s4blztvWgdzN2xBfvWV68","kty":"RSA","q":"9MIWsbIA3WjiR_Ful5FM8NCgb6JdS2D6ySHVepoNI-iAPilcltF_J2orjfLqAxeztTskPi45wtF_-eV4GIYSzvMo-gFiXLMrvEa7WaWizMi_7Bu9tEk3m_f3IDLN9lwULYoebkDbiXx6GOiuj0VkuKz8ckYFNKLCMP9QRLFff-0","d":"J6UX848X8tNz-09PFvcFDUVqak32GXzoPjnuDjBsxNUvG7LxenLmM_i8tvYl0EW9Ztn4AiCqJUoHw5cX3jz_mSqGl7ciaDedpKm_AetcZwHiEuT1EpSKRPMmOMQSqcJqXrdbbWB8gdUrnTKZIlJCfj7yqgT16ypC43TnwjA0UwxhG5pHaYjKI3pPdoHg2BzA-iubHjVn15Sz7-pnjBmeGDbEFa7ADY-1yPHCmqqvPKTNhoCNW6RpG34Id9hXslPa3X-7pAhJrDBd0_NPlktSA2rUkifYiZURhHR5ijhe0v3uw6kYP8f_foVm_C8O1ExkxXh9Dg8KDZ89dbsSOtBc0Q","e":"AQAB","use":"sig","kid":"l7C_WJgbZ_6e59vPrFETAehX7Dsp7fIyvSV4XhotsGs","qi":"cQFN5q5WhYkzgd1RS0rGqvpX1AkmZMrLv2MW04gSfu0dDwpbsSAu8EUCQW9oA4pr6V7R9CBSu9kdN2iY5SR-hZvEad5nDKPV1F3TMQYv5KpRiS_0XhfV5PcolUJVO_4p3h8d-mo2hh1Sw2fairAKOzvnwJCQ6DFkiY7H1cqwA54","dp":"YTql9AGtvyy158gh7jeXcgmySEbHQzvDFulDr-IXIg8kjHGEbp0rTIs0Z50RA95aC5RFkRjpaBKBfvaySjDm5WIi6GLzntpp6B8l7H6qG1jVO_la4Df2kzjx8LVvY8fhOrKz_hDdHodUeKdCF3RdvWMr00ruLnJhBPJHqoW7cwE","alg":"RS256","dq":"IZA4AngRbEtEtG7kJn6zWVaSmZxfRMXwvgIYvy4-3Qy2AVA0tS3XTPVfMaD8_B2U9CY_CxPVseR-sysHc_12uNBZbycfcOzU84WTjXCMSZ7BysPnGMDtkkLHra-p1L29upz1HVNhh5H9QEswHM98R2LZX2ZAsn4bORLZ1AGqweU","n":"8ZqUp5Cs90XpNn8tJBdUUxdGH4bjqKjFj8lyB3x50RpTuECuwzX1NpVqyFENDiEtMja5fdmJl6SErjnhj6kbhcmfmFibANuG-0WlV5yMysdSbocd75C1JQbiPdpHdXrijmVFMfDnoZTQ-ErNsqqngTNkn5SXBcPenli6Cf9MTSchZuh_qFj_B7Fp3CWKehTiyBcLlNOIjYsXX8WQjZkWKGpQ23AWjZulngWRektLcRWuEKTWaRBtbAr3XAfSmcqTICrebaD3IMWKHDtvzHAt_pt4wnZ06clgeO2Wbc980usnpsF7g8k9p81RcbS4JEZmuuA9NCmOmbyADXwgA9_-Aw"}'