Det er tre namn i ein Jetty SPNEGO-konfigurasjon: URI-en som blir brukt til å matche autentisering, brukaren som loggar på via JAAS, og tenesta det blir bede om ein billett for. Dei tener ulike føremål.

For Jetty 12.0.x-implementasjonen ser eit autentiseringsobjektfragment slik ut:

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

Dette fragmentet illustrerer tenestekomponenten, ikkje ei fullstendig oppskrift på proxyautentisering. JAAS-pålogging, proxy-ruting og autentiseringsutvekslinga til førespurnaden held fram med å vere skilde.

I denne implementasjonen byggjer Jetty GSS-vertsnamnet ved å kombinere getServiceName(), eit @-teikn og verten for autentiseringsutvekslinga. Blir [email protected] gitt som tenestekomponent, kjem det til endå ein vert. Les kontrakten til denne setteren i staden for å anta at han godtek ein fullstendig Kerberos-principal.

Det resulterande GSS-namnet har den konseptuelle forma HTTP@hostname. Den tilsvarande tenesteprincipalen i KDC blir vanlegvis framstilt som HTTP/hostname. valde proxy-namnet må samsvare med tenesta som faktisk er registrert for den kontoen; ei IP-adresse eller eit alias kan velje eit anna billettmål.

Undersøk òg 407-løpet

I Jetty 12.0.x hentar authenticate() GSS-vertsnamnet frå request.getHost() og byggjer eit resultat med standardhovudet Authorization. Å matche eit autentiseringsobjekt etter proxy-URI endrar ikkje i seg sjølv desse vala til vertsnamnet til proxyen og Proxy-Authorization.

Ein proxyintegrasjon treng derfor rett førespurnadsvert og eit proxyavgrensa resultat for den utvekslinga. Ein HTTPS CONNECT-førespurnad og ein vanleg opphavsførespurnad kan ha ulike vertsverdiar. Stadfest åtferda til den installerte implementasjonen i staden for å anta at tenestenamn-setteren leverer heile 407-løpet.

For ein 407, undersøk proxyautentiseringsutvekslinga og verten som den førespurnaden brukte. Ein 401 høyrer til opphavsautentisering. Ein gyldig brukarbillett åleine beviser ikkje at Jetty bad om rett tenestebillett, eller at mellomleddet godtok han.

Relaterte artiklar