View a markdown version of this page

OneDrive에 대한 OAuth 2.0 인증 설정 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

OneDrive에 대한 OAuth 2.0 인증 설정

OAuth 2.0 인증(OAUTH2)은 위임된 새로 고침 토큰과 함께 애플리케이션 클라이언트 ID 및 보안 암호로 인증합니다. 커넥터는 새로 고침 토큰을 사용하여 로그인한 사용자의 위임된 컨텍스트에서 콘텐츠를 크롤링하는 액세스 토큰을 가져옵니다. 데이터 소스에는 사용자가 액세스할 수 있는 OneDrive 콘텐츠, 즉 자체 드라이브와 공유된 드라이브 또는 SharePoint 관리자 액세스 권한이 있는 드라이브가 포함됩니다. 로그인한 사용자가 액세스할 수 없는 드라이브는 자동으로 건너뜁니다.

중요

대부분의 데이터 소스OneDrive에 대한 Microsoft Entra 앱 ID 인증 설정에 권장됩니다. OAuth 2.0 인증에는 다음과 같은 제한 사항이 있습니다.

  • 로그인한 사용자가 액세스할 수 있는 OneDrive 콘텐츠(자체 드라이브 및 자신과 공유되거나 SharePoint 관리자 액세스 권한이 있는 드라이브)만 크롤링합니다. 사용자가 액세스할 수 없는 드라이브는 자동으로 건너뜁니다. 테넌트에서 모든 사용자의 OneDrive를 균일하게 크롤링하려면 Microsoft Entra 앱 ID 인증을 사용합니다.

  • 여기에는 일회성 사용자 로그인(4단계)을 통해 얻는 새로 고침 토큰이 필요합니다.

  • 새로 고침 토큰은 Microsoft 측 수명이 유한합니다. 새로 고침 토큰이 만료되거나 취소되면 새 토큰을 가져와 보안 암호를 업데이트할 때까지 동기화가 실패합니다.

  • 문서 수준 액세스 제어(ACLs 지원하지 않습니다. 사용자 권한별로 쿼리 결과를 필터링하려면 Microsoft Entra 앱 ID 인증을 사용합니다.

사전 조건

  • 애플리케이션을 등록하고, 관리자 동의를 부여하고, 클라이언트 암호를 생성할 수 있는 Microsoft Entra ID 관리자 액세스 권한.

  • 크롤링하려는 OneDrive 콘텐츠에 액세스할 수 있는 Microsoft 365 사용자 계정입니다. 이 사용자로 한 번 로그인하여 새로 고침 토큰을 가져옵니다.

  • Microsoft 365 테넌트 ID.

1단계: Microsoft Entra ID에 애플리케이션 등록

  1. Microsoft Entra 관리 센터에 로그인합니다.

  2. 왼쪽 탐색 창에서 Entra ID를 확장하고 앱 등록을 선택합니다.

  3. 새 등록을 선택합니다.

  4. 이름에와 같이 설명이 포함된 이름을 입력합니다bedrock-onedrive-oauth2.

  5. 지원되는 계정 유형에서이 조직 디렉터리의 계정만 선택합니다(단일 테넌트).

  6. 리디렉션 URI에서 을 플랫폼으로 선택하고를 입력합니다http://localhost:53672/callback. 4단계에서 새로 고침 토큰을 가져올 때이 리디렉션 URI를 사용합니다. 무료 로컬 호스트 포트를 사용할 수 있습니다. 여기에서 포트를 변경하는 경우 4단계에서 동일한 포트를 사용합니다.

  7. 등록을 선택합니다.

  8. 애플리케이션 개요 페이지에서 애플리케이션(클라이언트) ID디렉터리(테넌트) ID를 기록합니다.

2단계: API 권한 추가 및 관리자 동의 부여

OAuth 2.0 인증은 위임된 로그인을 사용하므로 애플리케이션에는 애플리케이션 권한이 아닌 위임된 권한이 필요합니다.

  1. 앱 등록에서 API 권한을 선택한 다음 권한 추가를 선택합니다.

  2. Microsoft Graph를 선택한 다음 위임된 권한을 선택합니다.

  3. 다음 위임된 권한을 선택한 다음 권한 추가를 선택합니다.

    • Files.Read.All - 사용자가 액세스할 수 있는 파일을 읽습니다.

    • Sites.Read.All - 사용자가 액세스할 수 있는 OneDrive 사이트를 읽습니다.

    • User.Read.All - 사용자를 식별합니다.

    • offline_access - 로그인이 새로 고침 토큰을 반환하는 데 필요합니다.

  4. API 권한 페이지에서 [조직]에 대한 관리자 동의 부여를 선택하고 확인합니다.

3단계: 클라이언트 보안 암호 생성

  1. 앱 등록에서 인증서 및 보안 암호, 클라이언트 보안 암호, 새 클라이언트 보안 암호를 차례로 선택합니다.

  2. 설명을 입력하고 만료를 선택한 다음 추가를 선택합니다.

  3. 보안 암호 값을 즉시 기록합니다. 한 번만 표시됩니다. 보안 암호 ID가 아닌 값을 기록합니다.

4단계: 새로 고침 토큰 가져오기

커넥터에는 일회성 사용자 로그인을 통해 얻는 새로 고침 토큰이 필요합니다. 아래 절차는 다중 인증(MFA)을 사용하는 사용자에게 작동하는 localhost 리디렉션과 함께 OAuth 2.0 권한 부여 코드 흐름을 사용합니다. 비 MFA 서비스 계정의 경우 끝에 더 간단한 대안이 제공됩니다.

권한 부여 코드 흐름(권장)

  1. 로그인 URL을 빌드합니다. 자리 표시자를 1단계의 테넌트 ID 및 애플리케이션(클라이언트) ID로 바꿉니다. 1단계에서 다른 localhost 포트를 사용한 경우 일치하도록를 업데이트redirect_uri합니다.

    https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/authorize?client_id=CLIENT_ID&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A53672%2Fcallback&response_mode=query&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default%20offline_access
  2. 로그인합니다. 브라우저에서 URL을 열고 커넥터를 사용할 액세스 권한을 가진 Microsoft 365 사용자로 로그인합니다. MFA 챌린지를 완료합니다.

    그런 다음 브라우저는 로드되지 않는 localhost URL로 리디렉션됩니다(해당 포트에서 수신 대기 중인 것이 없기 때문에 예상됨). 이제 브라우저 주소 표시줄에 리디렉션 URI와 code 파라미터가 포함됩니다. 예: http://localhost:53672/callback?code=0.AXoA...&session_state=....

  3. 권한 부여 코드를 복사합니다. 주소 표시줄에서 code 파라미터 값(code=와 다음 사이의 모든 값)을 복사합니다&. 코드는 몇 분 동안 유효합니다. 4단계를 즉시 완료합니다.

  4. 코드를 새로 고침 토큰으로 교환합니다. 자리 표시자를 테넌트 ID, 애플리케이션(클라이언트) ID, 3단계의 클라이언트 보안 암호, 방금 복사한 권한 부여 코드로 바꿉니다.

    curl -s -X POST \ "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "client_id=CLIENT_ID" \ -d "client_secret=CLIENT_SECRET" \ -d "code=AUTHORIZATION_CODE" \ -d "redirect_uri=http://localhost:53672/callback" \ -d "scope=https://graph.microsoft.com/.default offline_access"

    응답에는가 포함됩니다refresh_token. 5단계에 대해 기록합니다.

리소스 소유자 암호 자격 증명(MFA가 아닌 서비스 계정의 대안)

계정에 MFA가 필요하지 않고 대화형 로그인을 적용하는 조건부 액세스 정책이 적용되지 않는 경우 브라우저 흐름을 건너뛰고 사용자의 자격 증명을 새로 고침 토큰으로 직접 교환할 수 있습니다. 자리 표시자를 사용자의 UPN 및 암호를 포함한 값으로 바꿉니다.

curl -s -X POST \ "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=password" \ -d "client_id=CLIENT_ID" \ -d "client_secret=CLIENT_SECRET" \ -d "username=USER_UPN" \ -d "password=USER_PASSWORD" \ -d "scope=https://graph.microsoft.com/.default offline_access"

응답에는가 포함됩니다refresh_token. 5단계에 대해 기록합니다. 이 흐름은 MFA가 적용된 계정에서는 작동하지 않습니다. 대신 위의 권한 부여 코드 흐름을 사용합니다.

5단계: Secrets Manager 보안 암호 생성

다음 키-값 페어를 사용하여 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장합니다.

  • clientId - 1단계의 애플리케이션(클라이언트) ID입니다.

  • clientSecret - 3단계의 클라이언트 보안 암호 값입니다.

  • refreshToken - 4단계의 새로 고침 토큰입니다.

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "refreshToken": "your-refresh-token" }

AWS Command Line Interface다음을 사용하여 보안 암호를 생성합니다.

aws secretsmanager create-secret \ --name bedrock-onedrive-oauth2-creds \ --secret-string file://secret.json

응답의 보안 암호 ARN을 기록합니다. 이를 데이터 소스 로 사용합니다secretArn.

참고

OAUTH2 커넥터는 보안 암호에서 새로 고침 토큰을 한 번 읽고 모든 동기화에 재사용합니다. Microsoft가 반환하는 교체된 값은 저장하지 않습니다. 기존 토큰이 만료되기 전에 새 새로 고침 토큰을 민트하고(4단계) 보안 암호의 refreshToken 필드를 업데이트하도록 계획합니다. 보안 암호를 제시간에 업데이트하지 않으면 동기화가 실패하고 토큰 새로 고침 오류가 발생할 때까지 동기화가 실패합니다.

다음 단계

보안 암호를 저장한 후가 로 authType 설정된 데이터 소스를 생성합니다OAUTH2. 이 메서드에 대한 인증서를 제공하지 않습니다. OneDrive 데이터 소스 연결을(를) 참조하세요.