다음을 통해 공유


코드 샘플: ASP.NET 단순 MVC 2

업데이트: 2015년 6월 19일

Azure에 적용합니다.

이 샘플에서는 Microsoft Azure Active Directory Access Control(Access Control Service 또는 ACS라고도 함)를 ASP.NET MVC 애플리케이션과 통합하는 방법을 보여 줍니다. 이 샘플의 코드는 ACS(Microsoft Azure Active Directory Access Control) 코드 샘플 패키지의 ASPNETSimpleMVC(C#\Websites\ASPNETSimpleMVC) 하위 디렉터리에 있습니다.

사전 요구 사항

이 샘플을 실행하려면 다음이 필요합니다.

  1. Azure 홈페이지의 계정 및 Access Control 네임스페이스. 이 샘플에서는 Microsoft Azure 관리 포털(https://manage.WindowsAzure.com)로 이동하여 로그인한 다음 Active Directory를 클릭한다고 가정합니다. (문제 해결 팁: "Active Directory" 항목이 없거나 사용할 수 없음)은 Access Control 네임스페이스 이름이 다르더라도 acssamples입니다.

  2. Visual Studio 2010(모든 버전)

  3. Windows Identity Foundation SDK

자세한 내용은 ACS 필수 구성 요소 (https://go.microsoft.com/fwlink/?LinkId=221065)를 참조하세요.

샘플 구성

이 샘플에 필요한 ACS 구성은 ACS 관리 포털 또는 ACS 관리 서비스를 사용하여 수행할 수 있습니다. 이 항목에서는 두 옵션을 모두 설명합니다.

  1. 옵션 1: ACS 관리 포털을 사용하여 샘플 구성

  2. 옵션 2: ACS 관리 서비스를 사용하여 샘플 구성

옵션 1: ACS 관리 포털을 사용하여 샘플 구성

ACS 관리 포털을 사용하여 샘플을 구성하려면

  1. Microsoft Azure 관리 포털(https://manage.WindowsAzure.com)로 이동하여 로그인한 다음 Active Directory를 클릭합니다. (문제 해결 팁: "Active Directory" 항목이 없거나 사용할 수 없음)

  2. Access Control 네임스페이스를 만들려면 새로 만들기, App Services, Access Control, 빨리 만들기를 차례로 클릭합니다. 또는 새로 만들기를 클릭하기 전에 Access Control 네임스페이스를 클릭합니다.

  3. Access Control 네임스페이스를 관리하려면 네임스페이스를 선택한 다음 관리를 클릭합니다. 또는 Access Control 네임스페이스를 클릭하고 네임스페이스를 선택한 다음 관리를 클릭합니다.

    이 작업을 수행하면 액세스 제어 서비스 관리 포털이 열립니다.

  4. 웹 사이트 사용자가 로그인할 때 사용하도록 할 ID 공급자와의 관계를 설정하려면 ID 공급자 링크를 클릭하고 Yahoo!Google을 추가합니다. 기본 페이지로 돌아가려면 을 클릭합니다.

  5. ACS에 애플리케이션을 등록하려면 Access Control 서비스 관리 포털의 홈페이지에서 신뢰 당사자 애플리케이션을 클릭하고 추가를 클릭한 다음 양식에 다음 정보를 입력합니다.

    • 이름 필드에 ASPNET 단순 MVC 샘플을 입력합니다.

    • In the Realm field, enter https://localhost:63000/

    • In the Return URL field, enter https://localhost:63000/

    • In the Error URL field, enter https://localhost:63000/Error

    • 토큰 형식 필드에서 SAML 2.0을 선택합니다.

    • 토큰 서명 필드에서 서비스 네임스페이스 인증서(표준) 사용을 선택합니다.

  6. 저장을 클릭한 후 홈을 클릭하여 홈 페이지로 돌아옵니다.

  7. 신뢰 당사자가 등록되면 이제 ACS가 애플리케이션에 발급할 클레임을 결정하는 규칙을 만들어야 합니다. 이 샘플에서는 ID 공급자가 발급하는 모든 클레임을 단순히 통과시킵니다. 이 규칙을 만들려면 규칙 그룹을 클릭하고 ASPNET 단순 MVC 샘플의 기본 규칙 그룹을 클릭합니다. 페이지 맨 아래에서 생성 링크를 클릭합니다. 3개의 ID 공급자 Yahoo!, Google 및 Windows Live ID(Microsoft 계정)가 선택되어 있는지 확인하고 생성을 클릭합니다.

  8. 저장을 클릭하고 기본 페이지로 이동합니다.

  9. ACS가 구성된 상태에서 Visual Studio 엽니다.

옵션 2: ACS 관리 서비스를 사용하여 샘플 구성

Visual Studio 샘플 솔루션에는 ACS 관리 서비스와 Common 클래스 라이브러리에 정의된 공통 도우미를 사용하는 ConfigureSample이라는 콘솔 애플리케이션이 있습니다. 이 애플리케이션은 이 샘플에서 사용할 Access Control 네임스페이스를 구성하는 데 사용할 수 있습니다.

ACS 관리 서비스를 사용하여 샘플을 구성하려면

  1. 샘플을 구성하려면 SamplesConfiguration.cs(acs\Management\ManagementService\Common)를 엽니다. Common 클래스 라이브러리의 SamplesConfiguration 클래스에 있는 자리 표시자를 Access Control 네임스페이스에 대한 정보로 바꿉다. ACS 관리 포털에서 정보를 찾을 수 있습니다.

    ACS 관리 포털로 이동하려면 Microsoft Azure 관리 포털(https://manage.WindowsAzure.com)로 이동하여 로그인한 다음 Active Directory를 클릭합니다. (문제 해결 팁: "Active Directory" 항목이 없거나 사용할 수 없음) Access Control 네임스페이스를 관리하려면 네임스페이스를 선택한 다음 관리를 클릭합니다. 또는 Access Control 네임스페이스를 클릭하고 네임스페이스를 선택한 다음 관리를 클릭합니다.

    • ServiceNamespace - Access Control 네임스페이스의 이름을 입력합니다.

    • ManagementServiceIdentityName - ACS 관리 서비스 계정의 이름을 입력합니다. 기본값은 ManagementClient입니다.

      관리 서비스 계정 이름을 찾으려면 ACS 관리 포털에서 관리 서비스를 클릭합니다. 계정은 관리 서비스 계정 아래에 이름별로 나열됩니다.

    • ManagementServiceIdentityKey - 관리 서비스 계정의 암호를 입력합니다.

      관리 서비스 계정 암호를 찾으려면 ACS 관리 포털에서 관리 서비스를 클릭합니다. 관리 서비스 계정의 이름을 클릭한 후 자격 증명 아래에서 암호를 클릭합니다. 암호가 암호 필드에 표시됩니다. 암호를 복사하려면 암호 표시를 클릭합니다.

  2. 이 샘플을 실행하도록 ACS를 구성하는 Visual Studio ConfigureSample 애플리케이션을 실행합니다.

샘플 실행

이 샘플을 실행하려면

  1. Visual Studio Websites\ASPNETSimpleMVC\ASPNETSimpleMVC.sln에 있는 샘플을 엽니다.

  2. F5 키를 눌러 응용 프로그램을 시작합니다.

  3. 브라우저를 닫아 애플리케이션을 중지하고 ACS 구성을 진행합니다.

  4. 프로젝트를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 STS 참조 추가를 선택합니다.

  5. 대화 상자에서 웹 응용 프로그램 루트를 응용 프로그램 URI 필드에 입력하고 다음을 클릭합니다. 이 샘플의 경우 이 값은 https://localhost:63000/

    참고

    후행 슬래시는 신뢰 당사자를 위해 ACS에 입력한 값과 일치하기 때문에 중요합니다. 사이트에서 SSL을 사용하고 있지 않다는 경고가 마법사에 표시됩니다. 단추를 클릭하여 경고를 확인합니다. 프로덕션 웹 사이트의 경우 이러한 시나리오에서는 거의 대부분 SSL을 사용해야 합니다.

  6. 다음 창에서 기존 STS 라디오 사용 단추를 선택하고 Access Control 네임스페이스에서 게시한 WS-Federation 메타데이터의 URI를 입력합니다. URI를 찾으려면 ACS 포털에서 애플리케이션 통합을 클릭합니다. Access Control 네임스페이스의 이름이 acssamples이면 URI는 입니다https://acssamples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. 이 값을 입력한 후 다음을 클릭합니다.

  7. 웹 사이트에는 암호화된 토큰이 필요하지 않으므로 다음을 클릭한 후 마침을 클릭합니다.

  8. 이제 ACS 및 애플리케이션이 구성됩니다. Visual Studio F5 키를 눌러 애플리케이션을 실행합니다. 브라우저는 ACS 호스팅 홈 영역 검색 페이지로 전달됩니다.

  9. Google을 클릭합니다. Google 로그인 페이지로 리디렉션됩니다.

  10. Google 계정의 자격 증명을 입력하고 사용자 동의 양식을 거부합니다.

  11. 브라우저로 https://localhost:63000/Error 돌아가서 사이트에 대한 로그인이 취소되었음을 나타내는 사용자 지정 오류 문자열을 표시해야 합니다.

  12. 링크를 클릭하여 ID 공급자를 다시 클릭해 봅니다.

  13. 브라우저에 원하는 ID 공급자 페이지가 표시되면 이전과 같이 테스트 계정의 자격 증명을 입력하되 이번에는 사용자 동의 양식을 수락합니다.

  14. 브라우저가 .로 https://localhost:63000/돌아가야 합니다. 테스트 ID 이름이 페이지 오른쪽 위에 표시되는지 확인합니다. 이 데이터는 ID 공급자에 의해 발급되었으며 ACS를 통해 애플리케이션에 반환되었습니다.