인증 설정 구성

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

참고

기능 가용성 정보는 다음과 같습니다.

Dynamics 365 Contact Center—내장형 Dynamics 365 Contact Center—독립 실행형 Dynamics 365 Customer Service

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

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

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

  • 채팅
  • Apple Messages for Business

고객이 인증되었는지 여부를 나타내기 위해 상담원은 대화 요약 섹션에서 알림을 받습니다. 인증 필드는 고객의 인증 상태에 따라 또는 아니요 로 설정됩니다. 자세한 내용은 대화 요약에서 확인하세요.

사전 요구 사항

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

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

  1. Customer Service 관리 센터 사이트 맵에서 고객 지원고객 설정을 선택하세요. 고객 설정 페이지가 표시됩니다.

  2. 인증 설정 섹션에서 관리를 선택합니다. 인증 설정 페이지가 표시됩니다.

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

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

    • 소유자: 기본값을 적용하거나 필요한 값으로 변경합니다.

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

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

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

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

    이 문서의 뒷부분에 있는 포털 설정 Power Apps 또는 사용자 지정 포털 설정 섹션에서 공개 키 URL과 JavaScript 클라이언트 함수를 찾는 방법에 대해 자세히 알아보세요.

  4. 저장을 선택합니다.

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는 공개 키를 사용하여 복호화되고 검증된 후, 해당 정보는 Customer Service용 옴니채널의 채팅 에이전트로 전달됩니다. 관리자는 사용자 지정 컨텍스트 변수를 정의하여 JWT에서 로그인한 고객에 대한 추가 정보를 전달할 수도 있습니다. 컨텍스트 변수는 채팅 위젯와 관련된 작업 스트림에 있는 것과 정확히 동일하게 정의되어야 합니다. 자세한 내용은 컨텍스트 변수 관리에서 확인하세요.

Power Apps 포털 설정

Power Apps 포털을 사용하여 개발한 웹사이트에 채팅 위젯에 대한 인증을 추가하면 공개 키 URL과 JavaScript 클라이언트 기능을 바로 사용할 수 있습니다. 포털에서 유효한 공개 키 URL을 보유하려면 사용자 지정 인증서를 업로드해야 합니다. Power Apps

  • 공개 키 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 OpenID 연결 흐름에 대한 실무 지식이 있는지 확인하세요. 다음 섹션에는 각 단계가 설명되어 있습니다.

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

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 포털에 채팅 위젯 포함
고객 자동 식별