SharePoint Server 2016에서 익명으로 문서를 열 때 자격 증명을 입력 하 라는 메시지가 표시 되는 경우

적용 대상:

  • Microsoft SharePoint Server 2016
  • Windows Installer (MSI) 기반 버전의 Microsoft Office 2016 응용 프로그램 (Office 365 응용 프로그램에는 적용 되지 않음)
  • SharePoint 사이트 또는 라이브러리에 대해 사용 하도록 설정 된 익명 액세스
  • 익명으로 Office 문서 액세스
  • Windows에 로그인 하는 데 사용한 것과 다른 계정을 사용 하 여 Office 문서에 액세스

현상도

Windows Installer (MSI) 기반 버전의 Office 응용 프로그램을 사용 하 여 SharePoint Server 2016에서 문서를 열면 "적용 대상" 섹션의 조건이 충족 되는 경우 자격 증명을 입력 하 라는 메시지가 표시 됩니다.

이 문제가 발생 하는 이유

Office 응용 프로그램은 권한 부여: 전달자 헤더를 사용 하 여 SharePoint Online 및 비즈니스용 OneDrive와의 호환성을 위해 전송 합니다. Sharepoint Server 2016는 SharePoint Server 2016 온-프레미스에서 권한 부여: 전달자 헤더를 포함 하는 요청을 처리 하는 방식 및 X-IDCRL_ACCEPTED: t 헤더가 없기 때문에 HTTP 401 인증 프롬프트를 보냅니다.

이 문제를 해결 하는 방법

이 문제를 해결 하려면 영향을 받는 웹 응용 프로그램에 대 한 옵션 요청을 사용 하지 않도록 설정한 다음 URL 재작성 규칙을 사용 하 여 HEAD 요청에서 권한 부여: 전달자 헤더를 효과적으로 제거 합니다. SharePoint Server 2016에 대해 지원 되는 URL 다시 쓰기 규칙만 요청 헤더 값을 제거 하는 데 사용 됩니다. 자세한 내용은 SharePoint 2016, 2013, 2010 및 2007의 다시 쓰기 및 리디렉션 지원 가능성을 참조 하세요.

이 해결 방법을 구현 하려면 다음 단계를 수행 합니다.

1 단계: web.config를 통해 웹 응용 프로그램에 대 한 요청을 차단 합니다.

옵션 요청을 차단 하려면 웹 응용 프로그램에 대 한 web.config 파일을 다음과 같이 변경 합니다.

<system.webServer>
…
    <security>
      <requestFiltering allowDoubleEscaping="true">
            <verbs applyToWebDAV="false">
                       <remove verb="OPTIONS" />
               <add verb="OPTIONS" allowed="false" />
            </verbs>

참고

웹 분산 제작 및 버전 관리 (WebDav) 요청에 대해서는 옵션 요청이 차단 되지 않습니다.

2 단계: IIS URL 재작성 확장 다운로드 및 설치

SharePoint WFE (웹 프런트 엔드) 서버에 IIS URL 재작성 확장 을 다운로드 하 여 설치 합니다.

3 단계: IIS에 HTTP_Authorization 서버 변수 추가

  1. IIS (인터넷 정보 서비스) 관리자를 시작 하 고 왼쪽 창에서 SharePoint server를 선택한 다음 가운데 창에서 URL 다시 쓰기 를 선택 합니다.

  2. 오른쪽 창에서 서버 변수 보기를 선택 합니다.

  3. 새 서버 변수를 추가 하려면 추가를 선택 합니다.

  4. 서버 변수 이름 (예: HTTP_Authorization)을 입력 하 고 확인을 선택 합니다.

  5. 오른쪽 창에서 규칙으로 돌아가기를선택 합니다.

  6. 다음과 같이 HTTP_Authorization 서버 변수가 applicationhost.config 파일에 추가 되었는지 확인 합니다.

    <system.webServer>
    ….
         <rewrite>
             <allowedServerVariables>
                 <add name="HTTP_Authorization" />
             </allowedServerVariables>
         </rewrite>
    

4 단계: 다른 요청 방법에 대 한 URL 다시 쓰기 규칙 처리를 중지 하는 규칙 추가

