웹 및 Direct Line 채널 보안 구성

중요

Power Virtual Agents 기능 및 특징은 생성 AI에 대한 막대한 투자와 Microsoft Copilot 전반의 향상된 통합에 따라 이제 Microsoft Copilot Studio의 일부가 되었습니다.

문서 및 교육 콘텐츠를 업데이트하는 동안 일부 문서와 스크린샷에서는 Power Virtual Agents을 참조할 수 있습니다.

Microsoft Copilot Studio Copilot을 만들면 데모 웹 사이트사용자 지정 웹 사이트 채널에서 Copilot ID를 아는 사람이 바로 사용할 수 있습니다. 이 채널은 기본적으로 사용 가능하며 구성이 필요하지 않습니다.

Microsoft Teams 앱의 경우 고급 웹 채널 보안 옵션을 구성할 수 있습니다.

노트

Teams 전용 라이선스가 있는 경우 보안 액세스를 활성화하기 위해 암호를 생성할 수 없습니다. 보안 액세스 토큰이 자동으로 생성되며 기본적으로 보안 액세스가 활성화됩니다.

사용자는 Microsoft Copilot Studio에서 직접 Copilot ID를 찾거나 다른 사용자로부터 ID를 받을 수 있습니다. 그러나 Copilot의 기능과 민감도에 따라 바람직하지 않을 수 있습니다.

Direct Line 기반 보안으로, Direct Line 비밀 또는 토큰을 사용하는 보안 액세스 활성화로 제어하는 위치에만 액세스하도록 할 수 있습니다.

또한 비밀을 교환 및 재생성하고 토큰을 새로 고칠 수 있으며 더 이상 사용하지 않으려는 경우 보안 액세스를 쉽게 비활성화할 수 있습니다.

참고

Microsoft Copilot Studio는 Bot Framework Direct Line 채널을 사용하여 웹 페이지 또는 앱을 Copilot에 연결합니다.

전제 조건

웹 채널 보안 활성화 또는 비활성화

각 개별 Copilot에 대한 비밀 및 토큰 사용을 강제할 수 있습니다.

이 옵션이 활성화되면 채널은 클라이언트가 비밀 사용 또는 비밀을 사용하여 생성된 토큰 사용을 통해 요청을 인증해야 합니다.

이 보안 조치를 제공하지 않는 경우 Copilot에 대한 액세스는 작동하지 않습니다.

  1. 탐색 메뉴에서 설정 아래의 보안을 선택합니다. 그런 다음 웹 채널 보안 타일을 선택합니다.

    플라이아웃 설정에서 웹 채널 보안이 강조된 설정 옵션을 보여주는 스크린샷.

  2. 보안 액세스 필요활성화로 전환하여 켭니다.

    웹 채널 보안 페이지를 보여주는 스크린샷.

경고

"보안 액세스 필요"가 활성화 또는 비활성화되면 시스템이 이 설정을 적용하는 데 최대 2시간이 소요될 수 있습니다. 그때까지는 이전 설정이 적용됩니다. 이 변경 사항을 적용하기 위해 Copilot을 게시할 필요는 없습니다.

Copilot을 실수로 노출시키지 않도록 미리 계획해야 합니다.

웹 채널 보안 옵션을 비활성화해야 하는 경우 보안 액세스 필요비활성화로 전환하여 이를 수행할 수 있습니다. 보안 액세스를 비활성화하려면 최대 2시간이 소요될 수 있습니다.

보안 액세스를 비활성화할 때 확인 메시지(이 작업은 비밀 또는 토큰을 사용하지 않는 데모 웹 사이트와 Direct Line 채널입니다. 이 작업이 적용되려면 최대 2시간이 소요될 수 있습니다)를 보여주는 스크린샷.

비밀 또는 토큰 사용

서비스투서비스 앱을 만드는 경우 인증 헤더 요청에 비밀을 지정하는 것이 가장 간단한 방법일 수 있습니다.

클라이언트가 웹 브라우저 또는 모바일 앱에서 실행되는 앱을 작성하거나 코드가 고객에게 표시될 수 있는 경우 비밀을 토큰으로 교환해야 합니다. 토큰을 사용하지 않으면 비밀이 손상될 수 있습니다. 서비스에서 토큰 획득을 요청하는 경우 권한 부여 헤더에 비밀을 지정하십시오.

