Azure Logic Apps의 워크플로에서 IBM MQ 서버에 연결

적용 대상: Azure Logic Apps(사용량 + 표준)

이 문서에서는 MQ 커넥터를 사용하여 Azure Logic Apps의 워크플로에서 Azure 호스팅 또는 온-프레미스 MQ 서버에 액세스하는 방법을 보여 줍니다. 그런 다음 MQ 서버에 저장된 메시지를 수신 및 전송하는 자동화된 워크플로를 생성할 수 있습니다. 예를 들어 워크플로는 큐에서 단일 메시지를 찾은 다음 다른 작업을 실행할 수 있습니다.

MQ 커넥터는 TCP/IP 네트워크를 통해 원격 MQ 서버와 통신하는 모든 메시징 기능을 포함하는 Microsoft MQ 클라이언트 주위에 래퍼를 제공합니다. 이 커넥터는 MQ 클라이언트를 호출할 연결, 작업 및 매개 변수를 정의합니다.

지원되는 IBM WebSphere MQ 버전

  • MQ 7.5
  • MQ 8.0
  • MQ 9.0, 9.1, 9.2 및 9.3

커넥터 기술 참조

MQ 커넥터에는 논리 앱 유형 및 호스트 환경에 따라 여러 버전이 있습니다.

논리 앱 환경 연결 버전
소비 다중 테넌트 Azure Logic Apps 및 ISE(통합 서비스 환경) 디자이너에서 엔터프라이즈 레이블 아래에 표시되는 관리형 커넥터. 이 커넥터는 작업만 제공하고 트리거를 제공하지 않습니다. 온-프레미스 MQ 서버 시나리오에서 관리형 커넥터는 TLS(SSL) 암호화를 사용한 서버 전용 인증을 지원합니다.

자세한 내용은 다음 설명서를 검토하세요.

- MQ 관리형 커넥터 참조
- Azure Logic Apps의 관리형 커넥터
Standard 단일 테넌트 Azure Logic Apps 및 App Service Environment v3(Windows 플랜이 포함된 ASE v3만 해당) 런타임>공유 아래의 커넥터 갤러리에 표시되는 관리형 커넥터 및 런타임>앱 내의 커넥터 갤러리에 표시되고 서비스 공급자 기반인 기본 제공 커넥터. 기본 제공 버전은 다음과 같은 차이점이 있습니다.

- 기본 제공 버전에는 작업 트리거가 포함됩니다.

- 기본 제공 커넥터는 온-프레미스 데이터 게이트웨이 없이 연결 문자열을 사용하여 MQ 서버에 직접 연결하고 Azure 가상 네트워크에 액세스할 수 있습니다.

- 기본 제공 버전은 전송 중인 데이터에 대한 TLS(SSL) 암호화, 송신 및 수신 작업에 대한 메시지 인코딩 및 Azure 가상 네트워크 통합을 사용하여 서버 인증 및 서버 클라이언트 인증을 모두 지원합니다.

자세한 내용은 다음 설명서를 검토하세요.

- MQ 관리형 커넥터 참조
- MQ 기본 제공 커넥터 참조
- Azure Logic Apps의 기본 제공 커넥터

TLS(SSL) 암호화를 사용한 인증

MQ 관리형 커넥터(사용량 또는 표준 워크플로) 또는 MQ 기본 제공 커넥터(표준 워크플로만 해당)를 사용하는지 여부에 따라 MQ 커넥터는 다음 인증 방향 중 하나 또는 둘 다를 지원합니다.

인증 지원되는 논리 앱 유형 및 MQ 커넥터 Process
서버 전용
(단방향)
- 사용량: 관리 전용

- 표준: 관리 또는 기본 제공
서버 인증의 경우 MQ 서버는 유효성 검사를 위해 공개적으로 신뢰할 수 있거나 공개적으로 신뢰할 수 없는 프라이빗 키 인증서를 논리 앱 클라이언트로 보냅니다. MQ 커넥터는 표준 .NET SSL 스트림 유효성 검사를 사용하여 "서명자" 인증서라고도 하는 공개 키 인증서에 대한 인증을 위해 들어오는 서버 인증서의 유효성을 검사합니다.

