3.6. SAML을 사용하여 애플리케이션 보안


SAML(Security Assertion Markup Language)은 두 당사자 간에 인증 및 권한 부여 정보를 교환할 수 있는 데이터 형식 및 프로토콜 역할을 합니다. 이러한 두 당사자는 일반적으로 ID 공급자와 서비스 공급자가 포함됩니다. 이 정보는 어설션이 포함된 SAML 토큰의 형태를 취합니다. ID 공급자는 이러한 SAML 토큰을 주체에 발행하여 이러한 주체가 서비스 공급자로 인증할 수 있도록 합니다. 주체는 SAML v2에서 브라우저 기반 Single Sign-On을 활성화하는 여러 서비스 공급자와 SAML 토큰을 재사용할 수 있습니다.

Keycloak SAML 어댑터 기능 팩에서 제공하는 Galleon 계층을 사용하여 웹 애플리케이션을 보호할 수 있습니다.

Keycloak SAML 어댑터 기능 팩에 대한 자세한 내용은 SAML을 사용하여 애플리케이션 보안을 위한 Keycloak SAML 어댑터 기능 팩을 참조하십시오.

Keycloak SAML 어댑터 Galleon 팩은 keycloak-saml 계층을 포함하는 Galleon 기능 팩입니다. 기능 팩에 keycloak-saml 계층을 사용하여 JBoss EAP에 필요한 모듈 및 구성을 설치합니다. SAML을 사용할 때 Red Hat build of Keycloak을 SSO(Single Sign-On) ID 공급자로 사용하려면 이러한 모듈과 구성이 필요합니다. S2I(Source-to-Image)에 keycloak-saml SAML 어댑터 Galleon 계층을 사용하는 경우 Keycloak의 Red Hat 빌드와 같은 IDP(Identity Service Provider)로 자동 등록할 수 있는 SAML 클라이언트 기능을 선택적으로 사용할 수 있습니다.

3.6.2. OpenShift의 SAML 공급자로 Red Hat build of Keycloak 구성

Red Hat build of Keycloak은 SSO(Single Sign-On)로 웹 애플리케이션을 보호하기 위한 ID 및 액세스 관리 공급자입니다. OAuth 2.0 및 SAML에 대한 확장인 OpenID Connect를 지원합니다.

다음 절차에서는 SAML을 사용하여 애플리케이션을 보호하는 데 필요한 필수 단계를 간략하게 설명합니다. 자세한 내용은 Red Hat build of Keycloak 문서를 참조하십시오.

사전 요구 사항

  • Red Hat build of Keycloak에 대한 관리자 액세스 권한이 있습니다.
  • Red Hat build of Keycloak이 실행 중입니다. 자세한 내용은 Red Hat build of Keycloak Operator 를 참조하십시오.
  • oc login 명령을 사용하여 OpenShift에 로그인했습니다.

프로세스

  1. Single Sign-On 영역, 사용자 및 역할을 생성합니다.
  2. Java keytool 명령을 사용하여 키 및 인증서를 생성합니다.

    keytool -genkeypair -alias saml-app -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -storepass password -dname "CN=saml-basic-auth,OU=EAP SAML Client,O=Red Hat EAP QE,L=MB,S=Milan,C=IT" -ext ku:c=dig,keyEncipherment -validity 365
  3. 키 저장소를 JKS(Java KeyStore) 형식으로 가져옵니다.

    keytool -importkeystore -deststorepass password -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass password
  4. OpenShift에서 키 저장소에 대한 시크릿을 생성합니다.

    $ oc create secret generic saml-app-secret --from-file=keystore.jks=./keystore.jks --type=opaque
참고

이러한 단계는 자동 SAML 클라이언트 등록 기능을 사용하는 경우에만 필요합니다. JBoss EAP에서 새 SAML 클라이언트를 client-admin 사용자로 Red Hat 빌드에 등록할 때 JBoss EAP는 새 SAML 클라이언트의 인증서를 Red Hat build of Keycloak 클라이언트 구성에 저장해야 합니다. 이를 통해 JBoss EAP는 Red Hat build of Keycloak에 공개 인증서를 저장하는 동안 개인 키를 유지할 수 있으며, 이를 통해 Red Hat build of Keycloak과의 통신에 대해 인증된 클라이언트를 설정할 수 있습니다.

