API 플러그 인을 키로 보호된 API와 통합
API를 보호하는 일반적인 방법 중 하나는 API 키를 사용하는 것입니다. API 키는 API 소유자가 API에 대한 액세스 권한을 부여하기 위해 발급하는 임의의 문자열입니다. 많은 인기 있는 서비스는 API 키를 사용하여 API에 대한 액세스를 보호합니다. API 키를 발급하는 API 공급자는 키가 전체 API 표면 및 모든 리소스 또는 특정 부분에 대한 액세스 권한을 제공하는지 여부를 제어합니다. 또한 서비스는 키가 유효한 기간을 제어합니다.
API 키는 단순성 덕분에 사용하기 편리합니다. API 키로 보호되는 API를 호출하려면 API 요청에 API 키를 포함하기만 하면 됩니다. 그런 다음 API는 키의 유효성을 검사하고 요청을 처리하거나 인증 또는 권한 부여 오류로 거부합니다. 그러나 이러한 단순성은 비용이 듭니다. API 키는 사용자를 인증하지 않으므로 API가 사용자를 대신하여 작동할 수 없습니다. 동일한 API 키를 사용하여 API를 호출하는 모든 사용자는 동일한 권한을 갖습니다.
각 API 공급자는 요청과 함께 API 키를 전달하는 방법을 정의합니다. 예를 들어 API를 사용하려면 특정 쿼리 문자열 매개 변수 또는 요청 헤더를 사용해야 할 수 있습니다.
Microsoft 365 Copilot 다음과 같이 API 키 전달을 지원합니다.
- JWT(JSON 웹 토큰)
GET https://api.contoso.com/orders
Authorization: Bearer API_KEY
- 쿼리 문자열 매개 변수
GET https://api.contoso.com/orders?api_key=API_KEY
- 사용자 지정 헤더
GET https://api.contoso.com/orders
X-API-Key: API_KEY
API 키는 공개적으로 공유해서는 안 되는 비밀 값입니다. API 키로 보호되는 API와 통합되는 API 플러그 인을 빌드하는 경우 API 키를 자격 증명 모음이라고도 하는 Microsoft 365의 보안 스토리지 위치에 저장합니다. 그런 다음 앱에서 자격 증명 모음 항목의 ID를 참조합니다. 런타임에 선언적 에이전트는 플러그 인(2)을 로드하고 API(3b)를 호출하는 데 사용하는 실제 API 키(3a)로 항목 ID를 확인합니다. 다음 다이어그램에서는 이 프로세스를 보여 줍니다.
API 키를 자격 증명 모음에 저장하면 API 키를 공개적으로 노출하지 않고도 안전하게 관리할 수 있습니다. 또한 앱이 API 키를 직접 참조하지 않으므로 앱을 업데이트하지 않고도 업데이트할 수 있습니다.
개발 중에 Teams 개발자 포털 로 이동하거나 도구 섹션에서 API 키 등록을 열거나 Microsoft 365 에이전트 도구 키트를 사용하여 개발 API 키를 자격 증명 모음에 직접 등록할 수 있습니다. 프로덕션 환경에서는 일반적으로 관리자가 API 키를 등록하고 API 플러그 인에서 사용할 자격 증명 모음 항목의 ID를 제공합니다.