8.2. 서비스 검색 구성

3scale 관리자는 OAuth 서버를 사용하거나 사용하지 않고 서비스 검색을 구성할 수 있습니다.

사전 요구 사항

  • 3scale 2.7을 OpenShift 클러스터에 배포해야 합니다(버전 3.11 이상).
  • OpenShift에 3scale을 배포하려면 3scale-amp-openshift-templates 를 사용해야 합니다.
  • Service Discovery 3scale을 사용하려는 3scale 사용자는 OpenShift 클러스터에 액세스할 수 있어야 합니다.

8.2.1. OAuth 서버로 구성

OAuth(Open Authorization) 서버를 사용하여 3scale Service Discovery를 구성하는 경우 사용자가 3scale에 서명할 때 이러한 상황이 발생합니다.

  • 사용자가 OAuth 서버로 리디렉션됩니다.
  • 사용자가 OAuth 서버에 아직 로그인하지 않은 경우 사용자에게 로그인하라는 메시지가 표시됩니다.
  • 사용자가 SSO를 사용하여 3scale 서비스 검색을 구현하는 것이 처음인 경우 OAuth 서버에서 관련 작업을 수행할 수 있는 권한 부여를 요청합니다.
  • 사용자가 3scale로 다시 리디렉션됩니다.

OAuth 서버를 사용하여 서비스 검색을 구성하려면 다음 옵션이 있습니다.

8.2.1.1. OpenShift OAuth 서버 사용

3scale 시스템 관리자는 사용자가 OpenShift 내장 OAuth 서버를 사용하여 3scale을 개별적으로 인증하고 승인하여 API를 검색할 수 있습니다.

  1. 3scale용 OpenShift OAuth 클라이언트를 생성합니다. OpenShift 인증에 대한 자세한 내용은 OAuth 클라이언트를 참조하십시오.

        $ oc project default
        $ cat <<-EOF | oc create -f -
        kind: OAuthClient
        apiVersion: v1
        metadata:
         name: 3scale
        secret: "<choose-a-client-secret>"
        redirectURIs:
         - "<3scale-master-domain-route>"
        grantMethod: prompt
        EOF
  2. 3scale Service Discovery 설정 파일을 엽니다.

        $ oc project <3scale-project>
        $ oc edit configmap system
  3. 다음 설정을 구성합니다.

        service_discovery.yml:
          production:
            enabled: true
            authentication_method: oauth
            oauth_server_type: builtin
            client_id: '3scale'
            client_secret: '<choose-a-client-secret>'
  4. 검색 가능한 서비스가 포함된 클러스터 프로젝트를 볼 수 있는 적절한 권한이 사용자에게 있는지 확인합니다.

    <user> 으로 표시되는 관리자 사용자에게 검색할 서비스가 포함된 < namespace > 프로젝트에 대한 보기 권한을 부여하려면 다음 명령을 사용합니다.

    oc adm policy add-role-to-user view <user> -n <namespace>
  5. configmap 을 수정한 후 system-appsystem-sidekiq Pod를 재배포하여 변경 사항을 적용해야 합니다.

    oc rollout latest dc/system-app
    oc rollout latest dc/system-sidekiq
  6. 롤아웃 상태를 확인하여 완료되었는지 확인합니다.

    oc rollout status dc/system-app
    oc rollout status dc/system-sidekiq

추가 참고

기본적으로 OpenShift OAuth 세션 토큰은 OpenShift 토큰 옵션에 표시된 대로 24시간 후에 만료됩니다.

8.2.1.2. RH-SSO 서버 사용(Keycloak)

시스템 관리자는 사용자가 3scale을 개별적으로 인증하고 승인하여 OpenShift용 Red Hat Single Sign-On 서비스를 검색할 수 있습니다. RH-SSO 배포를 OpenShift의 권한 부여 게이트웨이로 사용하도록 OpenShift를 구성하는 예는 이 워크플로 를 참조하십시오.

  1. Red Hat OAuth 서버(Keycloak)에서 3scale용 OAuth 클라이언트를 생성합니다.

    참고

    클라이언트 구성에서 사용자 이름이 OpenShift가 계정을 연결할 수 있도록 preferred_username 에 매핑되는지 확인합니다.

  2. 3scale 서비스 검색 설정을 편집합니다.

        $ oc project <3scale-project>
        $ oc edit configmap system
  3. 이러한 설정이 구성되어 있는지 확인합니다.

        service_discovery.yml:
          production:
            enabled: true
            authentication_method: oauth
            oauth_server_type: rh_sso
            client_id: '3scale'
            client_secret: '<choose-a-client-secret>'
  4. 검색 가능한 서비스가 포함된 클러스터 프로젝트를 볼 수 있는 적절한 권한이 사용자에게 있는지 확인합니다.

    예를 들어 < namespace > 프로젝트에 대해 < user > 보기 권한을 부여하려면 다음 명령을 사용합니다.

    oc adm policy add-role-to-user view <user> -n <namespace>
  5. configmap 을 수정한 후 system-appsystem-sidekiq Pod를 재배포하여 변경 사항을 적용해야 합니다.

추가 정보:

  • 토큰 수명: 기본적으로 세션 토큰은 Keycloak - 세션 및 토큰 시간 제한에 표시된 대로 1분 후에 만료됩니다. 그러나 시간 제한을 허용 가능한 값으로 1일로 설정하는 것이 좋습니다.