인증 설정 구성

Customer Service용 옴니채널은 Dynamics 365 Customer Service Enterprise의 기능을 확장하는 기능 모음을 제공하여 조직이 디지털 메시징 채널을 통해 고객과 즉시 연결하고 참여할 수 있도록 합니다. Customer Service용 옴니채널에 액세스하려면 추가 라이선스가 필요합니다. 자세한 내용은 Dynamics 365 Customer Service 가격 책정 개요Dynamics 365 Customer Service 요금제 페이지를 참조하십시오.

인증 설정을 생성하여 도메인에서 로그인한 고객을 확인하고 정의된 컨텍스트 변수를 기반으로 정보를 추출할 수 있습니다. 익명 고객과 인증된 고객을 구별할 수 있으며 컨텍스트 변수를 기반으로 규칙을 만들 수 있습니다.

예를 들어 익명 고객과 인증된 고객에 대해 별도의 큐를 가질 수 있습니다. 인증된 고객에 대한 정보가 더 많기 때문에 쇼핑 카트 값이나 권한 상태와 같은 특정 변수에 따라 우선 순위를 지정할 수도 있습니다.

인증 설정 레코드를 생성한 후 작동하려면 작업 스트림의 채널 설정 내에서 채널 인스턴스에 추가해야 합니다. 인증은 다음 채널에 대해 지원됩니다.

  • 채팅
  • Apple Messages for Business

에이전트는 대화 요약 섹션에 고객이 인증을 받았는지 여부에 대한 알림을 받습니다. 인증됨 필드는 고객의 인증을 기반으로 또는 아니요로 설정됩니다. 추가 정보: 대화 요약

전제 조건

채팅을 위한 인증 설정 레코드 생성

관리자 앱에서 채팅 인증 설정 레코드를 생성할 수 있습니다.

  1. 관리 앱 중 하나로 이동하여 다음 단계를 수행합니다.

    1. 사이트 맵에서 고객 지원에 있는 고객 설정을 선택합니다. 고객 설정 페이지가 표시됩니다.
    2. 인증 설정 섹션에서 관리를 선택합니다.

    인증 설정 페이지가 표시됩니다.

  2. 새 인증 설정을 선택하고 인증 설정 추가 페이지에서 다음 정보를 제공합니다.

    • 이름: 인증 설정의 이름을 입력합니다.

    • 담당자: 기본값을 승인하거나 필요한 값으로 변경하십시오.

    • 인증 유형: 기본적으로 편집할 수 없는 OAuth 2.0 암시적 흐름입니다.

    • 공개 키 URL: 도메인의 공개 키 URL을 지정합니다. 이 URL은 고객이 로그인한 도메인의 JSON(JavaScript Object Notation) 웹 토큰(JWT)에서 제공되는 정보의 유효성을 검사하는 데 사용됩니다.

    • JavaScript 클라이언트 함수: 인증에 사용할 JavaScript 클라이언트 함수를 지정합니다. 이 함수는 토큰 끝점에서 토큰을 추출합니다.

      채팅 인증 설정 레코드 구성.

    공개 키 URL 및 JavaScript 클라이언트 기능을 찾는 방법에 대한 자세한 내용은 Power Apps 포털 설정 또는 사용자 지정 포털 설정 섹션은 이 문서 뒷부분에 있습니다.

  3. 저장을 선택합니다.