요청 메서드가 HEAD가 아닌 경우 (HEAD only 요청만 변경) 추가 URL 재작성 규칙의 처리를 중지 하는 규칙을 추가할 수 있습니다. 이렇게 하려면 다음 단계를 따르세요.

  1. 웹 응용 프로그램을 선택 하 고 URL 다시 쓰기를 선택 합니다.

  2. 오른쪽 창에서 규칙 추가 를 선택 하 여 새 규칙을 추가 합니다.

  3. 규칙 이름 (예: Authrule-인원만) 을 입력 합니다.

  4. URL 일치 섹션에서 다음 값을 지정 합니다.

    1. 요청한 URL: 패턴과 일치
    2. 사용: 정규식
    3. Pattern:^(?!.*\.aspx).*$
    4. 대/소문자 무시 옵션: 선택 됨
  5. 조건 섹션에서 추가를 선택 하 고 다음 값을 지정 합니다.

    1. 조건 입력: {REQUEST_METHOD}
    2. 입력 문자열: 패턴과 일치 하지 않는 항목 확인
    3. 패턴: HEAD
    4. 대/소문자 무시 옵션: 선택 됨
  6. 다음과 같이 Action 섹션 을 편집 합니다.

    1. 동작 유형: 없음
    2. 다음 규칙의 처리 중지 옵션: 선택 됨
    3. 오른쪽 창에서규칙에 다시 적용 -> 을 선택 합니다.

참고

규칙이 사용 하도록 설정 되어 있는지 확인 합니다. 이렇게 하려면 오른쪽 창에서 규칙 사용 안 함 옵션을 찾습니다. 이 옵션은 규칙을 선택한 후에 표시 됩니다.

5 단계: URL 재작성 규칙을 추가 하 여 권한 부여: 전달자 헤더를 제거 합니다.

요청에 대 한 전달자 헤더를 효과적으로 제거 하려면 다음과 같이 URL 재작성 규칙을 사용 합니다.

  1. 웹 응용 프로그램을 선택 하 고 URL 다시 쓰기를 선택 합니다.

  2. 오른쪽 창에서 규칙 추가 를 선택 하 여 새 규칙을 추가 합니다.

  3. 규칙 이름 (예: Authrule)을 입력 합니다.

  4. URL 일치 섹션에서 다음 값을 지정 합니다.

    1. 요청한 URL: 패턴과 일치
    2. 사용: 정규식
    3. Pattern:^(?!.*\.aspx).*$
    4. 대/소문자 무시 옵션: 선택 됨
  5. 서버 변수 섹션에서 추가를 선택 하 고 다음 값을 지정한 후에 확인을 선택 합니다.

    1. 서버 변수 이름: HTTP_Authorization
    2. : 없음
    3. 기존 값 바꾸기 옵션: 선택 됨
  6. 작업 섹션에서 다음 값을 지정 합니다.

    1. 동작 유형: 없음
    2. 다음 규칙 처리 중지: 선택 됨
  7. 오른쪽 창에서규칙에 다시 적용 -> 을 선택 합니다.

참고

규칙이 사용 하도록 설정 되어 있는지 확인 합니다. 이렇게 하려면 오른쪽 창에서 규칙 사용 안 함 옵션을 찾습니다. 이 옵션은 규칙을 선택한 후에 표시 됩니다.

SharePoint Server 2016 팜에서이 문제를 해결 합니다.

팜에 있는 모든 SharePoint WFE (웹 프런트 엔드) 서버에서 이전 섹션의 모든 단계를 반복 하 여 모든 서버가 동일 하 게 구성 되었는지 확인 합니다. 이미 재작성 규칙을 사용 하 고 있는 경우 HEAD 규칙은 후속 규칙을 사용 하지 않도록 설정 하므로 이전 섹션의 두 규칙을 목록의 마지막 두 개에 포함 해야 합니다.

IIS URL 재작성 확장의 제한 사항으로 인해 현재는 제대로 작동 하도록 하는 방식으로 규칙을 결합할 수 없습니다. 이 상황은 내선 번호의 향후 개정판에서 변경 될 수도 있고 나중에 대체 구성을 찾을 수도 있습니다. 이제 이러한 방법은 URL 재작성을 사용 하 여이 문제를 해결 하는 가장 좋은 방법입니다.

추가 정보

여전히 도움이 필요하세요? SharePoint 커뮤니티로 이동 합니다.