논리 앱은 클라이언트 인증서를 보내지 않습니다.
서버 클라이언트
(양방향)
- 사용량: 지원되지 않음

- 표준: 기본 제공 전용
서버 인증의 경우 이전 행을 참조하세요.

클라이언트 인증의 경우, 논리 앱 클라이언트는 유효성 검사를 위해 MQ 서버로 프라이빗 키 인증서를 보냅니다. MQ 서버는 공개 키 인증서를 사용하여 들어오는 클라이언트 인증서의 인증 유효성을 검사합니다.

프라이빗 키 및 공개 키 인증서에 대한 참고 사항

  • 유효성 검사가 필요한 인증서는 항상 프라이빗 키 인증서입니다. 유효성 검사를 수행하는 데 사용되는 인증서는 항상 공개 키 인증서입니다.

  • 공개적으로 신뢰할 수 있는 프라이빗 키 인증서는 인식된 인증 기관에서 발급합니다. 공개적으로 신뢰할 수 없는 프라이빗 키 인증서에는 자체 서명된 프라이빗 CA 및 유사한 인증서가 포함됩니다.

  • MQ 서버에서 보낸 프라이빗 키 인증서의 유효성을 검사하기 위해 MQ 커넥터는 일반적으로 호스트의 CA(신뢰할 수 있는 루트 인증 기관) 저장소에 있는 논리 앱의 가상 머신 호스트에 존재하는 공개 키 인증서를 사용합니다.

    그러나 호스트에 필요한 모든 공개 키 인증서가 없거나 MQ 서버가 공개적으로 신뢰할 수 없는 프라이빗 키 인증서를 보내는 경우 추가 단계를 수행해야 합니다. 자세한 내용은 필수 구성 요소를 참조하세요.

  • 표준 논리 앱에서 보낸 클라이언트의 프라이빗 키 인증서의 유효성을 검사하기 위해 MQ 서버는 MQ 서버의 인증서 저장소에 있는 공개 키 인증서를 사용합니다. 클라이언트 인증서로 사용할 논리 앱에 대한 프라이빗 키 인증서를 추가하려면 프라이빗 키 인증서 추가를 참조하세요.

제한 사항

  • TLS(SSL) 암호화를 사용한 인증

    MQ 커넥터 지원되는 인증 방향
    관리형 서버 전용(단방향)
    기본 제공 - 서버 클라이언트(양방향)
    - 서버 전용(단방향)
  • 서버 인증서 유효성 검사

    MQ 기본 제공 커넥터는 서버 인증서의 만료 날짜 또는 인증서 체인의 유효성을 검사하지 않습니다.

  • 문자 집합 변환

    • MQ 관리형 커넥터는 문자 집합을 변환하거나 메시지의 형식 필드를 사용하지 않습니다. 커넥터는 메시지 필드에 표시되는 모든 데이터만 복사하고 메시지를 함께 보냅니다.

    • MQ 기본 제공 커넥터는 문자 집합을 변환할 수 있지만 데이터 형식이 문자열인 경우에만 가능합니다. 다른 문자 집합 ID(코드 페이지)를 제공하는 경우 커넥터는 데이터를 새 코드 페이지로 변환하려고 시도합니다.

  • MQ 커넥터는 분할된 메시지를 지원하지 않습니다.

자세한 내용은 MQ 관리형 커넥터 참조 또는 MQ 기본 제공 커넥터 참조를 검토하세요.

