다음을 통해 공유


빠른 시작: 검색 서비스에 연결

이 빠른 시작에서는 RBAC(역할 기반 액세스 제어) 및 Microsoft Entra ID를 사용하여 Azure AI Search 서비스에 대한 키 없는 연결을 설정합니다. 그런 다음 Visual Studio Code에서 Python을 사용하여 서비스와 상호 작용합니다.

키 없는 연결은 세분화된 권한 및 ID 기반 인증을 통해 향상된 보안을 제공합니다. 하드 코딩된 API 키는 권장하지 않지만 원하는 경우 키를 사용하여 Azure AI Search에 연결을 참조하세요.

필수 구성 요소

역할 기반 액세스 구성

이 섹션에서는 Azure AI Search 서비스에서 RBAC를 사용하도록 설정하고 검색 개체를 만들고, 로드하고, 쿼리하는 데 필요한 역할을 할당합니다. 이러한 단계에 대한 자세한 내용은 역할을 사용하여 Azure AI Search에 연결을 참조하세요.

액세스를 구성하려면 다음을 수행합니다.

  1. Azure Portal에 로그인하고 검색 서비스를 선택합니다.

  2. 왼쪽 창에서 설정 > 키를 선택합니다.

  3. 역할 기반 액세스 제어를 선택하거나 클라이언트를 RBAC로 전환할 시간이 필요한 경우 둘 다 선택합니다.

    Azure Portal의 액세스 제어 옵션 스크린샷

  4. 왼쪽 창에서 액세스 제어(IAM)를 선택합니다.

  5. 추가>역할 할당 추가를 선택합니다.

    Azure Portal에서 역할 할당을 추가하기 위한 드롭다운 메뉴의 스크린샷

  6. 사용자 계정 또는 관리 ID에 Search Service 기여자 역할을 할당합니다.

  7. 검색 인덱스 데이터 참가자에 대한 역할 할당을 반복합니다.

서비스 정보 가져오기

이 섹션에서는 Azure AI Search 서비스의 구독 ID 및 엔드포인트를 검색합니다. 구독이 하나만 있는 경우 구독 ID를 건너뛰고 엔드포인트만 검색합니다. 이 빠른 시작의 나머지 섹션에서 이러한 값을 사용합니다.

서비스 정보를 얻으려면 다음을 수행합니다.

  1. Azure Portal에 로그인하고 검색 서비스를 선택합니다.

  2. 왼쪽 창에서 개요를 선택합니다.

  3. 구독 ID 및 엔드포인트를 기록해 둡니다.

    Azure Portal의 구독 ID 및 엔드포인트 스크린샷

Azure에 로그인

Azure AI Search 서비스에 연결하기 전에 Azure CLI를 사용하여 서비스를 포함하는 구독에 로그인합니다. 이 단계에서는 Microsoft Entra ID 정체성을 설정하고, 다음 섹션에서 요청을 인증하는 데 사용합니다.

로그인 방법:

  1. 로컬 시스템에서 명령줄 도구를 엽니다.

  2. Azure에 로그인합니다. 구독이 여러 개 있는 경우 서비스 정보 가져오기에서 가져온 ID를 선택합니다.

    az login
    

비고

이 섹션에서는 키 없는 연결에 대한 기본 Python 패턴을 보여 줍니다. 포괄적인 지침은 빠른 시작 : Azure AI Search에서 에이전트 검색 실행과 같은 특정 빠른 시작 또는 자습서를 참조하세요.

Visual Studio Code에서 Python Notebook을 사용하여 Azure AI Search 서비스에 요청을 보낼 수 있습니다. 요청 인증의 DefaultAzureCredential 경우 Azure ID 라이브러리의 클래스를 사용합니다.

Python을 사용하여 연결하려면 다음을 수행합니다.

  1. 로컬 시스템에서 Visual Studio Code를 엽니다.

  2. .ipynb 파일을 만듭니다.

  3. 코드 셀을 생성하여 azure-identityazure-search-documents 라이브러리를 설치합니다.

    pip install azure-identity azure-search-documents
    
  4. 다른 코드 셀을 만들어서 검색 서비스를 인증하고 연결합니다.

    from azure.identity import DefaultAzureCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    service_endpoint = "PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE"
    credential = DefaultAzureCredential()
    client = SearchIndexClient(endpoint=service_endpoint, credential=credential)
    
    # List existing indexes
    indexes = client.list_indexes()
    
    for index in indexes:
       index_dict = index.as_dict()
       print(json.dumps(index_dict, indent=2))
    
  5. 서비스 정보 가져오기에서 얻은 값으로 설정합니다service_endpoint.

  6. 모두 실행을 선택하여 두 코드 셀을 실행합니다.

    출력은 검색 서비스의 기존 인덱스(있는 경우)를 나열하여 성공적인 연결을 나타냅니다.

401 오류 문제 해결

401 오류가 발생하는 경우 다음 문제 해결 단계를 수행합니다.

  • 역할 기반 액세스 구성을 다시 검토합니다. 검색 서비스에 역할 기반 액세스 제어 또는 둘 다 사용하도록 설정되어 있어야 합니다. 구독 또는 리소스 그룹 수준의 정책도 역할 할당을 재정의할 수 있습니다.

  • Azure에 다시 로그인합니다. 검색 서비스를 포함하는 구독에 로그인해야 합니다.

  • 엔드포인트 변수에 주변 따옴표가 있는지 확인합니다.

  • 다른 모든 항목이 실패하면 디바이스를 다시 시작하여 캐시된 토큰을 제거한 다음 , Azure에 로그인하기 시작하여 이 빠른 시작의 단계를 반복합니다.

