2.4. JBoss EAP 인스턴스 구성
elytron 또는 레거시 보안 하위 시스템을 사용하도록 JBoss EAP에 배포된 애플리케이션을 구성할 수 있지만 둘 다 사용하도록 구성할 수는 없습니다.
2.4.1. Elytron 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계에서는 작동하는 KDC, Kerberos 도메인 및 브라우저가 구성되어 작동한다고 가정합니다.
kerberos-security-factory구성./subsystem=elytron/kerberos-security-factory=krbSF:add(principal="HTTP/host@REALM", path="/path/to/http.keytab", mechanism-oids=[1.2.840.113554.1.2.2, 1.3.6.1.5.5.2])Kerberos의 시스템 속성을 구성합니다.
환경을 구성하는 방법에 따라 아래의 일부 시스템 속성을 설정해야 합니다.
Expand 시스템 속성 설명 java.security.krb5.kdc
KDC의 호스트 이름입니다.
java.security.krb5.realm
영역의 이름입니다.
java.security.krb5.conf
구성
krb5.conf파일의 경로입니다.sun.security.krb5.debug
true인경우 디버깅 모드가 활성화됩니다.관리 CLI를 사용하여 JBoss EAP에서 시스템 속성을 구성하려면 다음을 수행합니다.
/system-property=java.security.krb5.conf:add(value="/path/to/krb5.conf")역할을 할당하기 위한 Elytron 보안 영역을 구성합니다.
클라이언트의 Kerberos 토큰은 주체를 제공하지만 해당 주체를 애플리케이션의 역할에 매핑하는 방법이 필요합니다. 이 작업을 수행하는 방법에는 여러 가지가 있지만, 이 예제에서는
filesystem-realm을 생성하고 Kerberos 토큰의 주체와 일치하는 영역에 사용자를 추가하고 해당 사용자에게 역할을 할당합니다.
/subsystem=elytron/filesystem-realm=exampleFsRealm:add(path=fs-realm-users, relative-to=jboss.server.config.dir)
/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity(identity=user1@REALM)
/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity-attribute(identity=user1@REALM, name=Roles, value=["Admin","Guest"])
simple-role-decoder추가./subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)이
simple-role-decoder는Roles특성에서 주체 역할을 디코딩합니다. 역할이 다른 특성에 있는 경우 이 값을 변경할 수 있습니다.security-domain구성./subsystem=elytron/security-domain=exampleFsSD:add(realms=[{realm=exampleFsRealm, role-decoder=from-roles-attribute}], default-realm=exampleFsRealm, permission-mapper=default-permission-mapper)kerberos를 구성합니다.-security-factory를 사용하는 http-authentication-factory/subsystem=elytron/http-authentication-factory=example-krb-http-auth:add(http-server-mechanism-factory=global, security-domain=exampleFsSD, mechanism-configurations=[{mechanism-name=SPNEGO, mechanism-realm-configurations=[{realm-name=exampleFsSD}], credential-security-factory=krbSF}])undertow 하위 시스템에서application-security-domain을 구성합니다./subsystem=undertow/application-security-domain=app-spnego:add(http-authentication-factory=example-krb-http-auth)
2.4.2. 레거시 보안 하위 시스템 구성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에는 배포된 애플리케이션에서 SSO에 대해 SPNEGO 및 JBoss Negotiation을 사용하여 Kerberos를 사용하는 데 필요한 모든 구성 요소가 포함되어 있지만 다음과 같은 구성을 변경해야 합니다.
표시된 관리 CLI 명령은 JBoss EAP 독립 실행형 서버를 실행 중이라고 가정합니다. JBoss EAP 관리형 도메인의 관리 CLI 사용에 대한 자세한 내용은 JBoss EAP 관리 CLI 가이드를 참조하십시오.
서버 ID 또는 호스트 보안 도메인을 구성합니다.
이 보안 도메인은 컨테이너 자체를 KDC에 인증합니다. 실제 사용자가 이 연결에 참여하지 않으므로 정적 로그인 메커니즘을 허용하는 로그인 모듈을 사용해야 합니다. 다음 예제에서는 정적 주체를 사용하고 자격 증명을 포함하는 keytab 파일을 참조합니다.
예제: 서버 ID 보안 도메인 생성
/subsystem=security/security-domain=host:add(cache-type=default) /subsystem=security/security-domain=host/authentication=classic:add() /subsystem=security/security-domain=host/authentication=classic/login-module=Kerberos:add(code=Kerberos, flag=required, module-options=[storeKey=true, refreshKrb5Config=true, useKeyTab=true, principal=host/testserver@MY_REALM, keyTab=/home/username/service.keytab, doNotPrompt=true, debug=false]) reloadIBM JDK를 사용하는 경우 Kerberos 모듈에 대한 옵션이 다릅니다.
jboss.security.disable.secdomain.option시스템 속성을true로 설정해야 합니다. 자세한 내용은 Configure 관련 시스템 속성 에서 참조하십시오. 또한 로그인 모듈은 다음과 같이 구성해야 합니다.예제: IBM JDK
/subsystem=security/security-domain=host:add(cache-type=default) /subsystem=security/security-domain=host/authentication=classic:add() /subsystem=security/security-domain=host/authentication=classic/login-module=Kerberos:add(code=Kerberos, flag=required, module-options=[principal=host/testserver@MY_REALM, keyTab="file:///root/keytab", credsType=acceptor]) reloadKerberos로그인 모듈 구성을 위한 전체 옵션 목록은 JBoss EAP 로그인 모듈 참조를 참조하십시오.웹 애플리케이션 보안 도메인을 구성합니다.
웹 애플리케이션 보안 도메인은 개별 사용자를 KDC에 인증하는 데 사용됩니다. 사용자를 인증하려면 하나 이상의 로그인 모듈이 있어야 합니다. 또한 사용자에게 적용할 역할을 검색하는 방법도 있어야 합니다. 이 작업은 사용자를 역할에 수동으로 매핑하는
<mapping>을 추가하고 사용자를 역할에 매핑하는 두 번째 로그인 모듈을 추가하는 등 다양한 방법으로 수행할 수 있습니다.다음은 웹 애플리케이션 보안 도메인의 예를 보여줍니다.
예제: 서버 ID 보안 도메인 생성
/subsystem=security/security-domain=app-spnego:add(cache-type=default) /subsystem=security/security-domain=app-spnego/authentication=classic:add() /subsystem=security/security-domain=app-spnego/authentication=classic/login-module=SPNEGO:add(code=SPNEGO, flag=required, module-options=[serverSecurityDomain=host]) reloadSPNEGO로그인 모듈 구성을 위한 전체 옵션 목록은 JBoss EAP 로그인 모듈 참조를 참조하십시오.관련 시스템 속성 구성.
JBoss EAP는 Kerberos 서버 연결과 관련된 시스템 속성을 구성하는 기능을 제공합니다. KDC, Kerberos 도메인 및 네트워크 구성에 따라 다음 시스템 속성이 필요할 수도 있고 그렇지 않을 수도 있습니다.
<system-properties> <property name="java.security.krb5.kdc" value="mykdc.mydomain"/> <property name="java.security.krb5.realm" value="MY_REALM"/> <property name="java.security.krb5.conf" value="/path/to/krb5.conf"/> <property name="jboss.security.disable.secdomain.option" value="true"/> <property name="sun.security.krb5.debug" value="false"/> </system-properties>Expand 속성 설명 java.security.krb5.kdc
KDC의 호스트 이름입니다.
java.security.krb5.realm
영역의 이름입니다.
java.security.krb5.conf
구성
krb5.conf파일의 경로입니다.jboss.security.disable.secdomain.option
true로 설정하면 보안 도메인에 선언된 로그인 모듈에jboss.security.security_domain로그인 모듈 옵션의 자동 추가가 비활성화됩니다. IBM JDK를 사용하는 경우true로 설정해야 합니다.sun.security.krb5.debug
true인경우 디버깅 모드가 활성화됩니다.참고기본적으로 보안 도메인에 정의된 각 로그인 모듈에는
jboss.security.security_domain모듈 옵션이 자동으로 추가됩니다. 이 옵션을 사용하면 로그인 모듈에 문제가 발생하여 알려진 옵션만 정의되었는지 확인합니다. IBM Kerberos 로그인 모듈인com.ibm.security.auth.module.Krb5LoginModule은 이러한 모듈 중 하나입니다. JBoss EAP를 시작할 때jboss.security.disable.secdomain.option시스템 속성을true로 설정하여 이 모듈 옵션을 추가하는 이 동작을 비활성화할 수 있습니다. 이 작업은 관리 CLI 또는 관리 콘솔을 사용하여<system-properties>를 구성하거나 시작 매개변수에-Djboss.security.disable.secdomain.option=true를 추가하여 수행할 수 있습니다.시스템 속성 구성에 대한 자세한 내용은 JBoss EAP 관리 CLI 가이드를 참조하십시오.