jose4j nuotoliniai JWK atsisiuntimai per HTTP tarpinį serverį
Prijunkite tarpinį serverį suprantantį Get egzempliorių prie HttpsJwks ir išlaikykite sukonfigūruotą raktų rinkinio egzempliorių jo podėliui ir vėlesniems atnaujinimams.
jose4j nuotolinio raktų rinkinio įkėlėjas turi savo HTTP gavimo objektą. Konfigūruokite tą objektą, kai programa gali iškviesti API, bet negali atsisiųsti išdavėjo JSON Web Keys.
jose4j 0.9.6 API siūlo Get.setHttpProxy ir HttpsJwks.setSimpleHttpGet:
org.jose4j.http.Get downloader = new org.jose4j.http.Get();
downloader.setHttpProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
downloader.setConnectTimeout(5000);
downloader.setReadTimeout(15000);
org.jose4j.jwk.HttpsJwks jwks = new org.jose4j.jwk.HttpsJwks(
"https://issuer.example/keys");
jwks.setSimpleHttpGet(downloader);Naudokite šį sukonfigūruotą jwks objektą programos raktų sprendimo schemoje. Jo sukūrimas šalia esamo sprendėjo nekeičia kito to sprendėjo egzemplioriaus.
Get naudoja URL ir HttpsURLConnection. Aiškusis Proxy perduodamas URL.openConnection(Proxy); tai apriboja maršrutą šiuo įkėlėju, o ne reikalauja naujos visos JVM tarpinio serverio politikos. Tarpinio serverio autentifikavimas, jei reikia, yra papildomas transporto klausimas. Patvirtintas viešai pasiekiamas išdavėjo URL gali naudoti HTTP adresą iš HTTP tarpinių serverių sąrašo, kai leidžiami vieši tarpininkai ir nesukonfigūruota tarpinio serverio paskyra.
HttpsJwks podėlyje laiko raktus pagal egzempliorių, remdamasis podėlio antraštėmis ir numatytosios podėlio trukmės nuostata. Išlaikykite egzempliorių, kad gautumėte šią naudą. Jau podėlyje esantis raktas gali leisti tikrinimui tęstis nenaudojant tinklo, o vėlesnis gavimas ar atnaujinimas vis tiek priklauso nuo sukonfigūruoto maršruto.
Tai konfigūruoja raktų gavimą. Prieigos rakto tikrinimui vis dar reikia įprastos programos parašo, išdavėjo, auditorijos ir kitų tikrinimo politikos; vien JSON raktų rinkinio gavimas tų patikrinimų neatlieka.