3.6.3. SAML으로 보안된 애플리케이션 생성

SAML(Security Assertion Markup Language)을 사용하여 웹 애플리케이션 보안을 강화할 수 있습니다. SAML은 효과적인 사용자 인증 및 권한 부여 기능을 제공하며 SSO(Single Sign-On) 기능과 함께 웹 애플리케이션 강화를 위한 신뢰할 수 있는 선택이 가능합니다.

사전 요구 사항

프로세스

  1. mvn 명령을 사용하여 Maven 프로젝트를 설정합니다. 이 명령은 프로젝트에 대한 디렉터리 구조와 pom.xml 구성 파일을 둘 다 생성합니다.

    구문

    $ mvn archetype:generate \
    -DgroupId=${group-to-which-your-application-belongs} \
    -DartifactId=${name-of-your-application} \
    -DarchetypeGroupId=org.apache.maven.archetypes \
    -DarchetypeArtifactId=maven-archetype-webapp \
    -DinteractiveMode=false

    예제

    $ mvn archetype:generate \
    -DgroupId=com.example.app \
    -DartifactId=simple-webapp-example \
    -DarchetypeGroupId=org.apache.maven.archetypes \
    -DarchetypeArtifactId=maven-archetype-webapp \
    -DinteractiveMode=false

  2. 애플리케이션 루트 디렉터리로 이동합니다.

    구문

    $ cd <name-of-your-application>

    예제

    $ cd simple-webapp-example

  3. 생성된 pom.xml 파일의 내용을 다음 텍스트로 바꿉니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.example.app</groupId>
      <artifactId>simple-webapp-example</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
    
      <name>simple-webapp-example Maven Webapp</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <version.maven.war.plugin>3.3.2</version.maven.war.plugin>
        <version.eap.plugin>1.0.0.Final-redhat-00014</version.eap.plugin>
        <version.server>8.0.0.GA-redhat-00009</version.server>
        <version.bom.ee>${version.server}</version.bom.ee>
      </properties>
    
      <repositories>
        <repository>
            <id>jboss</id>
            <url>https://maven.repository.redhat.com/ga/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
      </repositories>
    
      <pluginRepositories>
        <pluginRepository>
            <id>jboss</id>
            <url>https://maven.repository.redhat.com/ga/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-eap-ee-with-tools</artifactId>
            <version>${version.bom.ee}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
    
      <dependencies>
        <dependency>
          <groupId>jakarta.servlet</groupId>
          <artifactId>jakarta.servlet-api</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.wildfly.security</groupId>
          <artifactId>wildfly-elytron-auth-server</artifactId>
        </dependency>
      </dependencies>
    
      <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>${version.maven.war.plugin}</version>
            </plugin>
            <plugin>
                <groupId>org.jboss.eap.plugins</groupId>
                <artifactId>eap-maven-plugin</artifactId>
                <version>${version.eap.plugin}</version>
                <configuration>
                    <channels>
                        <channel>
                            <manifest>
                                <groupId>org.jboss.eap.channels</groupId>
                                <artifactId>eap-8.0</artifactId>
                            </manifest>
                        </channel>
                    </channels>
                    <feature-packs>
                        <feature-pack>
                            <location>org.jboss.eap:wildfly-ee-galleon-pack</location>
                        </feature-pack>
                        <feature-pack>
                            <location>org.jboss.eap.cloud:eap-cloud-galleon-pack</location>
                        </feature-pack>
                        <feature-pack>
                            <location>org.keycloak:keycloak-saml-adapter-galleon-pack</location>
                        </feature-pack>
                    </feature-packs>
                    <layers>
                        <layer>cloud-server</layer>
                        <layer>keycloak-saml</layer>
                    </layers>
                    <galleon-options>
                        <jboss-fork-embedded>true</jboss-fork-embedded>
                    </galleon-options>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>package</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
      </build>
    </project>
    참고
  4. Java 파일을 저장할 디렉터리를 만듭니다.

    구문

    $ mkdir -p src/main/java/<path_based_on_artifactID>

    예제

    $ mkdir -p src/main/java/com/example/app

  5. 새 디렉터리로 이동합니다.

    구문

    $ cd src/main/java/<path_based_on_artifactID>

    예제

    $ cd src/main/java/com/example/app

  6. 다음 설정이 포함된 SecuredServlet.java 파일을 생성합니다.

    package com.example.app;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.security.Principal;
    import java.util.Set;
    
    import jakarta.servlet.ServletException;
    import jakarta.servlet.annotation.WebServlet;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    import org.wildfly.security.auth.server.SecurityDomain;
    import org.wildfly.security.auth.server.SecurityIdentity;
    import org.wildfly.security.authz.Attributes;
    /**
     * A simple secured HTTP servlet. It returns the user name and
     * attributes obtained from the logged-in user's Principal. If
     * there is no logged-in user, it returns the text
     * "NO AUTHENTICATED USER".
     */
    
    @WebServlet("/secured")
    public class SecuredServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            try (PrintWriter writer = resp.getWriter()) {
    
            	Principal user = req.getUserPrincipal();
            	SecurityIdentity identity = SecurityDomain.getCurrent().getCurrentSecurityIdentity();
            	Attributes identityAttributes = identity.getAttributes();
            	Set <String> keys = identityAttributes.keySet();
            	String attributes = "<ul>";
    
            	for (String attr : keys) {
            		attributes += "<li> " +  attr + " : " + identityAttributes.get(attr).toString() + "</li>";
            	}
    
            	attributes+="</ul>";
            	writer.println("<html>");
            	writer.println("  <head><title>Secured Servlet</title></head>");
            	writer.println("  <body>");
            	writer.println("    <h1>Secured Servlet</h1>");
            	writer.println("    <p>");
            	writer.print(" Current Principal '");
            	writer.print(user != null ? user.getName() : "NO AUTHENTICATED USER");
            	writer.print("'");
            	writer.print(user != null ? "\n" + attributes : "");
            	writer.println("    </p>");
            	writer.println("  </body>");
            	writer.println("</html>");
            }
        }
    
    }
  7. web.xml 파일의 디렉터리 구조를 생성합니다.

    mkdir -p src/main/webapp/WEB-INF
    cd src/main/webapp/WEB-INF
  8. 애플리케이션 리소스를 보호하도록 애플리케이션의 web.xml 파일을 구성합니다.

    예제

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        metadata-complete="false">
    
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>secured</web-resource-name>
                <url-pattern>/secured</url-pattern>
            </web-resource-collection>
    
            <auth-constraint>
                <role-name>user</role-name>
            </auth-constraint>
        </security-constraint>
    
        <login-config>
            <auth-method>KEYCLOAK-SAML</auth-method>
        </login-config>
    
        <security-role>
            <role-name>user</role-name>
        </security-role>
    </web-app>

    이 예에서는 사용자 역할이 있는 사용자만 애플리케이션에 액세스할 수 있습니다.

