Liberty에서 RunAs 인증 구성

Liberty에 대한 RunAs 스펙을 구성하여 다른 ID로 인증을 위임할 수 있습니다.

이 태스크 정보

지정된 사용자 ID 및 선택적 비밀번호를 RunAs 역할에 맵핑하여, 인증 프로세스를 RunAs 역할이 있는 사용자에게 위임할 수 있습니다.

RunAs 역할을 구성하려면 appSecurity-2.0servlet-3.0 Liberty 기능을 사용해야 하며 애플리케이션에 대한 사용자 레지스트리가 있어야 합니다.

RunAs 인증에 대한 자세한 정보는 RunAs() 인증의 내용을 참조하십시오.

RunAs 인증을 구성하려면 다음 단계를 완료하십시오.

프로시저

  1. server.xml 파일에서 appSecurity-2.0servlet-3.0 Liberty 기능을 사용으로 설정하십시오.
  2. 사용자 애플리케이션에 사용자 레지스트리를 구성하십시오.
  3. 애플리케이션의 배치 디스크립터에서 <run-as> 요소를 지정하십시오.

    다음은 Employee 역할에 맵핑된 사용자에게 위임될 후속 호출을 지정하는 web.xml 파일의 예제입니다.

         <servlet id="Servlet_1">
              <servlet-name>RunAsServlet</servlet-name>
              <display-name>RunAsServlet</display-name>
              <description>RunAsServlet</description>
              <servlet-class>web.RunAsServlet</servlet-class> 
              <run-as>
                   <role-name>Employee</role-name> 
              </run-as>
          </servlet>
  4. For distributed platforms이전 단계에서 지정한 역할을 사용자에게 맵핑하십시오. ibm-application-bnd.xmi/xml 또는 server.xml 파일에서 이를 수행할 수 있습니다. <run-as> 요소에서 사용자 이름을 지정해야 합니다. ibm-application-bnd.xml 파일을 사용하는 경우 비밀번호는 필수입니다. server.xml 파일을 사용하는 경우 비밀번호는 선택사항입니다. 비밀번호가 필요한 경우 /bin 디렉토리에서 securityUtility encode 명령을 사용하여 비밀번호를 인코딩하십시오. securityUtility 명령에 대한 자세한 정보는 securityUtility 명령의 내용을 참조하십시오.

    다음 예제는 server.xml 파일의 <application-bnd> 요소 내에서 <run-as> 요소를 사용하며, 여기서 Employee 역할은 user5의 RunAs 사용자에 맵핑되었습니다.

         <application-bnd>
              <security-role name="Employee">
                   <user name="user1" />
                   <user name="user5" />
                   <run-as userid="user5" password="{xor}Lz4sLCgwLTs=" />
              </security-role>
         </application-bnd> 
    참고:
    • server.xml 파일에서는 비밀번호가 선택사항이므로 비밀번호가 없는 사용자에 대해 다음 코드를 사용할 수도 있습니다.
          <application-bnd>
                <security-role name="Employee">
                     <user name="user1" />
                     <user name="user5" />
                     <run-as userid="user5" />
                 </security-role>
           </application-bnd> 
    • server.xml 파일에서 <application-bnd> 요소를 지정하는 경우에는 애플리케이션이 dropins 폴더에 없어야 합니다. dropins 폴더에 애플리케이션을 그대로 둘 경우에는 server.xml 파일에서 다음을 설정하여 애플리케이션 모니터링을 사용하지 않도록 설정해야 합니다.
      <applicationMonitor dropinsEnabled="false" />

    RunAs 사용자 이름은 고유해야 하고 외부 계정에는 없습니다. 예를 들어, SAML ID 제공자 또는 OpenID Connect 제공자에 대해 사용자를 인증하는 경우 RunAs 사용자 이름이 해당 외부 계정에 없는지 확인하십시오.

    run-as 요소에 대한 자세한 정보는 Java서블릿 3.0을 참조하십시오.

  5. For z/OS platformsz/OS 사용자에게 고유한 SAF 자원 프로파일을 통해 RunAs 인증을 구성하십시오.
    1. For z/OS platformsSAF를 통해 RunAs 위임을 사용으로 설정하십시오.
      <safAuthorization enableDelegation="true" />
    2. For z/OS platformsRunAs 사용자 ID를 앱 자원 및 역할에 지정하십시오. 이를 수행하려면 RunAs 사용자 ID를 해당 SAF 자원 프로파일의 APPLDATA 필드에 설정합니다. 기본적으로 지정된 애플리케이션 및 역할에 대한 해당 SAF 자원 프로파일의 이름은 EJBROLE SAF 클래스에 {profilePrefix}.{appName}.{roleName}으로 지정됩니다.

      이는 사용자에게 애플리케이션 및 역할에 대한 권한을 부여하기 위해 Liberty SAF 권한 부여에서 사용하는 동일한 자원 프로파일입니다. 프로파일의 이름은 safRoleMapper 구성으로 제어됩니다. SAF 프로파일 이름에 애플리케이션 및 역할 이름 맵핑에 대한 자세한 정보는 SAF 프로파일에 역할을 맵핑하는 방법 제어를 참조하십시오.

      다음은 user5를 애플리케이션 myapp의 RunAs 사용자 및 Employee 역할로 지정하는 RACF 명령의 몇 가지 예입니다.
      RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ)
      RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5')
      SETROPTS GENERIC(EJBROLE) REFRESH
      SETROPTS RACLIST(EJBROLE) REFRESH

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_sec_runas.html