"파일을 찾을 수 없음" 오류로 인해 AD에 대한 Shibboleth 인증이 실패했습니다.

"파일을 찾을 수 없음" 오류로 인해 AD에 대한 Shibboleth 인증이 실패했습니다.

저는 Shibboleth를 처음 사용하며 ADFS와 Shibboleth 간의 인증을 구성하려고 합니다. 사용자는 AD에 저장됩니다. 이미 ADFS와 Shibboleth를 연결했으며 로그인 페이지를 볼 수 있습니다. 사용자 이름과 자격 증명을 제출한 후 "인증 실패" 오류가 발생합니다.

로그에는 다음 오류가 표시됩니다.

16:46:06.929 - DEBUG [edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet:177] - cc에 대한 사용자 인증에 실패했습니다. java.lang.SecurityException: 구성 오류: com.sun에 해당 파일 또는 디렉터리가 없습니다. .security.auth.login.ConfigFile.(알 수 없는 소스) ~[na:1.7.0_45] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(네이티브 메서드) ~[na:1.7.0_45] at sun.reflect.NativeConstructorAccessorImpl.newInstance( 알 수 없는 소스) ~[na:1.7.0_45] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(알 수 없는 소스) ~[na:1.7.0_45]

어떤 파일이 누락되었는지, 어디서 실수를 했는지 확인할 수 없습니다. 도움을 주시면 감사하겠습니다.

login.config는 다음과 같습니다.

ShibUserPassAuth {

// Example LDAP authentication
// See: https://spaces.internet2.edu/display/SHIB2/IdPAuthUserPass

   edu.vt.middleware.ldap.jaas.LdapLoginModule required
      host="idmgt-IP0.idmgtext.demo"
      port="389"
      base="CN=Users,DC=idmgtext,DC=demo"
      serviceCredential="Corp123!"
      userRoleAttribute="sAMAccountName"
      serviceUser="[email protected]"
      subtreeSearch = "true"
      ssl="false"
      userFilter="sAMAccountName={0}";

// Example Kerberos authentication, requires Sun's JVM
// See: https://spaces.internet2.edu/display/SHIB2/IdPAuthUserPass
/*
   com.sun.security.auth.module.Krb5LoginModule required
      useKeyTab="true"
      keyTab="/path/to/idp/keytab/file";
*/

};

handler.xml

<?xml version="1.0" encoding="UTF-8"?>

<ProfileHandlerGroup xmlns="urn:mace:shibboleth:2.0:idp:profile-handler"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="urn:mace:shibboleth:2.0:idp:profile-handler classpath:/schema/shibboleth-2.0-idp-profile-handler.xsd">

    <!-- Error Handler -->
    <ErrorHandler xsi:type="JSPErrorHandler" jspPagePath="/error.jsp" />

    <!-- Profile Handlers -->
    <!-- 
        All profile handlers defined below are accessed via the Servlet path "/profile" so if your profile 
        handler's request path is "/Status" then the full path is "<servletContextName>/profile/Status"
     -->
    <ProfileHandler xsi:type="Status">
        <RequestPath>/Status</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAMLMetadata" metadataFile="C:\opt\Shib2Idp/metadata/idp-metadata.xml">
        <RequestPath>/Metadata/SAML</RequestPath>
    </ProfileHandler>    

    <ProfileHandler xsi:type="ShibbolethSSO"
                    inboundBinding="urn:mace:shibboleth:1.0:profiles:AuthnRequest"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:1.0:profiles:browser-post 
                                                urn:oasis:names:tc:SAML:1.0:profiles:artifact-01">
        <RequestPath>/Shibboleth/SSO</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML1AttributeQuery" 
                    inboundBinding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding">
        <RequestPath>/SAML1/SOAP/AttributeQuery</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML1ArtifactResolution" 
                    inboundBinding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding">
        <RequestPath>/SAML1/SOAP/ArtifactResolution</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML2SSO" 
                    inboundBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact">
        <RequestPath>/SAML2/POST/SSO</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML2SSO" 
                    inboundBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact">
        <RequestPath>/SAML2/POST-SimpleSign/SSO</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML2SSO" 
                    inboundBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 
                                                urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact">
        <RequestPath>/SAML2/Redirect/SSO</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML2AttributeQuery"
                    inboundBinding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:2.0:bindings:SOAP">
        <RequestPath>/SAML2/SOAP/AttributeQuery</RequestPath>
    </ProfileHandler>

    <ProfileHandler xsi:type="SAML2ArtifactResolution" 
                    inboundBinding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
                    outboundBindingEnumeration="urn:oasis:names:tc:SAML:2.0:bindings:SOAP">
        <RequestPath>/SAML2/SOAP/ArtifactResolution</RequestPath>
    </ProfileHandler>

    <!-- Login Handlers
    <LoginHandler xsi:type="RemoteUser">
        <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthenticationMethod>
    </LoginHandler>
     -->
    <!--  Username/password login handler -->
    <LoginHandler xsi:type="UsernamePassword" 
                  jaasConfigurationLocation="file://C:\opt\Shib2Idp/conf/login.config">
        <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod>        
    </LoginHandler>

    <!-- 
        Removal of this login handler will disable SSO support, that is it will require the user to authenticate 
        on every request.
    -->
    <LoginHandler xsi:type="PreviousSession">
        <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession</AuthenticationMethod>
    </LoginHandler>

</ProfileHandlerGroup>

관련 정보