검증

애플리케이션을 생성한 후 원격 Git 리포지토리에 커밋합니다.

  1. https://github.com/your-username/simple-webapp-example 과 같은 Git 리포지토리를 생성합니다. 원격 리포지토리 및 Git에 대한 자세한 내용은 Git 시작하기 - 원격 리포지토리 정보를 참조하십시오.
  2. 애플리케이션의 루트 폴더에서 다음 Git 명령을 실행합니다.

    git init -b main
    git add pom.xml src
    git commit -m "First commit"
    git remote add origin git@github.com:your-username/simple-webapp-example.git
    git remote -v
    git push -u origin main

이러한 단계는 애플리케이션을 원격 리포지토리에 커밋하여 온라인으로 액세스할 수 있도록 합니다.

3.6.4. OpenShift에서 SAML 보안 애플리케이션 빌드 및 배포

JBoss EAP 및 SSO(Single Sign-On) Galleon 계층을 사용하여 OpenShift에서 SAML으로 보안된 애플리케이션을 빌드하고 배포할 수 있습니다.

사전 요구 사항

  • Helm이 설치되어 있어야 합니다. 자세한 내용은 Helm 설치를 참조하십시오.
  • SAML 애플리케이션 프로젝트를 생성하고 Git 리포지토리에서 액세스할 수 있도록 했습니다.
  • 관리 CLI에 이 명령을 입력하여 JBoss EAP Helm 차트 리포지토리를 설치했습니다.

    $ helm repo add jboss-eap https://jbossas.github.io/eap-charts/

