다음을 통해 공유


익명 인증 <anonymousAuthentication>

개요

요소는 <anonymousAuthentication> IIS(인터넷 정보 서비스) 7이 익명 사용자의 요청을 처리하는 방법을 제어합니다. 익명 인증을 <anonymousAuthentication> 사용하지 않도록 요소를 수정하거나 사용자 지정 사용자 계정을 사용하여 익명 요청을 처리하도록 IIS(인터넷 정보 서비스)를 구성할 수 있습니다.

익명 인증을 사용하면 사용자에게 사용자 이름 또는 암호를 묻는 메시지를 표시하지 않고 웹 또는 FTP 사이트의 공용 영역에 액세스할 수 있습니다. 기본적으로 IIS 7.0에서 도입되고 IIS 6.0 IUSR_computername 계정을 대체하는 IUSR 계정은 익명 액세스를 허용하는 데 사용됩니다. 애플리케이션은 콘텐츠를 제공하거나 HTTP와 같은 프로토콜을 통해 서비스를 제공하는 파일 그룹입니다. IIS에서 애플리케이션을 만들면 애플리케이션의 경로가 사이트 URL의 일부가 됩니다.

기본적으로 IIS 7은 익명 인증을 사용합니다. Basic 또는 Windows 인증 같은 다른 인증 방법을 사용하도록 설정하려는 웹 사이트, 웹 애플리케이션 또는 웹 서비스에 대해 익명 인증을 사용하지 않도록 설정해야 합니다.

호환성

버전 참고
IIS 10.0 <anonymousAuthentication> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <anonymousAuthentication> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <anonymousAuthentication> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <anonymousAuthentication> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 요소는 <anonymousAuthentication> IIS 7.0에서 도입되었습니다.
IIS 6.0 요소는 <anonymousAuthentication> IIS 6.0 AuthFlags, AnonymousUserNameAnonymousUserPassword 메타베이스 속성을 대체합니다.

설치 프로그램

요소는 <anonymousAuthentication> IIS 7의 기본 설치에 포함됩니다.

방법

익명 인증을 사용하지 않도록 설정하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 서버 이름을 확장하고 사이트를 확장한 다음 구성하려는 계층 구조 창의 수준으로 이동한 다음 웹 사이트 또는 웹 애플리케이션을 클릭합니다.

  3. 창에서 보안 섹션으로 스크롤한 다음 인증을 두 번 클릭합니다.

  4. 인증 창에서 익명 인증을 선택한 다음 작업 창에서 사용 안 함을 클릭합니다.
    익명 인증이 선택된 인증 창의 스크린샷

IUSR 계정에서 익명 인증 자격 증명을 변경하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 서버 이름을 확장하고 사이트를 확장한 다음 구성하려는 계층 구조 창의 수준으로 이동한 다음 웹 사이트 또는 웹 애플리케이션을 클릭합니다.

  3. 창에서 보안 섹션으로 스크롤한 다음 인증을 두 번 클릭합니다.

  4. 인증 창에서 익명 인증을 선택한 다음 작업 창에서편집...을 클릭합니다.

  5. 익명 인증 자격 증명 편집 대화 상자에서 다음 중 하나를 수행합니다.

    • 애플리케이션 풀 ID를 선택하여 애플리케이션 풀에 대한 ID 집합을 사용하고 확인을 클릭합니다.
      익명 사용자 ID를 애플리케이션 풀 ID로 설정하는 스크린샷

    • 설정...을 클릭한 다음 자격 증명 설정 대화 상자에서 사용자 이름 상자에 계정의 사용자 이름을 입력하고 암호암호 확인 상자에 계정의 암호를 입력하고 확인을 클릭한 다음 확인을 다시 클릭합니다.
      빈 자격 증명 설정 대화 상자의 스크린샷

      참고

      이 절차를 사용하는 경우 IIS 서버 컴퓨터에서 새 계정에 최소 권한만 부여합니다.

구성

요소는 <anonymousAuthentication> Web.config 파일의 사이트 및 애플리케이션 수준에서 구성할 수 있습니다.

특성

attribute Description
enabled 선택적 부울 특성입니다.

익명 인증을 사용할 수 있는지 여부를 지정합니다.

기본값은 true입니다.
logonMethod 선택적 열거형 특성입니다.

logonMethod 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다. 기본값은 ClearText입니다.
Description
Batch 이 로그온 유형은 해당 사용자의 직접 개입 없이 사용자를 대신하여 프로세스가 실행될 수 있는 일괄 처리 서버를 위한 것입니다.

숫자 값은 입니다 1.
ClearText 이 로그온 형식은 인증 패키지의 이름과 암호를 유지하므로 서버가 클라이언트를 가장하는 동안 다른 네트워크 서버에 연결할 수 있습니다.

숫자 값은 입니다 3.
Interactive 이 로그온 유형은 컴퓨터를 대화형으로 사용하는 사용자를 위한 것입니다.

숫자 값은 입니다 0.
Network 이 로그온 유형은 고성능 서버가 일반 텍스트 암호를 인증하기 위한 것입니다. 이 로그온 유형에 대한 자격 증명은 캐시되지 않습니다.

숫자 값은 입니다 2.
password 선택적 String 특성입니다.

익명 인증의 암호를 지정합니다.

참고: 암호화되지 않은 암호 문자열을 구성 파일에 저장하지 않도록 하려면 항상 AppCmd.exe 또는 IIS Manager를 사용하여 암호를 입력합니다. 이러한 관리 도구를 사용하는 경우 암호 문자열은 XML 구성 파일에 기록되기 전에 자동으로 암호화됩니다. 이렇게 하면 암호화되지 않은 암호를 저장하는 것보다 더 나은 암호 보안이 제공됩니다.
username 선택적 String 특성입니다.

익명 인증의 사용자 이름을 지정합니다. 이 값(즉, username="")을 비워 두면 익명 인증은 애플리케이션 풀 ID를 사용하여 익명 사용자를 인증합니다.

기본값은 IUSR입니다.

자식 요소

없음

구성 샘플

다음 구성 예제에서는 웹 서버에서 로컬 계정을 사용하도록 IIS 7 웹 사이트 또는 웹 애플리케이션에 대한 익명 인증을 구성합니다. (IIS 7은 자동으로 AES 암호화를 사용하여 암호를 암호화합니다.)

<security> <authentication>
   <anonymousAuthentication
      userName="User1"
      password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]" />
   </authentication>
</security>

샘플 코드

다음 예제에서는 익명 인증을 사용하도록 설정하고 익명 인증에 사용되는 기본 사용자 이름 및 암호를 IUSR 이라는 계정 및 P@ssw0rd 암호로 변경합니다.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /userName:"IUSR" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /password:"P@ssw0rd" /commit:apphost

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 commit 매개 변수 apphost 를 로 설정해야 합니다. 그러면 구성 설정이 ApplicationHost.config 파일의 적절한 위치 섹션에 커밋됩니다.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample { 
   private static void Main() { 
      using (ServerManager serverManager = new ServerManager()) {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = true;
         anonymousAuthenticationSection["userName"] = @"IUSR";
         anonymousAuthenticationSection["password"] = @"P@ssw0rd";
         serverManager.CommitChanges();
      } 
   } 
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = True
      anonymousAuthenticationSection("userName") = "IUSR"
      anonymousAuthenticationSection("password") = "P@ssw0rd"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = true;
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR";
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd";

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = True
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR"
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd"

adminManager.CommitChanges()