Điểm:0

Kerberos hoạt động nếu trước đó không được ủy quyền trước

lá cờ cn

Tôi đang chuyển một ứng dụng từ WebLogic sang JBoss EAP 6.4 và tôi gần như đã làm cho nó hoạt động. Vấn đề là tôi chỉ có thể làm cho xác thực Kerberos hoạt động nếu tôi chơi với thuộc tính isInitiator trong tệp độc lập-full-ha.xml của mình cho máy chủ spnego.

Nếu tôi đặt isInitiator=true, thì tôi gặp lỗi khi bắt đầu ứng dụng "Thông tin xác thực trước không hợp lệ".

Nếu tôi đặt isInitiator=false, thì tôi nhận được "NTLM được chỉ định. Đã hạ cấp xuống Xác thực cơ bản (và/hoặc SSL) nhưng không hỗ trợ hạ cấp" khi tôi truy cập trang.

Tuy nhiên, nếu sau đó tôi quay lại isInitiator=true sau khi nó bị lỗi với false, thì nó sẽ hoạt động trong một ngày.

Nó trở lại "Thông tin xác thực trước không hợp lệ" vào ngày hôm sau. Tôi phải thử kết nối lại với isInitiator=false để nó hoạt động trở lại.

standalone-full-ha.xaml của tôi trông như thế này:

 <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 có:

com.sun.security.jgss.krb5.initiate {
    Yêu cầu com.sun.security.auth.module.Krb5LoginModule
    doNotPrompt=true
    hiệu trưởng="[email protected]"
    useKeyTab=true
    useTicketCache=false
    gỡ lỗi = đúng
    keyTab="/app/jb-8443/krb5.keytab"
    storeKey=true;
};

com.sun.security.jgss.krb5.accept {
    Yêu cầu com.sun.security.auth.module.Krb5LoginModule
    doNotPrompt=true
    hiệu trưởng="[email protected]"
    useKeyTab=true
    keyTab="/app/jb-8443/krb5.keytab"
    storeKey=true
    useTicketCache=false
    isInitiator=false
    refreshKrb5Config=true
    mô-đunBanner=true
    storePass=true;
};
spnego-client {
 Yêu cầu com.sun.security.auth.module.Krb5LoginModule;
};
máy chủ spnego {
 Yêu cầu com.sun.security.auth.module.Krb5LoginModule
 storeKey=true
 useKeyTab=true
 useTicketCache=false
 keyTab="/app/jb-8443/krb5.keytab"
 gỡ lỗi = đúng
 hiệu trưởng="[email protected]"
 doNotPrompt=true;
};

Việc triển khai WebLogic chỉ có các phần spnego-client và spnego-server. Tôi đã thêm các phần com.sun.security.jgss.krb5.initiate và com.sun.security.jgss.krb5.accept và sau khi thêm chúng, tôi có thể kết nối bằng thủ thuật lật isInitiator.

Có cách nào để giái quyết vấn đề này không? Chẳng hạn như bỏ qua xác thực trước nếu nó không được kết nối hôm nay? Nếu một cái gì đó được lưu vào bộ nhớ cache chỉ trong 24 giờ, hãy giữ nó tồn tại lâu hơn?

Những bộ phận khởi tạo và chấp nhận đó có cần thiết trên máy chủ spnego không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.