토큰은 단일 대화에만 작동하며 새로 고치지 않으면 만료됩니다.

상황에 가장 적합한 보안 모델을 선택하십시오.

경고

하드 코딩되거나 네트워크 호출을 통해 전송된 브라우저에서 실행되는 모든 코드에서 비밀을 노출하지 않는 것이 좋습니다.

서비스 코드의 비밀을 사용하여 토큰을 획득하는 것이 Microsoft Copilot Studio Copilot을 보호하는 가장 안전한 방법입니다.

비밀 획득

앱의 인증 헤더 요청 등에서 지정할 수 있도록 비밀이 필요합니다.

  1. 탐색 메뉴에서 설정 아래의 보안을 선택합니다. 그런 다음 웹 채널 보안 타일을 선택합니다.

  2. 복사를 선택하여 비밀 1 또는 비밀 2 중 하나를 클립보드에 복사합니다. 가시성 아이콘 가시성 아이콘.을 선택하여 비밀을 보여줍니다. 경고 메시지가 나타나기 전에 비밀이 나타납니다.

비밀 교환

Copilot에서 사용 중인 비밀을 변경해야 하는 경우 다운 타임이나 중단 없이 변경할 수 있습니다.

Microsoft Copilot Studio는 동시에 작동하는 두 가지 비밀을 제공합니다. 사용 중인 비밀을 다른 비밀과 교환할 수 있습니다. 비밀이 바뀌고 사용자가 모두 새로운 비밀을 사용하여 연결되면 비밀을 다시 생성할 수 있습니다.

비밀 재생성

비밀을 재생성하려면 비밀 옆의 재생성을 선택합니다.

경고

초기 비밀 또는 해당 비밀에서 얻은 토큰을 사용하여 연결된 모든 사용자의 연결이 끊어집니다.

토큰 생성

단일 Copilot 대화를 시작할 때 사용할 수 있는 토큰을 생성할 수 있습니다. 자세한 내용은 모바일 및 사용자 지정 앱에 Copilot 추가 문서에서 Direct Line 토큰 획득 섹션을 참조 바랍니다.

  1. 비밀 획득

  2. 서비스 코드에서 다음 요청을 발행하여 비밀을 토큰으로 교환합니다. <SECRET>을 1 단계에서 얻은 비밀 값으로 교체합니다.

    POST https://directline.botframework.com/v3/directline/tokens/generate
    Authorization: Bearer <SECRET>
    

다음 코드 조각은 생성된 토큰 요청 및 해당 응답의 예를 제공합니다.

샘플 토큰 요청 생성

POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

샘플 토큰 응답 생성

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800
}

요청이 성공하면 응답이 하나의 대화와 토큰 만료 전까지 남은 초를 나타내는 expires_in 값에 유효한 토큰을 포함합니다.

토큰이 유용하게 유지되려면 토큰이 만료되기 전에 토큰 새로 고침을 수행해야 합니다.

토큰 새로 고침

토큰은 만료되지 않는 한 무제한으로 새로 고칠 수 있습니다.

만료된 토큰은 새로 고칠 수 없습니다.

토큰을 새로 고치려면 다음 요청을 발행하고 <TOKEN TO BE REFRESHED>를 새로 고치려는 토큰으로 교체합니다.

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>

다음 스니펫은 토큰 새로 고침 요청 및 해당 응답의 예를 제공합니다.

샘플 새로 고침 요청

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

샘플 새로 고침 응답

요청이 성공하면 응답이 동일한 대화와 새 토큰 만료 전까지 남은 초를 나타내는 expires_in 값에 유효한 새 토큰을 포함합니다.

토큰이 유용하게 유지되려면 새 토큰이 만료되기 전에 토큰 새로고침을 다시 수행해야 합니다.

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
  "expires_in": 1800
}

토큰 새로 고침에 대한 자세한 내용은 Direct Line API - 인증 문서에서 Direct Line 토큰 새로 고침 섹션을 참조 바랍니다.