Score:0

Kerberos ใช้งานได้หากก่อนหน้านี้ไม่ได้รับอนุญาตล่วงหน้า

ธง cn

ฉันกำลังย้ายแอปพลิเคชันจาก WebLogic ไปยัง JBoss EAP 6.4 และฉันเกือบจะใช้งานได้แล้ว ปัญหาคือฉันจะรับการพิสูจน์ตัวตน Kerberos ให้ใช้งานได้ก็ต่อเมื่อฉันเล่นกับคุณสมบัติ isInitiator ในสแตนด์อโลน-full-ha.xml ของฉันสำหรับเซิร์ฟเวอร์ spnego

ถ้าฉันตั้งค่า isInitiator=true ฉันจะได้รับข้อผิดพลาดในการเริ่มต้นแอป "ข้อมูลการตรวจสอบสิทธิ์ล่วงหน้าไม่ถูกต้อง"

ถ้าฉันตั้งค่า isInitiator=false ฉันจะได้รับ "ระบุ NTLM ดาวน์เกรดเป็น Basic Auth (และ/หรือ SSL) แต่ไม่รองรับการปรับลดรุ่น" เมื่อฉันไปที่เพจ

อย่างไรก็ตาม ถ้าฉันกลับไปที่ isInitiator=true หลังจากที่ล้มเหลวด้วยเท็จ มันจะใช้งานได้หนึ่งวัน

กลับไปที่ "ข้อมูลการตรวจสอบล่วงหน้าไม่ถูกต้อง" ในวันถัดไป ฉันต้องพยายามเชื่อมต่อกับ isInitiator=false อีกครั้งเพื่อให้ใช้งานได้อีกครั้ง

สแตนด์อโลนเต็ม Ha.xaml ของฉันมีลักษณะดังนี้:

 <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 มี:

com.sun.security.jgss.krb5.initiate {
    ต้องใช้ com.sun.security.auth.module.Krb5LoginModule
    doNotPrompt=จริง
    หลัก = "[email protected]"
    useKeyTab=จริง
    useTicketCache=เท็จ
    แก้จุดบกพร่อง = จริง
    keyTab="/app/jb-8443/krb5.keytab"
    storeKey=จริง;
};

com.sun.security.jgss.krb5.accept {
    ต้องใช้ com.sun.security.auth.module.Krb5LoginModule
    doNotPrompt=จริง
    หลัก = "[email protected]"
    useKeyTab=จริง
    keyTab="/app/jb-8443/krb5.keytab"
    storeKey=จริง
    useTicketCache=เท็จ
    isInitiator=เท็จ
    รีเฟรชKrb5Config=จริง
    moduleBanner=จริง
    storePass=จริง;
};
ลูกค้า spnego {
 ต้องใช้ com.sun.security.auth.module.Krb5LoginModule;
};
เซิร์ฟเวอร์ spnego {
 ต้องใช้ com.sun.security.auth.module.Krb5LoginModule
 storeKey=จริง
 useKeyTab=จริง
 useTicketCache=เท็จ
 keyTab="/app/jb-8443/krb5.keytab"
 แก้จุดบกพร่อง = จริง
 หลัก = "[email protected]"
 doNotPrompt=จริง;
};

การปรับใช้ WebLogic มีเพียงส่วน spnego-client และ spnego-server ฉันเพิ่มส่วน com.sun.security.jgss.krb5.initiate และ com.sun.security.jgss.krb5.accept และหลังจากที่ฉันเพิ่มแล้ว ฉันก็สามารถเชื่อมต่อโดยใช้เคล็ดลับพลิก isInitiator

มีวิธีแก้ไขปัญหานี้หรือไม่? เช่น ข้ามการตรวจสอบสิทธิ์ล่วงหน้าหากไม่ได้เชื่อมต่อในวันนี้ หากมีบางสิ่งที่แคชไว้เพียง 24 ชั่วโมง ให้มันคงอยู่ได้นานขึ้นไหม

สิ่งเหล่านั้นเริ่มต้นและยอมรับชิ้นส่วนที่จำเป็นบนเซิร์ฟเวอร์ spnego หรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา