1.20.7.4. OpenID Connect (OIDC) 사용 사례


Service Mesh 및 3scale Istio 어댑터의 경우 다음 예에 표시된 대로 RequestAuthentication 을 배포하여 자체 워크로드 데이터 및 jwtRules 를 작성해야 합니다.

apiVersion: security.istio.io/v1beta1
  kind: RequestAuthentication
  metadata:
    name: jwt-example
    namespace: bookinfo
  spec:
    selector:
      matchLabels:
        app: productpage
    jwtRules:
    - issuer: >-
        http://keycloak-keycloak.34.242.107.254.nip.io/auth/realms/3scale-keycloak
      jwksUri: >-
        http://keycloak-keycloak.34.242.107.254.nip.io/auth/realms/3scale-keycloak/protocol/openid-connect/certs

RequestAuthentication 을 적용하면 JWT 토큰의 유효성을 검증하도록 기본 플러그인으로 Envoy 를 구성합니다. 프록시는 모듈을 실행하기 전에 모든 유효성을 검사하므로 실패한 요청은 3scale WebAssembly 모듈로 이동하지 않습니다.

JWT 토큰을 검증할 때 프록시는 해당 콘텐츠를 내부 메타데이터 오브젝트에 저장하고, 해당 키는 플러그인의 특정 구성에 따라 달라집니다. 이 사용 사례에서는 알 수 없는 키 이름이 포함된 단일 항목으로 구조 오브젝트를 조회할 수 있습니다.

OIDC의 3scale app_id 는 OAuth client_id 와 일치합니다. 이는 JWT 토큰의 azp 또는 aud 필드에 있습니다.

Envoy의 네이티브 JWT 인증 필터에서 app_id 필드를 가져오려면 다음 예제를 참조하십시오.

credentials:
  app_id:
    - filter:
        path:
          - envoy.filters.http.jwt_authn
          - "0"
        keys:
          - azp
          - aud
        ops:
          - take:
              head: 1

이 예제에서는 모듈에서 filter 소스 유형을 사용하여 Envoy- 특정 JWT 인증 네이티브 플러그인에서 오브젝트의 필터 메타데이터를 조회하도록 지시합니다. 이 플러그인에는 단일 항목과 사전 구성된 이름을 사용하여 JWT 토큰이 구조 오브젝트의 일부로 포함됩니다. 0 을 사용하여 단일 항목에만 액세스하도록 지정합니다.

결과 값은 다음 두 필드를 확인하는 구조입니다.

  • azp: app_id 를 찾을 수 있는 값입니다.
  • AUD: 이 정보를 찾을 수 있는 값도 있습니다.

이 작업을 수행하면 할당 시 하나의 값만 유지됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.