프로세스

  1. 애플리케이션 코드를 Git 리포지토리에 배포합니다.
  2. 필요한 환경 변수가 포함된 OpenShift 시크릿을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: saml-secret
    type: Opaque
    stringData:
      SSO_REALM: "saml-basic-auth"
      SSO_USERNAME: "client-admin"
      SSO_PASSWORD: "client-admin"
      SSO_SAML_CERTIFICATE_NAME: "saml-app"
      SSO_SAML_KEYSTORE: "keystore.jks"
      SSO_SAML_KEYSTORE_PASSWORD: "password"
      SSO_SAML_KEYSTORE_DIR: "/etc/sso-saml-secret-volume"
      SSO_SAML_LOGOUT_PAGE: "/simple-webapp-example"
      SSO_DISABLE_SSL_CERTIFICATE_VALIDATION: "true"
  3. 제공된 YAML 콘텐츠를 saml-secret.yaml 과 같은 파일에 저장합니다.
  4. 다음 명령을 사용하여 저장된 YAML 파일을 적용합니다.

    oc apply -f saml-secret.yaml
  5. 다음 설정이 포함된 helm.yaml 파일을 생성합니다.

    build:
      uri: [WEB ADDRESS TO YOUR GIT REPOSITORY]
    deploy:
      volumes:
        - name: saml-keystore-volume
          secret:
            secretName: saml-app-secret
      volumeMounts:
        - name: saml-keystore-volume
          mountPath: /etc/sso-saml-secret-volume
          readOnly: true
      envFrom:
        - secretRef:
            name: saml-secret
    참고

    http://www.redhat.com 과 같은 HTTP 형식으로 웹 주소를 지정합니다. maven 미러를 사용하는 경우 다음과 같이 웹 주소를 지정합니다.

    build:
      uri: [WEB ADDRESS TO YOUR GIT REPOSITORY]
      env:
        - name: "MAVEN_MIRROR_URL"
          value: "http://..."
  6. JBoss EAP Helm 차트를 사용하여 예제 애플리케이션을 배포합니다.

    $ helm install saml-app -f helm.yaml jboss-eap/eap8
  7. saml-secret.yaml 파일에 환경 변수를 추가하여 Keycloak 서버 URL 및 애플리케이션 경로를 구성합니다.

    stringData:
      ...
      HOSTNAME_HTTPS: <saml-app application route>
      SSO_URL: https://<host of the Keycloak server>

    &lt ;saml-app 애플리케이션 route > 및 < host of the Keycloak server >를 적절한 값으로 바꿉니다.

    HOSTNAME_HTTPS 의 값은 다음 출력에 해당합니다.

    echo $(oc get route saml-app --template='{{ .spec.host }}')

    SSO_URL 의 값은 다음 출력에 해당합니다.

    echo https://$(oc get route sso --template='{{ .spec.host }}')
    참고

    이 명령을 사용할 수 없는 경우 oc get routes 를 사용하여 사용 가능한 경로를 나열하고 Keycloak 인스턴스의 Red Hat 빌드 경로를 선택합니다.

  8. oc apply -f saml-secret.yaml 을 사용하여 시크릿을 업데이트합니다.