OAuth 2.0을 사용하여 채팅에 대한 인증 설정 레코드 만들기

  1. 채팅에 대한 인증 설정 레코드 만들기의 1~3단계를 수행하고, 인증 설정 추가 페이지에서 다음 세부 사항을 입력합니다.

    • 이름: 인증 설정의 이름입니다.
    • 채널 유형: 라이브 채팅.
    • 인증 유형: OAuth 2.0 암시적 흐름
  2. 다음을 선택하고 세부 정보 페이지에서 다음 정보를 입력합니다.

    • 토큰 사용자 지정 작업: ID 공급자가 제공한 토큰을 검증하고 인증된 사용자의 사용자 ID를 반환하는 사용자 지정 코드 참조입니다.
    • 토큰 URL: 사용자 ID를 얻기 위해 사용자 지정 작업에 전달된 토큰에 대한 인증 코드를 교환하는 데 사용되는 URL입니다.
    • 리디렉션 URL: 원래 인증 코드 요청에 전달된 URL입니다. 이는 토큰 교환 엔드포인트 호출 시 필수 매개 변수입니다.
    • 클라이언트 ID: 토큰 교환 엔드포인트에 전달된 클라이언트의 ID입니다.
    • 클라이언트 암호: 토큰 교환 엔드포인트에 전달된 클라이언트를 인증하는 암호입니다.
    • 범위: 흐름에서 획득한 토큰에 의해 사용자에게 권한이 부여되는 범위입니다.
  3. 변경 내용을 저장합니다.

채팅 위젯에 인증 추가

  1. Customer Service 관리 센터의 작업 스트림 설정에서 채팅 위젯을 편집하고 행동 탭으로 이동합니다.

  2. 인증 설정 상자에서 채팅 인증 레코드를 찾아 선택합니다.

포털에 로그인한 고객이 채팅 위젯을 열면 JavaScript 클라이언트 함수가 JWT를 클라이언트에서 서버로 전달합니다. 공개 키를 사용하여 JWT의 암호를 해독하고 유효성을 검사한 다음 정보를 고객 서비스용 옴니 채널의 채팅 에이전트로 전달합니다. 관리자는 사용자 지정 컨텍스트 변수를 정의하여 JWT에서 로그인한 고객에 대한 추가 정보를 전달할 수도 있습니다. 컨텍스트 변수는 채팅 위젯과 연결된 작업 스트림에 정의된 대로 정확하게 정의되어야 합니다. 추가 정보: 컨텍스트 변수 관리

Power Apps 포털 설정

Power Apps 포털을 사용하여 개발된 웹 사이트에서 채팅 위젯에 대한 인증을 추가하는 경우 공개 키 URL 및 JavaScript 클라이언트 기능을 기본적으로 사용할 수 있습니다. Power Apps 포털에서 유효한 공개 키 URL을 가지려면 사용자 지정 인증서 업로드가 필요합니다.

  • 공개 키 URL: <portal_base_URL>/_services/auth/publickey
  • JavaScript 클라이언트 함수: auth.getAuthenticationToken

Power Apps 포털은 JavaScript 클라이언트 기능에 전달된 컨텍스트를 통해 연락처 레코드를 대화에 자동으로 연결하려고 합니다.

사용자 지정 포털 설정

Power Apps 포털을 사용하여 개발되지 않은 사용자 지정 웹 사이트에 인증된 채팅 환경을 추가하는 경우 웹 개발 팀은 관리자가 인증된 채팅을 구성하기 전에 다음 단계를 수행해야 합니다.

  1. 인증 서버에서 공개/개인 키 쌍을 생성합니다. 키는 RSA256 알고리즘을 사용하여 생성해야 합니다.

    다음은 개인 키와 공개 키 쌍을 만드는데 필요한 샘플 코드입니다.

    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. 공개 키를 반환할 엔드포인트를 만듭니다. 옴니채널 서버는 공개 키를 사용하여 채팅 요청 승인의 일부로 전달된 JWT 토큰의 유효성을 검사합니다. 이 엔드포인트의 URL은 인증 설정 레코드를 생성할 때 관리 앱에 입력됩니다.

    공개 키 엔드포인트는 다음 예시와 유사합니다:

      -----BEGIN PUBLIC KEY----- 
      NIIBIjANBgkqhkiG9w0BAQEFABCOPQ8AMIIBCgKCAQEAn+BjbrY5yhSpLjcV3seP 
      mNvAvtQ/zLwkjCbpc8c0xVUOzEdH8tq4fPi/X5P/Uf2CJomWjdOf1wffmOZjFasx 
      ELG+poTqy5uX2dNhH6lOMUsV31QGG36skLivpLBCSK6lWlzsV6WGkb/m8r86aGzp 
      jtNhw8yvoTYB4updDrJ8pC+tx4EWK0WEmKn1GsW6TjUtxJjcTLI1puSbmcGHbkSi 
      RSbWkKPqaEVFALprw+W5ZCung5QX3KOkY/rJd+2JwULm7okyQCQaF7qwa5i9Uf65 
      7M6ZL4vsDevq7E/v3tf6qxpSSHzt4XspXVQty9QHhqDqBEY3PfI4L2JjgIGuPhfS 
      YQIDAQAB 
      -----END PUBLIC KEY-----   
    
    