필수 조건

  • Azure 계정 및 구독 Azure 구독이 없는 경우 체험 Azure 계정에 등록합니다.

  • 온-프레미스 MQ 서버를 연결하려면 네트워크 내의 서버에서 온-프레미스 데이터 게이트웨이를 설치해야 합니다. MQ 커넥터가 작동하려면 온-프레미스 데이터 게이트웨이를 사용하는 서버에도 .NET Framework 4.6이 설치되어야 합니다.

    게이트웨이를 설치한 후에는 Azure에서도 데이터 게이트웨이 리소스를 만들어야 합니다. MQ 커넥터는 이 리소스를 사용하여 MQ 서버에 액세스합니다. 자세한 내용은 데이터 게이트웨이 연결 설정을 검토하세요.

    참고 항목

    다음 시나리오에서는 게이트웨이가 필요 없습니다.

    • MQ 서버가 공개적으로 제공되거나 Azure에서 사용할 수 있습니다.
    • 관리형 커넥터가 아닌 기본 제공 커넥터를 사용할 예정입니다.
  • MQ 서버에 액세스하려는 논리 앱 리소스 및 워크플로.

    • 온-프레미스 데이터 게이트웨이에서 MQ 관리형 커넥터를 사용하려면 논리 앱 리소스가 Azure의 게이트웨이 리소스와 동일한 위치를 사용해야 합니다.

    • 트리거를 제공하지 않는 MQ 관리형 커넥터를 사용하려면 워크플로가 트리거로 시작하거나 먼저 트리거를 워크플로에 추가해야 합니다. 예를 들어, 되풀이 트리거를 사용할 수 있습니다.

    • MQ 기본 제공 커넥터에서 트리거를 사용하려면, 워크플로가 비어 있는 상태에서 시작해야 합니다.

  • TLS(SSL) 암호화를 사용한 인증을 위한 인증서 요구 사항

  • 암호화 사양 요구 사항

    MQ 서버를 사용하려면 TLS/SSL 암호화를 사용하는 연결에 대한 암호 사양을 정의해야 합니다. 이 암호 사양은 MQ 서버가 실행되는 운영 체제에서 지원, 선택 및 사용하는 암호 그룹과 일치해야 합니다. 궁극적으로 클라이언트 연결에 사용하는 암호 사양은 MQ 서버의 서버 연결 채널에 설정된 암호 그룹과 일치해야 합니다.

    자세한 내용은 연결 및 인증 문제를 참조하세요.

MQ 트리거 추가(표준 논리 앱에만 해당)

다음 단계는 MQ 기본 제공 커넥터에서 제공하는 트리거를 사용할 수 있는 표준 논리 앱 워크플로에만 적용됩니다. MQ 관리형 커넥터에는 트리거가 포함되지 않습니다.

해당 단계에서는 Azure Portal을 사용합니다. 그러나 적절한 Azure Logic Apps 확장을 사용하면 Visual Studio Code를 사용하여 표준 논리 앱 워크플로를 만들 수도 있습니다.

  1. Azure Portal의 디자이너에서 빈 논리 앱 워크플로를 엽니다.

  2. 다음 일반 단계에 따라 원하는 MQ 기본 제공 트리거를 추가합니다. 자세한 내용은 MQ 기본 제공 커넥터 트리거를 참조하세요.

  3. 연결 인증하는 데 필요한 정보를 제공합니다. 완료되면 만들기를 선택합니다.

  4. 트리거 정보 상자가 나타나면 필수 트리거 정보를 제공합니다.

  5. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

MQ 작업 추가

사용량 논리 앱 워크플로는 MQ 관리형 커넥터만 사용할 수 있습니다. 그러나 표준 논리 앱 워크플로는 MQ 관리형 커넥터 및 MQ 기본 제공 커넥터를 사용할 수 있습니다. 각 버전에는 여러 작업이 있습니다. 예를 들어 관리형 커넥터 버전과 기본 제공 커넥터 버전에는 각각 메시지를 검색하는 고유한 작업이 있습니다.

  • 관리형 커넥터 작업: 이러한 작업은 사용량 또는 표준 논리 앱 워크플로에서 실행됩니다.

  • 기본 제공 커넥터 작업: 이러한 작업은 표준 논리 앱 워크플로에서만 실행됩니다.

다음 단계에서는 Azure Portal을 사용합니다. 그러나 적절한 Azure Logic Apps 확장이 있으면 다음 도구를 사용하여 논리 앱 워크플로를 만들 수도 있습니다.

  1. Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 다음 일반 단계에 따라 원하는 MQ 작업을 추가합니다. 자세한 내용은 MQ 커넥터 작업을 참조하세요.

  3. 연결 인증하는 데 필요한 정보를 제공합니다. 완료되면 만들기를 선택합니다.

  4. 작업 정보 상자가 나타나면 필수 작업 정보를 제공합니다.

  5. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

워크플로 테스트

