Creating a JWKS
Creating a JWKS
There are many ways to obtain a JWKS, and depending on your development environment, this can change. We will outline below a straightforward method using our Node.js library. If you don't develop with JavaScript, we will also link to a few commonly used packages for specific languages you can use.
Using the Node.js Moneyhub API library
You can find our Node.js API library on GitHub, and you can also download it from NPM invoking:
npm install --save @mft/moneyhub-api-client
For our purposes, you can download the library from GitHub and navigate to it within a terminal. From here, you call this command:
cd ./moneyhub-api-client
node ./examples/jwks/create-jwks.js
Options
--key-alg string
--key-use string
--key-size number
--alg string
While you can pass in arguments to adjust the JWKS, if you run the command with no arguments present, the software will generate two sets of keys that look like this:
Public keys
This can be used as the JWKS in your API client configuration in the Moneyhub Admin portal
{
"keys": [
{
"kty": "RSA",
"n": "rSyNOgrdgVbtDRWqrhMQXMDeL0R2AzBZKza2mCaC7ND3LPZObugkz1jp3dnaTFraDzxPkdpazhuTEZx8huu7NOjuwrPZtoyuDLQ0f12xaOry9bupLe38mhnmn_J27E7kplPy1zkN1L420VdY-KwhtjK26JYoWrjYvML2BNYISd-B5EC9G1S5y6YmTm2inVARPMasMYc2_T_3dK3N6mSL22jiPSCbLGmqS4id0TKv6WdB4jd4XYiQB76AoDe9YVsTcw6yo6G-EmJmv6kdyyzVpPlvdpFL3kNnnBATBu61GfHOgqUrGwWt8nsrtCOXOMsvwtfSOI6MxDeLvms_tCsY0Q",
"e": "AQAB",
"kid": "DZ76sBMR0VNfmEJ3YZ6Frn_77qtKoBIlx9JGXlctt5s",
"use": "sig",
"alg": "RS256"
}
]
}
Private keys
This can be used as the keys value when configuring the moneyhub api client
{
"keys": [
{
"kty": "RSA",
"n": "rSyNOgrdgVbtDRWqrhMQXMDeL0R2AzBZKza2mCaC7ND3LPZObugkz1jp3dnaTFraDzxPkdpazhuTEZx8huu7NOjuwrPZtoyuDLQ0f12xaOry9bupLe38mhnmn_J27E7kplPy1zkN1L420VdY-KwhtjK26JYoWrjYvML2BNYISd-B5EC9G1S5y6YmTm2inVARPMasMYc2_T_3dK3N6mSL22jiPSCbLGmqS4id0TKv6WdB4jd4XYiQB76AoDe9YVsTcw6yo6G-EmJmv6kdyyzVpPlvdpFL3kNnnBATBu61GfHOgqUrGwWt8nsrtCOXOMsvwtfSOI6MxDeLvms_tCsY0Q",
"e": "AQAB",
"d": "pVTYjGadLYO5E_nwlvr6byNvvL7m0IqTRy-YSlDSRJgItDN_lGEr643e0YDQ6n7-mvcgnIZUlVw8H99AAGwEsjIE6Xxdyewrq1NMn6Dq5NkTFsqQbZo9xT4fMeuB4IA9yhJx0UrWSptDqL904Q0trk5i1FGvu1WpDyYvTVSuWx9nDHkOEP32r4bIUDRpUNJPUplzbl9qoMdxo_npI1zAUzl1qLMs1no_8B4YeDR9xvMveeGnS7Z4roYSYn5eydDPqJquLzyCFnbj4jDhSt5fcHtXoOpIDq6m-SANwXJe6sYjlVHhBixlSfDRrqRpKp5PsGz7IvH8oXpzJzVkVdZtVQ",
"p": "2k-vobK4_elAuxEmp-SRiWwmguTLBYakiRl0CqdgxKDLay4cAwUTAsOFC1sOHh0qbjklP1dd1CoN9wPCenYR1wJWKSo9Z5-6a9O-f2Xfimh7RNMvtm_WmZCyYtltoMfXFHsWvLW5L8oytCjbCr15rB4l5VOb4Jn7ygYHgkrQASM",
"q": "yxID7q0evplelSs_ShM0UuAoZ0tsIY4I4XCbAB4MdSIqT44DoGZAvBGtBLs2GgJ4adV97BDd-uhWLn3UiNZyGZIs7rCL4F8zhdoDW6LRmVKmLDEhiBsEaX42usXMAEnJQ4e1OaslmfMNbKBI2z0Rkj82EummB0v4sdnOfh2Ij3s",
"dp": "EIhGUaV6MuhOGZyD4-UATHrfM7xlz4ZRwXwm-IOSZXGT1gsI3gWtWeE6mxCLMiadRvmW44QXO_DvW8xyFtoIIdMweS-UtNs4v9-qJnWthwrAgwbHLzaq9rgpeijjD3Dyzb9AiovseT0Dt_b8F4UfyLQDxKkfPdQLaFIqkWhe9ic",
"dq": "hlT3hva8hMb9-11tc3n6vewMrjAFarkDhOYxksVN5lpgdNnz6jJaFk73Dk8tfc0ujIwuzW9m-GijQgP5CUAaoHHDCW5-SUGQ2rWaTQ8K6grzY_5oORnuND7Kw4i-513oJqTqLCjcKdfPhJEPQQBH1F--TIqFSwRlknkLkP_Ga2s",
"qi": "n0xNWaIQaf3Ze_ymMMpjv9XkWh4MjOCvHd0zc0H1E1vYO8M5DNJ9Jd2wDnESu2tZ5qAD23BR6NHlqxPXG1ZRQ4vPlNJ0ysQvtR67ap-qkGXnPYkwZsK0X7gG5JAIJlwCDdf1bGFmH0gwuQmpyUht8ByXsS04ymiR8_Jo-DSf3mo",
"kid": "DZ76sBMR0VNfmEJ3YZ6Frn_77qtKoBIlx9JGXlctt5s",
"use": "sig",
"alg": "RS256"
}
]
}
Libraries for other languages
You may use another language, or the Node.js library doesn't work for your situation. Below are a few suggestions for other libraries you can use. We don't endorse any of these suggestions and recommend that you do your research to find the best option for you.
If your language is not listed here, you can also review this list provided by OpenID: openid.net
Updated about 2 months ago