3장. 추가 기능
3.1. FORM 로그인을 폴백으로 추가 링크 복사링크가 클립보드에 복사되었습니다!
또한 JBoss EAP와 여기에 배포된 애플리케이션은 대체로 사용할 FORM 로그인 인증 메커니즘을 구성할 수 있습니다. 이를 통해 Kerberos/SPNEGO 토큰이 없는 경우 애플리케이션에서 인증을 위한 로그인 페이지를 제공할 수 있습니다. 이 인증은 Kerberos 인증과 독립적으로 수행됩니다. 결과적으로 FORM 로그인 대체 구성 방법에 따라 사용자가 이 방법으로 인증하기 위해 별도의 인증 정보가 필요할 수 있습니다.
FORM 로그인으로의 대체는 SPNEGO 또는 NTLM 토큰이 없거나 SPNEGO 토큰이 있는 경우 또는 다른 KDC에서 사용할 수 있는 경우에 사용할 수 있습니다.
3.1.1. 애플리케이션 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계는 FORM 로그인을 위한 애플리케이션을 대체로 구성하는 데 필요합니다.
Kerberos 및 SPNEGO를 사용하도록 JBoss EAP 및 웹 애플리케이션 구성.
인증 및 권한 부여를 위해 Kerberos 및 SPNEGO를 사용하도록 JBoss EAP와 웹 애플리케이션을 구성하는 데 필요한 단계는 JBoss EAP에 대한 SSO를 Kerberos로 설정하는 방법을 참조하십시오.
로그인 및 오류 페이지를 추가합니다.
FORM 로그인을 사용하려면 로그인 및 오류 페이지가 필요합니다. 이러한 파일은 웹 애플리케이션에 추가되며 인증 프로세스에서 사용됩니다.
예:
login.jsp파일<html> <head></head> <body> <form id="login_form" name="login_form" method="post" action="j_security_check" enctype="application/x-www-form-urlencoded"> <center> <p>Please login to proceed.</p> </center> <div style="margin-left: 15px;"> <p> <label for="username">Username</label> <br /> <input id="username" type="text" name="j_username"/> </p> <p> <label for="password">Password</label> <br /> <input id="password" type="password" name="j_password" value=""/> </p> <center> <input id="submit" type="submit" name="submit" value="Login"/> </center> </div> </form> </body> </html>예:
error.jsp파일<html> <head></head> <body> <p>Login failed, please go back and try again.</p> </body> </html>web.xml을 수정합니다.로그인 및 오류 페이지를 웹 애플리케이션에 추가한 후 FORM 로그인을 위해 이러한 파일을 사용하도록
web.xml을 업데이트해야 합니다. 정확한 값FORM은<auth-method>요소에 추가해야 합니다.<auth-method>에는 쉼표로 구분된 목록과 순서가 중요하므로<auth-method>의 정확한 값은SPNEGO,FORM으로 업데이트해야 합니다. 또한<form-login-config>요소를<login-config>에 추가하고 <form-login-page> 및 <form-요소로 지정된 로그인 및 오류 페이지의 경로를 추가해야 합니다.error-page>예제: 업데이트된
web.xml파일<web-app> <display-name>App1</display-name> <description>App1</description> <!-- Define a security constraint that requires the Admin role to access resources --> <security-constraint> <display-name>Security Constraint on Conversation</display-name> <web-resource-collection> <web-resource-name>examplesWebApp</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>Admin</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>SPNEGO,FORM</auth-method> <realm-name>SPNEGO</realm-name> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config> <!-- Security roles referenced by this web application --> <security-role> <description> role required to log in to the Application</description> <role-name>Admin</role-name> </security-role> </web-app>
3.1.2. Elytron 하위 시스템 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
http-authentication-factory에FORM인증 메커니즘을 추가합니다.kerberos 기반 인증에 대해 구성한 기존
http-authentication-factory및FORM인증을 위한 추가 메커니즘을 사용할 수 있습니다./subsystem=elytron/http-authentication-factory=example-krb-http-auth:list-add(name=mechanism-configurations, value={mechanism-name=FORM})대체 주체 추가.
kerberos 기반 인증에 대한 기존 구성에 kerberos 토큰의 주체를 애플리케이션의 역할로 매핑하기 위해 이미 보안 영역이 구성되어 있어야 합니다. 해당 영역에 대한 대체 인증을 위해 추가 사용자를 추가할 수 있습니다. 예를 들어
filesystem-realm을 사용한 경우 적절한 역할을 사용하여 새 사용자를 생성할 수 있습니다.
/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity(identity=fallbackUser1)
/subsystem=elytron/filesystem-realm=exampleFsRealm:set-password(identity=fallbackUser1, clear={password="password123"})
/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity-attribute(identity=fallbackUser1, name=Roles, value=["Admin","Guest"])
3.1.3. 레거시 보안 하위 시스템 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에서 레거시 보안 하위 시스템을 사용하는 경우 대체 인증을 위해 보안 도메인을 업데이트해야 합니다.
대체 로그인 메커니즘을 지원하도록 웹 애플리케이션 보안 도메인을 구성해야 합니다. 이 작업을 수행하려면 다음 단계가 필요합니다.
- 대체 인증 방법으로 사용할 새 보안 도메인을 추가합니다.
-
대체 도메인을 가리키는 웹 애플리케이션 보안 도메인에
usernamePasswordDomain모듈 옵션을 추가합니다.
예제: 백백 보안 도메인으로 구성된 보안 도메인
/subsystem=security/security-domain=app-fallback:add(cache-type=default)
/subsystem=security/security-domain=app-fallback/authentication=classic:add()
/subsystem=security/security-domain=app-fallback/authentication=classic/login-module=UsersRoles:add(code=UsersRoles, flag=required, module-options=[usersProperties="file:${jboss.server.config.dir}/fallback-users.properties", rolesProperties="file:${jboss.server.config.dir}/fallback-roles.properties"])
/subsystem=security/security-domain=app-spnego/authentication=classic/login-module=SPNEGO:add(code=SPNEGO, flag=required, module-options=[serverSecurityDomain=host])
/subsystem=security/security-domain=app-spnego/authentication=classic/login-module=SPNEGO:map-put(name=module-options, key=usernamePasswordDomain, value=app-fallback)
/subsystem=security/security-domain=app-spnego/authentication=classic/login-module=SPNEGO:map-put(name=module-options, key=password-stacking, value=useFirstPass)
reload