워크플로가 예상한 결과를 반환하도록 확인하려면 워크플로를 실행한 다음 워크플로의 실행 기록에서 출력을 검토합니다.

  1. 워크플로를 실행합니다.

    • 사용량 논리 앱: 워크플로 디자이너 도구 모음에서 트리거 실행>실행을 선택합니다.

    • 표준 논리 앱: 워크플로 리소스 메뉴에서 개요를 선택합니다. 개요 창 도구 모음에서 트리거 실행>실행을 선택합니다.

    실행이 완료되면 디자이너는 각 단계의 상태와 함께 워크플로의 실행 기록을 보여 줍니다.

  2. 실행된(건너뛰지 않은) 각 단계의 입력 및 출력을 검토하려면 단계를 확장하거나 선택합니다.

    • 더 많은 입력 정보를 검토하려면 원시 입력 표시를 선택합니다.

    • 더 많은 출력 정보를 검토하려면 원시 출력 표시를 선택합니다. IncludeInfotrue로 설정하면 더 많은 출력이 포함됩니다.

TLS(SSL) 암호화를 사용하여 인증을 위한 인증서 보기 및 추가

다음 정보는 TLS(SSL) 암호화를 사용하여 서버 전용 또는 서버 클라이언트 인증을 사용하는 MQ 기본 제공 커넥터에 대한 표준 논리 앱 워크플로에만 적용됩니다.

기존 공개 키 인증서에 대한 지문 보기 및 확인

필요한 공개 키 인증서에 대한 지문이 신뢰할 수 있는 루트 CA 저장소의 표준 논리 앱 가상 머신 호스트에 있는지 확인하려면 다음 단계를 수행하여 표준 논리 앱의 리소스 메뉴에서 cert PowerShell 스크립트를 실행합니다.

  1. Azure Portal에서 표준 논리 앱 리소스를 엽니다. 논리 앱 리소스 메뉴의 개발 도구에서 고급 도구>이동을 선택합니다.

  2. Kudu 디버그 콘솔 메뉴에서 PowerShell을 선택합니다.

  3. PowerShell 창이 나타나면 PowerShell 명령 프롬프트에서 다음 스크립트를 실행합니다.

    dir cert:\localmachine\root

    PowerShell 창에 다음과 같은 기존 지문 및 설명이 나열됩니다.

    Screenshot showing existing example thumbprints and descriptions.

공개 키 인증서 추가

표준 논리 앱이 실행되는 가상 머신 호스트의 신뢰할 수 있는 루트 CA 저장소에 공개 키 인증서를 추가하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 표준 논리 앱 리소스를 엽니다. 논리 앱 리소스 메뉴의 설정에서 TLS/SSL 설정(클래식)을 선택합니다.

  2. TLS/SSL 설정(클래식) 페이지에서 공개 키 인증서(.cer) 탭을 선택한 다음 공개 키 인증서 업로드를 선택합니다.

  3. 열리는 공개 키 인증서(.cer) 추가 창에서 인증서를 설명하는 이름을 입력합니다. 공개 키 인증서 파일(.cer)을 찾아 선택합니다. 완료되면 업로드를 선택합니다.

  4. 인증서를 추가한 후 지문 열에서 인증서의 지문 값을 복사합니다.

    Screenshot showing the Azure portal and Standard logic resource with the following items selected: 'TLS/SSL settings (classic)', 'Public Key Certificates (.cer)', and 'Upload Public Key Certificate'.

  5. 논리 앱 리소스 메뉴에서 구성을 선택합니다.

  6. 애플리케이션 설정 탭에서 새 애플리케이션 설정을 선택합니다. WEBSITE_LOAD_ROOT_CERTIFICATES라는 새 애플리케이션 설정을 추가하고 이전에 복사한 인증서의 지문 값을 입력합니다. 인증서 지문 값이 여러 개 있는 경우 각 값을 쉼표(,)로 구분해야 합니다.

    자세한 내용은 단일 테넌트 Azure Logic Apps의 표준 논리 앱에 대한 호스트 및 앱 설정 편집을 검토하세요.

    참고 항목

    프라이빗 CA 인증서의 지문을 지정하는 경우 MQ 기본 제공 커넥터는 인증서의 만료 날짜 또는 원본 확인과 같은 인증서 유효성 검사를 실행하지 않습니다. 표준 .NET SSL 유효성 검사에 실패하면 커넥터는 전달된 지문 값과 WEBSITE_LOAD_ROOT_CERTIFICATES 설정의 값만 비교합니다.

  7. 추가된 인증서가 공개 키 인증서 목록에 표시되지 않으면 도구 모음에서 새로 고침을 선택합니다.

