May tatlong pangalan sa isang SPNEGO configuration ng Jetty: ang URI na ginagamit sa pagtutugma ng authentication, ang user na pumapasok sa pamamagitan ng JAAS at ang serbisyong hihilingan ng ticket. Magkaiba ang layunin ng mga ito.

Para sa implementasyon ng Jetty 12.0.x, ang bahagi ng authentication object ay:

var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
    java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");

Ipinapakita ng bahaging ito ang bahagi ng serbisyo, hindi isang kumpletong resipe ng proxy authentication. Nananatiling hiwalay ang JAAS login, proxy routing at palitan ng authentication ng kahilingan.

Sa implementasyong ito, binubuo ng Jetty ang GSS host-based na pangalan sa pamamagitan ng pagsasama ng getServiceName(), ang @ na karakter at ang host para sa palitan ng authentication. Kung ibibigay ang [email protected] bilang bahagi ng serbisyo, may maidaragdag pang host. Basahin ang kontrata ng setter na ito sa halip na ipagpalagay na tumatanggap ito ng kumpletong Kerberos principal.

Ang resultang GSS na pangalan ay may konseptwal na anyong HTTP@hostname. Ang katumbas na service principal sa KDC ay karaniwang kinakatawan bilang HTTP/hostname. dapat tumugma ang napiling pangalan ng proxy sa serbisyong aktwal na nakarehistro para sa account na iyon; maaaring pumili ng ibang target ng ticket ang isang IP address o alias.

Suriin din ang 407 na landas

Sa Jetty 12.0.x, kinukuha ng authenticate() ang GSS hostname mula sa request.getHost() at bumubuo ng resulta gamit ang default na Authorization header. Ang pagtutugma ng authentication object sa proxy URI ay hindi mag-isa na nagbabago sa mga pagpipiliang iyon tungo sa hostname ng proxy at Proxy-Authorization.

Kaya ang isang proxy integration ay nangangailangan ng tamang host ng kahilingan at resulta na saklaw ng proxy para sa palitang iyon. Ang HTTPS CONNECT na kahilingan at ordinaryong origin request ay maaaring may magkaibang halaga ng host. Tiyakin ang pag-uugali ng naka-install na implementasyon sa halip na ipagpalagay na ibinibigay ng service-name setter ang buong 407 flow.

Para sa 407, suriin ang palitan ng proxy authentication at ang host na ginamit ng kahilingang iyon. Ang 401 ay kabilang sa origin authentication. Ang isang valid na user ticket lamang ay hindi nagpapatunay na hiniling ng Jetty ang tamang service ticket o tinanggap ito ng intermediary.

Kaugnay na mga artikulo