Jetty SPNEGO yapılandırmasında üç ad vardır: kimlik doğrulamayı eşleştirmek için kullanılan URI, JAAS üzerinden oturum açan kullanıcı ve bilet istenen hizmet. Farklı amaçlara hizmet ederler.

Jetty 12.0.x uygulaması için kimlik doğrulama nesnesinin bir parçası şöyledir:

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

Bu parça hizmet bileşenini gösterir, eksiksiz bir proxy kimlik doğrulama tarifi değildir. JAAS oturumu, proxy yönlendirmesi ve isteğin kimlik doğrulama alışverişi ayrı kalır.

Bu uygulamada Jetty, GSS ana makine adını getServiceName(), @ karakteri ve kimlik doğrulama alışverişi için ana makineyi birleştirerek oluşturur. [email protected] hizmet bileşeni olarak verilirse başka bir ana makine eklenir. Bu setter'ın eksiksiz bir Kerberos principal kabul ettiğini varsaymak yerine sözleşmesini okuyun.

Ortaya çıkan GSS adı kavramsal olarak HTTP@hostname biçimindedir. KDC'deki karşılık gelen hizmet principalı genellikle HTTP/hostname olarak gösterilir. seçilen proxy adı gerçekten kayıtlı olan hizmetle eşleşmelidir o hesap için; bir IP adresi veya takma ad başka bir bilet hedefi seçebilir.

407 yolunu da inceleyin

Jetty 12.0.x'te authenticate() GSS ana makine adını request.getHost() üzerinden alır ve varsayılan Authorization başlığıyla bir sonuç oluşturur. Bir kimlik doğrulama nesnesini proxy URI'sine göre eşleştirmek, bu seçimleri kendiliğinden proxy'nin ana makine adına ve Proxy-Authorization'a değiştirmez.

Bu nedenle bir proxy entegrasyonu, o alışveriş için doğru istek ana makinesine ve proxy kapsamlı bir sonuca ihtiyaç duyar. HTTPS CONNECT isteği ile sıradan bir kaynak isteği farklı ana makine değerlerine sahip olabilir. Hizmet adı setter'ının tam 407 akışını sağladığını varsaymak yerine kurulu uygulamanın davranışını doğrulayın.

407 için o isteğin kullandığı proxy kimlik doğrulama alışverişini ve ana makineyi inceleyin. 401 kaynak kimlik doğrulamasına aittir. Tek başına geçerli bir kullanıcı bileti, Jetty'nin doğru hizmet biletini istediğini veya aracının onu kabul ettiğini kanıtlamaz.

İlgili makaleler