

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

# SharePoint에 대한 OAuth 2.0 인증 설정
<a name="kb-managed-sharepoint-oauth2-setup"></a>

OAuth 2.0 인증(`OAUTH2_APP`)은 OAuth 2.0 리소스 소유자 암호 자격 증명(ROPC) 흐름을 사용하여 Microsoft 365 사용자 계정의 사용자 이름 및 암호와 함께 애플리케이션 클라이언트 ID 및 보안 암호로 인증합니다. 커넥터는 해당 사용자로 로그인하여 콘텐츠를 읽습니다.

**중요**  
[SharePoint에 대한 Microsoft Entra ID 앱 전용 인증 설정](kb-managed-sharepoint-entra-setup.md) 대신를 사용하는 것이 좋습니다. OAuth 2.0 인증에는 두 가지 제한 사항이 있습니다.  
사용자 이름과 암호로 로그인하기 때문에 다중 인증(MFA) 챌린지를 완료하거나 필요한 조건부 액세스 정책을 충족할 수 없습니다. 계정이 MFA 또는 조건부 액세스를 적용하면 인증이 실패하고 데이터 소스가 동기화될 수 없습니다. 많은 조직에서는 여기에서 사용할 계정 유형에 대해 MFA가 필요합니다.
문서 수준 액세스 제어(ACLs 지원하지 않습니다. 사용자 권한별로 쿼리 결과를 필터링하려면 Microsoft Entra ID 앱 전용 인증을 사용합니다.

## 사전 조건
<a name="kb-managed-sharepoint-oauth2-prereqs"></a>
+ 커넥터가 로그인에 사용하는 사용자 이름과 암호를 가진 Microsoft 365 사용자 계정입니다. 계정은 크롤링하려는 SharePoint 사이트에 액세스할 수 있어야 하며 로그인에 MFA 또는 조건부 액세스가 필요하지 않아야 합니다.
+ 애플리케이션을 등록하고 클라이언트 암호를 생성하기 위한 Microsoft Entra ID 관리자 액세스.
+ Microsoft 365 테넌트 ID.

## 1단계: Microsoft Entra ID에 애플리케이션 등록
<a name="kb-managed-sharepoint-oauth2-step1"></a>

1. [Microsoft Entra 관리 센터](https://entra.microsoft.com/)에 로그인합니다.

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

1. **새 등록**을 선택합니다.

1. **이름**에와 같이 설명이 포함된 이름을 입력합니다`bedrock-sharepoint-oauth2`.

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

1. **리디렉션 URI**를 비워 두고 **등록**을 선택합니다.

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

## 2단계: API 권한 추가 및 관리자 동의 부여
<a name="kb-managed-sharepoint-oauth2-step2"></a>

OAuth 2.0 인증에는 사이트를 열거할 수 있는 Microsoft Graph 애플리케이션 권한과 콘텐츠를 읽을 수 있는 SharePoint 위임 권한이라는 두 가지 권한이 필요합니다. 다음 두 가지를 모두 할당합니다.


**OAuth 2.0 인증 권한**  

| API | 권한 | 유형 | 용도 | 
| --- | --- | --- | --- | 
| Microsoft Graph | Sites.Read.All | 애플리케이션 | SharePoint 사이트를 열거합니다. | 
| SharePoint | AllSites.Read | 위임됨 | SharePoint REST API를 통해 사이트 콘텐츠를 읽습니다. 관리자의 동의가 필요합니다(다음 참고 사항 참조). | 

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

1. **Microsoft Graph**를 선택한 다음 **애플리케이션 권한을** 선택합니다. 를 검색하여 선택한 `Sites.Read.All`다음 **권한 추가**를 선택합니다.

1. **권한 추가를** 다시 선택합니다. **SharePoint**(**Microsoft APIs** 선택한 다음 **위임된 권한을** 선택합니다. `AllSites.Read` (모든 사이트 컬렉션의 항목 읽기)를 선택한 다음 **권한 추가**를 선택합니다.

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

**중요**  
Entra 포털에 관리자 동의 **필요: SharePoint 위임 권한에 아니요가 표시되어 있더라도 관리자 동의를** 부여해야 합니다. SharePoint `AllSites.Read` 이 열은 사용자가 대화형 로그인 중에 일반적으로 동의할 수 있음을 나타내지만 리소스 소유자 암호 자격 증명 흐름에는 대화형 표면이 없으므로 로그인 시 권한을 동의할 수 없으며 **[조직]에 대한 관리자 동의 부여**를 통해 조직 전체에 사전 권한이 부여되어야 합니다. 그렇지 않으면 SharePoint 토큰 요청이에서 실패하고`AADSTS65001`(사용자 또는 관리자가 애플리케이션 사용에 동의하지 않음) 데이터 소스가 동기화될 수 없습니다.

**참고**  
테넌트에 보안 기본값이 활성화된 경우 리소스 소유자 암호 자격 증명 흐름이 차단될 수 있습니다. 여기에 사용된 계정이 MFA 없이 로그인할 수 있도록 관리자가 테넌트의 보안 기본값 또는 조건부 액세스 정책을 조정해야 할 수 있습니다. 자세한 내용은 [보안 기본값에 대한 Microsoft 설명서를 참조하세요](https://learn.microsoft.com/en-us/entra/fundamentals/security-defaults).

## 3단계: 클라이언트 보안 암호 생성
<a name="kb-managed-sharepoint-oauth2-step3"></a>

1. 앱 등록에서 **인증서 및 보안** 암호를 선택한 다음 **클라이언트 보안 암호를** 선택하고 **새 클라이언트 보안 암호를** 선택합니다.

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

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

## 4단계: Secrets Manager 보안 암호 생성
<a name="kb-managed-sharepoint-oauth2-step4"></a>

다음 키-값 페어를 사용하여 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장합니다.
+ `clientId` - 1단계의 애플리케이션(클라이언트) ID입니다.
+ `clientSecret` - 3단계의 클라이언트 보안 암호 값입니다.
+ `userName` - Microsoft 365 사용자 계정의 사용자 이름(UPN)입니다.
+ `password` - 해당 계정의 암호입니다.

```
{
    "clientId": "{{your-client-id}}",
    "clientSecret": "{{your-client-secret}}",
    "userName": "{{user@yourdomain.onmicrosoft.com}}",
    "password": "{{your-account-password}}"
}
```

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

```
aws secretsmanager create-secret \
  --name {{bedrock-sharepoint-oauth2-creds}} \
  --secret-string file://secret.json
```

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

**참고**  
계정 암호는 보안 암호에 저장되며 각 동기화에 사용됩니다. 암호가 변경되면 보안 암호를 업데이트합니다. 커넥터는이 계정으로 로그인하므로 보안 암호를 매우 민감한 것으로 취급하고 이에 대한 액세스를 제한합니다.

## 문제 해결
<a name="kb-managed-sharepoint-oauth2-troubleshooting"></a>

데이터 소스가 동기화되지 않는 경우 오류를 다음 서명과 일치시킵니다.


**OAuth 2.0 동기화 오류**  

| 오류 | 원인 및 해결 방법 | 
| --- | --- | 
| AADSTS65001 (사용자 또는 관리자가 애플리케이션 사용에 동의하지 않음) | SharePoint AllSites.Read 위임된 권한이 관리자 동의가 되지 않았습니다. 앱 등록에서 API 권한을 선택한 다음 [조직]에 대한 관리자 동의 부여를 선택합니다. 2단계를 참조하세요. | 
| Rest API token request failed with status: 400 | 리소스 소유자 암호 자격 증명은 일반적으로 계정에 흐름이 충족할 수 없는 MFA 또는 조건부 액세스 정책이 필요하기 때문에 인증 시 로그인에 실패했습니다. MFA가 필요하지 않은 계정을 사용하고 보안 암호의 userName 및 password가 올바른지 확인합니다. | 
| SharePoint app is missing required scopes | Microsoft Graph Sites.Read.All 애플리케이션 권한이 부여(또는 동의)되지 않았습니다. 커넥터는 크롤링하기 전에 그래프 애플리케이션 토큰에서이 범위를 확인합니다. Microsoft Graph Sites.Read.All 애플리케이션 권한을 추가하고 관리자 동의를 부여합니다. 2단계를 참조하세요. | 

## 다음 단계
<a name="kb-managed-sharepoint-oauth2-next"></a>

보안 암호를 저장한 후가 로 `authType` 설정된 데이터 소스를 생성합니다`OAUTH2_APP`. 이 메서드에 대한 인증서를 제공하지 않습니다. [SharePoint 데이터 소스 연결](kb-managed-ds-sharepoint-connect.md)을(를) 참조하세요.