검증

  1. 애플리케이션을 다시 배포하여 OpenShift에서 새 환경 변수를 사용하는지 확인합니다.

    $ oc rollout restart deploy saml-app
  2. 브라우저에서 애플리케이션 URL로 이동합니다. 예를 들어 https://<saml-app route>/simple-webapp-example.

    Keycloak 로그인 페이지의 Red Hat 빌드로 리디렉션됩니다.

  3. 웹 주소를 가져오려면 다음 명령을 사용하여 보안 서블릿에 액세스합니다.

    echo https://$(oc get route saml-app --template='{{ .spec.host }}')/simple-webapp-example/secured
  4. 다음 인증 정보로 로그인합니다.

    username: demo
    password: demo

    보안 주체 ID가 포함된 페이지가 표시됩니다.

이제 SAML을 사용하여 애플리케이션이 보호됩니다.

3.6.5. SSO 영역, 사용자 및 역할 생성

Red Hat build of Keycloak 환경에서 SSO(Single Sign-On) 영역을 구성하고, 사용자 역할을 정의하고, 액세스 제어를 관리할 수 있습니다. 이러한 작업을 통해 보안을 강화하고 사용자 액세스 관리를 단순화하여 인증 환경을 간소화할 수 있습니다. 이는 SSO 설정을 최적화하고 사용자 인증 프로세스를 개선하는 데 중요합니다.

사전 요구 사항

  • Red Hat build of Keycloak에 대한 관리자 액세스 권한이 있습니다.
  • Red Hat build of Keycloak이 실행 중입니다.

프로세스

  1. URL을 사용하여 Keycloak 관리 콘솔의 Red Hat 빌드에 로그인합니다. https://<SSO route>/.
  2. Red Hat build of Keycloak에 영역을 만듭니다(예: saml-basic-auth ). 나중에 이 영역을 사용하여 필요한 사용자, 역할 및 클라이언트를 생성할 수 있습니다.

    자세한 내용은 영역 생성을 참조하십시오.

  3. saml-basic-auth 영역에 역할을 생성합니다. 예를 들어 사용자.

    자세한 내용은 영역 역할 생성을 참조하십시오.

  4. 사용자를 생성합니다. 예를 들면 데모 입니다.

    자세한 내용은 사용자 생성 을 참조하십시오.

  5. 사용자의 암호를 만듭니다. 예를 들면 데모 입니다.

    암호가 임시가 아닌지 확인합니다. 자세한 내용은 사용자의 암호 설정을 참조하십시오.

  6. 로그인 액세스를 위해 사용자 역할을 데모 사용자에게 할당합니다.

    자세한 내용은 역할 매핑 할당을 참조하십시오.

  7. 사용자를 생성합니다. 예를 들어 client-admin 은 다음과 같습니다.

    JBoss EAP 서버가 시작될 때 Keycloak 서버에서 SAML 클라이언트를 생성하려면 추가 권한이 필요한 client-admin 사용자를 사용할 수 있습니다. 자세한 내용은 사용자 생성 을 참조하십시오.

  8. 사용자의 암호를 만듭니다. 예를 들어 client-admin 은 다음과 같습니다.

    암호가 임시가 아닌지 확인합니다. 자세한 내용은 사용자의 암호 설정을 참조하십시오.

  9. 클라이언트 역할 드롭다운 목록에서 realm-management 를 선택합니다.
  10. create-client,manage-clients, manage-realm 역할을 client-admin 사용자에게 할당합니다.

    자세한 내용은 역할 매핑 할당을 참조하십시오.

3.6.6. SAML 하위 시스템 구성을 위한 환경 변수

다음 변수를 이해하고 사용하여 환경 내에서 Keycloak 서버 통합을 최적화할 수 있습니다. 이렇게 하면 애플리케이션에 대한 원활하고 안전한 Keycloak 설정을 수행할 수 있습니다.

Expand
표 3.2. 환경 변수
환경 변수설명필수 항목

APPLICATION_NAME

배포 이름에서 파생된 클라이언트 이름에 접두사로 사용됩니다.

선택 사항

HOSTNAME_HTTP

HTTP OpenShift 경로에 대한 사용자 정의 호스트 이름입니다. 설정하지 않으면 경로 검색이 수행됩니다.