프라이빗 키 인증서 추가

표준 논리 앱이 실행되는 가상 머신 호스트의 신뢰할 수 있는 루트 CA 저장소에 프라이빗 키 인증서를 추가하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 논리 앱 리소스를 엽니다. 논리 앱 리소스 메뉴의 설정에서 TLS/SSL 설정(클래식)을 선택합니다.

  2. TLS/SSL 설정(클래식) 페이지에서 프라이빗 키 인증서(.pfx) 탭을 선택한 다음 인증서 업로드를 선택합니다.

  3. 열리는 프라이빗 키 인증서(.pfx) 추가 창에서 프라이빗 키 인증서 파일(.pfx)을 찾아 선택한 다음 인증서 암호를 입력합니다. 완료되면 업로드를 선택합니다.

  4. 인증서를 추가한 후 지문 열에서 인증서의 지문 값을 복사합니다.

    Screenshot showing the Azure portal and Standard logic resource with the following items selected: 'TLS/SSL settings (classic)', 'Private Key Certificates (.pfx)', and 'Upload Certificate'.

  5. 논리 앱 리소스 메뉴에서 구성을 선택합니다.

  6. 애플리케이션 설정 탭에서 새 애플리케이션 설정을 선택합니다. WEBSITE_LOAD_CERTIFICATES라는 새 애플리케이션 설정을 추가하고 이전에 복사한 인증서의 지문 값을 입력합니다.

    자세한 내용은 단일 테넌트 Azure Logic Apps의 표준 논리 앱에 대한 호스트 및 앱 설정 편집을 검토하세요.

  7. 추가된 인증서가 프라이빗 키 인증서 목록에 표시되지 않으면 도구 모음에서 새로 고침을 선택합니다.

  8. MQ 기본 제공 커넥터를 사용하여 연결을 만들 때 연결 정보 상자에서 TLS 사용을 선택합니다.

  9. 클라이언트 인증서 지문 속성에서 서버 클라이언트(양방향) 인증을 사용하도록 설정하는 프라이빗 키 인증서에 대해 이전에 복사한 지문 값을 입력합니다. 지문 값을 입력하지 않으면 커넥터는 서버 전용(단방향) 인증을 사용합니다.

    Screenshot showing Standard logic app workflow designer, MQ built-in connection box with 'Use TLS' option selected and the 'Client Cert Thumbprint' property with private key certificate thumbprint entered.

문제 해결

찾아보기 또는 받기 작업이 실패했습니다.

빈 큐에서 찾아보기 또는 받기 작업을 실행하면 다음 헤더 출력과 함께 작업이 실패합니다.

Screenshot showing the MQ

연결 및 인증 문제

워크플로에서 MQ 관리형 커넥터를 사용하여 온-프레미스 MQ 서버에 연결하는 경우 다음 오류가 발생할 수 있습니다.

"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."

  • 서버는 신뢰할 수 있는 인증 기관에서 발급한 인증서를 사용해야 합니다.

  • MQ 서버를 사용하려면 TLS 연결에 사용할 암호화 사양을 정의해야 합니다. 그러나 보안을 유지하고 최상의 보안 도구 모음을 포함할 수 있도록 Windows 운영 체제는 지원되는 암호화 사양 세트를 보냅니다.

    MQ 서버가 실행되는 운영 체제에서 사용할 도구 모음을 선택합니다. 구성을 일치하려면 암호화 사양이 TLS 협상에서 선택한 옵션과 일치하도록 MQ 서버 설정을 변경해야 합니다.

    연결을 시도하면 MQ 서버는 잘못된 암호화 사양을 선택했으므로 연결이 실패했다는 이벤트 메시지를 기록합니다. 이벤트 메시지에는 MQ 서버가 목록에서 선택한 암호 사양이 포함됩니다. 서버 연결 채널 구성에서 이벤트 메시지의 암호 사양과 일치하도록 암호 사양을 업데이트합니다.

다음 단계