여러 공개 키를 사용해야 하는 경우 공개 키 엔드포인트는 <kid, publickey> 쌍 세트를 반환할 수 있습니다. 여기서 kid는 키 ID를 나타냅니다. 키 ID 쌍은 고유해야 합니다. 아이는 4단계에서 JWT 토큰으로 전달되어야 합니다. 여러 키를 사용하는 경우, 공개 키 엔드포인트는 다음과 같은 것을 반환해야 합니다. 공개 키는 base64로 인코딩됩니다.

 [
      { 
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=",
          "publicKey": LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      },
 {
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp__valid=",
          "publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      } 
 ]
  1. 인증된 사용자에 대한 채팅을 시작하는 과정에서 옴니채널의 서버로 보낼 JWT를 생성하는 서비스가 필요합니다.

    a. JWT 헤더는 다음 예와 유사합니다.

    { 
      "alg": "RS256", 
      "typ": "JWT", 
    } 
    

    여러 공개 키를 사용하려면 키 ID(kid)를 전달해야 합니다. 헤더는 이 예제와 유사하게 보입니다:

    { 
      "alg": "RS256", 
      "typ": "JWT",
      "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4="
    } 
    

    b. JWT 페이로드에는 다음이 포함되어야 합니다.

    • 최소 다음 클레임:

      클레임 정의
      iss 토큰 발행인
      iat 토큰이 발행된 날짜(숫자 날짜 형식).
      exp 이 토큰의 만료 날짜(숫자 날짜 형식).
      하위 요구 사항 제목
      참고: 로그인한 사용자에 대해 고객 서비스에 연락처 또는 계정 레코드의 GUID를 전달하는 것이 좋습니다. 이 GUID는 연락처 레코드를 식별하고 대화에 연결하는 데 사용됩니다.
    • lwicontexts 회람 목적으로 또는 에이전트에 표시하기 위해 대화의 일부로 전달할 컨텍스트 변수입니다.
      추가 정보:
      사용자 지정 컨텍스트 관리
      setAuthTokenProvider 방법
      컨텍스트 변수를 사용하여 자동으로 레코드 식별

    • 전달하려는 기타 모든 데이터.

    페이로드는 이 예제와 유사하게 보입니다:

      { 
          "sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",  
          "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"87b4d06c-abc2-e811-a9b0-000d3a10e09e\"}", 
          "iat" : 1542622071, 
          "iss" : "contosohelp.com", 
          "exp" : 1542625672, 
          "nbf" : 1542622072 
      } 
    

    c. JWT 서명은 개인 키로 서명해야 합니다.

    노트

    • 토큰이 만료되었거나 유효하지 않은 경우 채팅 위젯에서 오류 이벤트가 발생합니다.
    • 인증된 채팅에는 setContextProvider 메서드가 지원되지 않습니다. JWT 페이로드의 일부로 lwicontexts를 전달해야합니다.
  2. 웹 사이트에서 콜백 함수를 수락하고 콜백 함수에 JWT를 반환하는 JavaScript 함수를 만듭니다. 시간 초과를 방지하기 위해 이 JavaScript 함수는 10초 이내에 JWT를 반환해야 합니다. 이 JWT는 다음을 충족해야 합니다.

    • 3단계의 헤더, 페이로드 및 서명을 포함합니다.

    • 1단계의 키 쌍에서 개인 키로 서명합니다.

      (웹 서버에서 JWT를 생성하는 것이 좋습니다).

      이 JavaScript 메서드의 이름은 옴니채널 관리자 앱에서 인증 설정 레코드를 만드는 데 사용됩니다

      // This is a sample JavaScript client function  
      
      auth.getAuthenticationToken = function(callback){ 
      
        var xhttp = new XMLHttpRequest(); 
        xhttp.onreadystatechange = function() { 
            if (this.readyState == 4 && this.status == 200) { 
                callback(xhttp.responseText); 
            } 
        }; 
        xhttp.onerror = function(error) { 
            callback(null); 
        }; 
      //Replace this with a call to your token generating service 
        xhttp.open("GET", "https://contosohelp.com/token", true); 
        xhttp.send(); 
      } 
      
  3. 개발자는 옴니 채널 관리자와 다음 정보를 공유해야합니다:

    a. 2단계의 공용 키 서비스 URL입니다.

    예: https://www.contoso.com/auth/publickey

    b. 4단계의 JavaScript 클라이언트 함수 이름입니다. 실시간 채팅 위젯은 채팅을 시작하는 동안 내부적으로 이 이름을 호출합니다.

    예: auth.getAuthenticationToken

    노트

    사용자 환경이 사용자를 인증하기 전에 대화 버튼을 노출하는 경우 필요에 따라 인증 페이지로 리디렉션해야 합니다. 이 작업은 4단계의 방법 또는 사용자 흐름의 이전 단계에서 수행할 수 있습니다.

    다음 그림은 설정을 보여줍니다.

    인증된 채팅 설정.

    그 다음, 다음 단계에 따라 인증된 채팅을 설정할 수 있습니다:

인증된 채팅 설정

  1. 관리 앱으로 이동하고 이전 섹션의 5단계 정보를 사용하여 인증 설정 레코드를 만듭니다. 추가 정보: 채팅을 위한 인증 설정 레코드 만들기

  2. 인증된 경험이 있는 대화 위젯에 인증 설정을 연결합니다. 추가 정보: 채팅 위젯에 인증 추가

    다음 그림은 사용자가 인증된 설정에서 채팅에 액세스할 때 호출 순서를 보여줍니다.

    인증된 대화 런타임.

Apple Messages for Business에 대한 인증 설정 만들기

전제 조건

  • 인증 설정을 구성하는 관리자는 더 많은 보안 권한이 필요합니다. 추가 정보: 필드에 대한 보안 권한 설정

  • 조직에 OAuth 2.0 코드 흐름 또는 OAuth 2.0 OpenID 연결 흐름에 대한 업무 지식이 있는지 확인하세요. 두 유형 모두에 대한 단계는 다음 섹션에 설명되어 있습니다.

  • 조직에 Apple Messages for Business 인증 유형 멀티미디어 메시지가 하나 이상 있는지 확인합니다. 이 멀티미디어 메시지는 설정에 필요합니다.

OAuth 2.0 코드 흐름을 사용하여 Apple Messages for Business에 대한 인증 설정 레코드 만들기

  1. Customer Service 관리 센터 또는 옴니채널 관리 센터 앱 사이트 맵에서 고객 설정을 선택한 다음 인증 설정 관리를 선택합니다. 기존 인증 설정 목록이 표시됩니다.

  2. 새 인증 설정을 선택하고 인증 설정 추가 페이지에서 다음 세부 정보를 제공합니다.

    1. 채널 유형 페이지에서 이름을 입력하고 채널 유형으로 Apple Messages for Business를 선택합니다.
      기본적으로 인증 유형은 OAuth 2.0 코드 흐름입니다.

    2. 인증 설정 추가 페이지에서 다음 정보를 제공합니다.

      • 클라이언트 ID: 인증 서버에서 발급한 OAuth 2.0 클라이언트 식별자입니다.
      • 클라이언트 암호: 권한 부여 서버로 전송된 요청을 인증하는 데 사용되는 클라이언트 암호입니다.
      • 범위: 추가된 각 범위는 고객에게 요청한 사용자 데이터를 지정합니다. 범위 콘텐츠는 서비스 공급자를 통해 제공되는 콘텐츠와 정확히 일치해야 합니다.
      • 액세스 토큰 URL: 액세스 토큰을 요청할 수 있는 서비스 제공자의 끝점입니다.
      • 복호화된 토큰 URL: OAuth 2.0 API가 범위에서 요청된 고객 정보를 검색할 수 있는 끝점입니다.
    3. 추가 세부 정보 페이지에서 선택적으로 액세스 토큰 만료 시간을 초 단위로 정의할 수 있습니다. 기본 만료 시간은 1시간입니다.
      지정된 시간이 지나면 이전에 인증된 대화의 활성 대화 섹션에 있는 인증 필드가 아니오로 변경됩니다.

    4. 멀티미디어 메시지 페이지에서, 추가를 선택한 다음 이 인증 설정에 연결할 멀티미디어 메시지를 하나 이상 선택합니다.

    5. 요약 페이지를 검토한 후 종료를 선택합니다. 인증 설정이 구성됩니다.

OAuth 2.0 OpenID Connect 흐름을 사용하여 Apple Messages for Business에 대한 인증 설정 레코드 만들기

  1. Customer Service 관리 센터 또는 옴니채널 관리 센터 사이트 맵에서 고객 설정을 선택한 다음, 인증 설정 관리를 선택합니다. 기존 인증 설정 목록이 표시됩니다.

  2. 새 인증 설정을 선택하고 인증 설정 추가 페이지에서 다음 세부 정보를 제공합니다.

    1. 채널 유형 페이지에서 이름을 입력하고 채널 유형으로 Apple Messages for Business를 선택합니다.

    2. 인증 유형 OAuth 2.0 OpenID 연결 흐름을 변경합니다.

    3. 인증 설정 추가 페이지에서 다음 정보를 제공합니다.

      • 클라이언트 ID: 인증 서버에서 발급한 OAuth 2.0 클라이언트 식별자입니다.
      • 클라이언트 암호: 권한 부여 서버로 전송된 요청을 인증하는 데 사용되는 클라이언트 암호입니다.
      • 범위: 추가된 각 범위는 고객에게 요청한 사용자 데이터를 지정합니다. 범위 콘텐츠는 서비스 공급자를 통해 제공되는 콘텐츠와 정확히 일치해야 합니다.
      • 액세스 토큰 URL: 액세스 토큰을 요청할 수 있는 서비스 제공자의 끝점입니다.
      • 복호화된 토큰 URL: OAuth 2.0 API가 범위에서 요청된 고객 정보를 검색할 수 있는 끝점입니다.
      • 추가 매개 변수: 인증 서비스가 요청에서 추가 매개 변수를 가져올 수 있습니다.
    4. 추가 세부 정보 페이지에서 선택적으로 액세스 토큰 만료 시간을 초 단위로 정의할 수 있습니다. 기본 만료 시간은 1시간입니다.
      지정된 시간이 지나면 이전에 인증된 대화의 고객 요약 섹션에 있는 인증됨 필드가 아니요로 변경됩니다.

    5. 멀티미디어 메시지 페이지에서, 추가를 선택한 다음 이 인증 설정에 연결할 멀티미디어 메시지를 하나 이상 선택합니다.

    6. 요약 페이지를 검토한 후 다음을 선택합니다. 인증 설정이 구성됩니다.

    7. 리디렉션 정보 페이지에서 URL을 복사합니다. 허용된 콜백 URL 아래에 있는 인증 서비스 공급자의 웹사이트에 이 URL을 추가합니다.

    8. 마침을 선택합니다.

Apple Messages for Business 채널에 인증 추가

  1. 인증을 추가하려는 채널 인스턴스가 포함된 작업 스트림을 엽니다.

  2. 채널 설정의 작동 페이지에서 인증 설정으로 이동하여 기능을 활성화하고 드롭다운 메뉴에서 올바른 설정을 선택합니다. 추가 정보: Apple Messages for Business 채널 구성

  3. 편집을 선택하여 각 채널 인스턴스에 대한 인증 설정을 검토하거나 업데이트합니다.

참조 항목

채팅 위젯 추가
사전 대화 설문 조사 구성
빠른 회신 만들기
작업 시간 만들기 및 관리
Power Apps 포털에 채팅 위젯 포함
고객 자동 식별