이 빠른 시작에서는 RBAC(역할 기반 액세스 제어) 및 Microsoft Entra ID를 사용하여 Azure AI Search 서비스에 대한 키 없는 연결을 설정합니다. 그런 다음 Visual Studio Code에서 REST를 사용하여 서비스와 상호 작용합니다.

키 없는 연결은 세분화된 권한 및 ID 기반 인증을 통해 향상된 보안을 제공합니다. 하드 코딩된 API 키는 권장하지 않지만 원하는 경우 키를 사용하여 Azure AI Search에 연결을 참조하세요.

필수 구성 요소

역할 기반 액세스 구성

이 섹션에서는 Azure AI Search 서비스에서 RBAC를 사용하도록 설정하고 검색 개체를 만들고, 로드하고, 쿼리하는 데 필요한 역할을 할당합니다. 이러한 단계에 대한 자세한 내용은 역할을 사용하여 Azure AI Search에 연결을 참조하세요.

액세스를 구성하려면 다음을 수행합니다.

  1. Azure Portal에 로그인하고 검색 서비스를 선택합니다.

  2. 왼쪽 창에서 설정 > 키를 선택합니다.

  3. 역할 기반 액세스 제어를 선택하거나 클라이언트를 RBAC로 전환할 시간이 필요한 경우 둘 다 선택합니다.

    Azure Portal의 액세스 제어 옵션 스크린샷

  4. 왼쪽 창에서 액세스 제어(IAM)를 선택합니다.

  5. 추가>역할 할당 추가를 선택합니다.

    Azure Portal에서 역할 할당을 추가하기 위한 드롭다운 메뉴의 스크린샷

  6. 사용자 계정 또는 관리 ID에 Search Service 기여자 역할을 할당합니다.

  7. 검색 인덱스 데이터 참가자에 대한 역할 할당을 반복합니다.

서비스 정보 가져오기

이 섹션에서는 Azure AI Search 서비스의 구독 ID 및 엔드포인트를 검색합니다. 구독이 하나만 있는 경우 구독 ID를 건너뛰고 엔드포인트만 검색합니다. 이 빠른 시작의 나머지 섹션에서 이러한 값을 사용합니다.

서비스 정보를 얻으려면 다음을 수행합니다.

  1. Azure Portal에 로그인하고 검색 서비스를 선택합니다.

  2. 왼쪽 창에서 개요를 선택합니다.

  3. 구독 ID 및 엔드포인트를 기록해 둡니다.

    Azure Portal의 구독 ID 및 엔드포인트 스크린샷

토큰 가져오기

Azure AI Search 서비스에 연결하기 전에 Azure CLI를 사용하여 서비스를 포함하는 구독에 로그인하고 Microsoft Entra ID 토큰을 생성합니다. 이 토큰을 사용하여 다음 섹션에서 요청을 인증합니다.

토큰을 가져오려면 다음을 수행합니다.

  1. 로컬 시스템에서 명령줄 도구를 엽니다.

  2. Azure에 로그인합니다. 구독이 여러 개 있는 경우 서비스 정보 가져오기에서 가져온 ID를 선택합니다.

    az login
    
  3. 액세스 토큰을 생성합니다.

    az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
    
  4. 토큰 출력을 기록해 둡다.

비고

이 섹션에서는 키 없는 연결에 대한 기본 REST 패턴을 보여 줍니다. 포괄적인 지침은 빠른 시작 : Azure AI Search에서 에이전트 검색 실행과 같은 특정 빠른 시작 또는 자습서를 참조하세요.

Visual Studio Code의 REST 클라이언트 확장을 사용하여 Azure AI Search 서비스에 요청을 보낼 수 있습니다. 요청 인증의 경우 이전에 생성한 Authorization Microsoft Entra ID 토큰이 포함된 헤더를 포함합니다.

REST를 사용하여 연결하려면 다음을 수행합니다.

  1. 로컬 시스템에서 Visual Studio Code를 엽니다.

  2. .rest 또는 .http 파일을 만드십시오.

  3. 다음 자리 표시자와 요청을 파일에 붙여 넣으세요.

    @baseUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE
    @token = PUT-YOUR-PERSONAL-IDENTITY-TOKEN-HERE
    
    ### List existing indexes
    GET {{baseUrl}}/indexes?api-version=2024-07-01  HTTP/1.1
       Content-Type: application/json
       Authorization: Bearer {{token}}
    
  4. @baseUrl서비스 정보 가져오기에서 얻은 값으로 바꿉니다.

  5. 토큰 가져오기에서 얻은 값으로 @token 바꾸십시오.

  6. 아래에서 ### List existing indexes요청 보내기를 선택합니다.

    성공적으로 검색 서비스에 연결되었음을 나타내는 HTTP/1.1 200 OK 응답을 받아야 합니다.

401 오류 문제 해결

401 오류가 발생하는 경우 다음 문제 해결 단계를 수행합니다.

  • 역할 기반 액세스 구성을 다시 검토합니다. 검색 서비스에 역할 기반 액세스 제어 또는 둘 다 사용하도록 설정되어 있어야 합니다. 구독 또는 리소스 그룹 수준의 정책도 역할 할당을 재정의할 수 있습니다.

  • Get token을 다시 확인하세요. 검색 서비스를 포함하는 구독에 로그인해야 합니다.

  • 엔드포인트 및 토큰 변수에 주변 따옴표 또는 추가 공백이 없는지 확인합니다.

  • 토큰에 요청 헤더에 기호가 @ 없는지 확인합니다. 예를 들어 변수가 @token있는 경우 요청의 참조는 이어야 {{token}}합니다.

  • 다른 모든 항목이 실패하면 디바이스를 다시 시작하여 캐시된 토큰을 제거한 다음 토큰 가져오기부터 시작하여 이 빠른 시작의 단계를 반복합니다.