선택 사항

HOSTNAME_HTTPS

HTTPS OpenShift 경로에 대한 사용자 정의 호스트 이름입니다. 설정하지 않으면 경로 검색이 수행됩니다.

선택 사항

SSO_DISABLE_SSL_CERTIFICATE_VALIDATION

Keycloak 서버 인증서의 검증을 활성화하거나 비활성화하려면 true 또는 false 중에서 선택합니다. SSO 서버가 자체 서명된 인증서를 생성할 때 이를 true 로 설정하는 것이 좋습니다.

선택 사항

SSO_PASSWORD

Keycloak 영역과 상호 작용하고 클라이언트를 생성하고 등록할 수 있는 권한이 있는 사용자의 암호입니다. 예를 들어 client-admin 은 다음과 같습니다.

True

SSO_REALM

애플리케이션 클라이언트를 연결하는 SSO 영역입니다. 예를 들면 saml-basic-auth 입니다.

선택 사항

SSO_SAML_CERTIFICATE_NAME

SAML 클라이언트 키 저장소의 개인 키 및 인증서의 별칭입니다. 예를 들면 saml-app 입니다.

True

SSO_SAML_KEYSTORE

키 저장소 파일의 이름입니다. 예를 들어 keystore.jks.

True

SSO_SAML_KEYSTORE_DIR

클라이언트 키 저장소가 포함된 디렉터리입니다. 예를 들면 /etc/sso-saml-secret-volume 입니다.

True

SSO_SAML_KEYSTORE_PASSWORD

키 저장소 암호입니다. 예: 암호.

True

SSO_SAML_LOGOUT_PAGE

로그 아웃 페이지. 예를 들면 simple-webapp-example 입니다.

True

SSO_SAML_VALIDATE_SIGNATURE

서명의 유효성을 검사하려면 true 를 지정하거나 false 를 지정하여 유효성을 검사하지 않도록 합니다. 기본적으로 true입니다.

선택 사항

SSO_SECURITY_DOMAIN

undertow 및 Cryostat 하위 시스템을 보호하는 데 사용되는 보안 도메인의 이름입니다. 기본값은 keycloak 입니다.

선택 사항

SSO_TRUSTSTORE

서버 인증서가 포함된 truststore 파일 이름입니다.

선택 사항

SSO_TRUSTSTORE_CERTIFICATE_ALIAS

신뢰 저장소 내의 인증서 별칭입니다.

선택 사항

SSO_TRUSTSTORE_DIR

truststore가 포함된 디렉터리입니다.

선택 사항

SSO_TRUSTSTORE_PASSWORD

truststore 및 인증서의 암호입니다. 예를 들면 mykeystorepass.

선택 사항

SSO_URL

SSO 서버의 URL입니다. 예를 들어 < SSO 서버 액세스 경로>입니다.

True

SSO_USERNAME

Keycloak 영역과 상호 작용하고 클라이언트를 생성하고 등록할 수 있는 권한이 있는 사용자의 사용자 이름입니다. 예를 들어 client-admin 은 다음과 같습니다.

True

3.6.7. JBoss EAP 서버의 경로 검색

JBoss EAP 서버의 경로 검색 기능을 사용하여 서버의 성능을 최적화하고 지정된 네임스페이스에서 경로 구성을 간소화할 수 있습니다. 이 기능은 특히 HOSTNAME_HTTPS 변수가 지정되지 않은 경우 보다 원활한 운영 환경을 제공하기 위해 서버 효율성을 개선하는 데 중요합니다.

HOSTNAME_HTTPS 변수가 설정되지 않은 경우 JBoss EAP 서버는 경로 검색을 자동으로 시도합니다. 경로 검색을 활성화하려면 필요한 권한을 생성해야 합니다.

oc create role routeview --verb=list --resource=route -n YOUR_NAME_SPACE
oc policy add-role-to-user routeview system:serviceaccount:YOUR_NAME_SPACE:default --role-namespace=YOUR_NAME_SPACE -n YOUR_NAME_SPACE
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동