Puncte:0

Kerberos funcționează dacă nu a fost preautorizat anterior

drapel cn

Mut o aplicație de la WebLogic la JBoss EAP 6.4 și aproape că funcționează. Problema este că pot face ca autentificarea Kerberos să funcționeze numai dacă joc cu proprietatea isInitiator în standalone-full-ha.xml pentru serverul spnego.

Dacă am setat isInitiator=true, atunci primesc eroarea la pornirea aplicației „Informațiile de pre-autentificare au fost invalide”.

Dacă am setat isInitiator=false, atunci primesc „NTLM specificat. Trecut la Basic Auth (și/sau SSL) dar downgrade nu este acceptat” când merg la pagină.

Cu toate acestea, dacă mă întorc la isInitiator=true după ce a eșuat cu false, funcționează timp de o zi.

Se întoarce la „Informațiile de pre-autentificare au fost invalide” a doua zi. Trebuie să încerc să mă conectez cu isInitiator=false din nou pentru a-l face să funcționeze din nou.

Meu standalone-full-ha.xaml arată astfel:

 <system-properties>
        <property name="java.net.preferIPv4Stack" value="true"/>
        <property name="org.apache.coyote.http11.Http11Protocol.SERVER" value=""/>
        <property name="java.security.auth.login.config" value="/app/jb-8443/login.conf"/>
        <property name="java.security.krb5.conf" value="/app/jb-8443/krb5.conf"/>
        <property name="sun.security.krb5.debug" value="true"/>
        <property name="jboss.security.disable.secdomain.option" value="true"/>
        <property name="javax.security.auth.useSubjectCredsOnly" value="false"/>
    </system-properties>
...
 <security-domain name="spnego-client" cache-type="default">
                    <authentication>
                        <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required"/>
                    </authentication>
                </security-domain>
                <security-domain name="spnego-server" cache-type="default">
                    <authentication>
                        <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
                            <module-option name="storeKey" value="true"/>
                            <module-option name="useKeyTab" value="true"/>
                            <module-option name="useTicketCache" value="false"/>
                            <module-option name="isInitiator" value="true"/>
                            <module-option name="keyTab" value="/app/jb-8443/krb5.keytab"/>
                            <module-option name="debug" value="true"/>
                            <module-option name="principal" value="[email protected]"/>
                            <module-option name="doNotPrompt" value="true"/>
                        </login-module>
                    </authentication>
                </security-domain>
                <security-domain name="com.sun.security.jgss.krb5.initiate" cache-type="default">
                    <authentication>
                        <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
                            <module-option name="storeKey" value="true"/>
                            <module-option name="useKeyTab" value="true"/>
                            <module-option name="useTicketCache" value="false"/>
                            <module-option name="isInitiator" value="true"/>
                            <module-option name="keyTab" value="/app/jb-8443/krb5.keytab"/>
                            <module-option name="debug" value="true"/>
                            <module-option name="principal" value="[email protected]"/>
                            <module-option name="doNotPrompt" value="true"/>
                        </login-module>
                    </authentication>
                </security-domain>
                <security-domain name="com.sun.security.jgss.krb5.accept" cache-type="default">
                    <authentication>
                        <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
                            <module-option name="storeKey" value="true"/>
                            <module-option name="useKeyTab" value="true"/>
                            <module-option name="useTicketCache" value="false"/>
                            <module-option name="isInitiator" value="true"/>
                            <module-option name="keyTab" value="/app/pyks0app/jb-8443/krb5.keytab"/>
                            <module-option name="debug" value="true"/>
                            <module-option name="principal" value="[email protected]"/>
                            <module-option name="doNotPrompt" value="true"/>
                        </login-module>
                    </authentication>
                </security-domain>

Login.conf are:

com.sun.security.jgss.krb5.initiate {
    com.sun.security.auth.module.Krb5LoginModule este necesar
    doNotPrompt=true
    principal="[email protected]"
    useKeyTab=true
    useTicketCache=false
    depanare=adevărat
    keyTab="/app/jb-8443/krb5.keytab"
    StoreKey=true;
};

com.sun.security.jgss.krb5.accept {
    com.sun.security.auth.module.Krb5LoginModule este necesar
    doNotPrompt=true
    principal="[email protected]"
    useKeyTab=true
    keyTab="/app/jb-8443/krb5.keytab"
    storeKey=adevărat
    useTicketCache=false
    isInitiator=fals
    refreshKrb5Config=true
    moduleBanner=true
    storePass=adevărat;
};
spnego-client {
 com.sun.security.auth.module.Krb5LoginModule necesar;
};
spnego-server {
 com.sun.security.auth.module.Krb5LoginModule este necesar
 storeKey=adevărat
 useKeyTab=true
 useTicketCache=false
 keyTab="/app/jb-8443/krb5.keytab"
 depanare=adevărat
 principal="[email protected]"
 doNotPrompt=true;
};

Implementarea WebLogic a avut doar părțile spnego-client și spnego-server. Am adăugat piese com.sun.security.jgss.krb5.initiate și com.sun.security.jgss.krb5.accept și după ce le-am adăugat m-am putut conecta folosind trucul de flip isInitiator.

Există o cale de a ocoli asta? Cum ar fi săriți peste pre-autentificare dacă nu s-ar fi conectat astăzi? Dacă ceva a fost stocat în cache pentru doar 24 de ore, îl mențineți în viață mai mult?

Sunt acelea care inițiază și acceptă părți necesare pe partea de sus a serverului spnego?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.