이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장

코드 샘플: OAuth 2.0 인증서 인증

게시: 2011년 5월

업데이트 날짜: 2015년 6월

적용 대상: Azure

이 샘플에서는 OAuth 2.0 프로토콜을 사용하여 X.509 인증서에 의해 서명된 SAML 토큰을 제시함으로써 Microsoft Azure Active Directory 액세스 제어(액세스 제어 서비스 또는 ACS라고도 함)에 인증하는 방법을 보여 줍니다. 이 인증서는 ACS에서 구성된 ServiceIdentity에 해당하고, ACS는 ServiceIdentity의 nameidentifier 클레임으로 SWT를 발급합니다. 이 SWT는 OAuth 2.0으로 보호되는 리소스에 인증하는 데 사용됩니다. 이 샘플은 OAuth 2.0 프로토콜의 초안 13을 준수합니다. 이 샘플 코드는 Microsoft Azure Active Directory ACS(액세스 제어 서비스) 코드 샘플 패키지의 OAuth2(C#\OAuth2) 하위 디렉터리에 있습니다.

이 샘플을 실행하는 데 필요한 항목은 다음과 같습니다.

  1. Azure 포털의 계정 및 액세스 제어 네임스페이스

  2. Visual Studio 2010(버전 상관 없음)

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

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

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

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

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

  2. 액세스 제어 네임스페이스를 만들려면 새로 만들기, 앱 서비스, Access Control, 빠른 생성을 차례로 클릭합니다. 또는 새로 만들기를 클릭하기 전에 액세스 제어 네임스페이스를 클릭합니다.

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

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

  4. ACS에 응용 프로그램을 등록하려면 신뢰 당사자 응용 프로그램을 클릭하고 추가를 클릭한 후 양식에 다음 정보를 입력합니다.

    • 이름 필드에 OAuth2 RP를 입력합니다.

    • 영역 필드에 https://oauth2relyingparty/를 입력합니다.

    • 토큰 형식 필드에서 SWT를 선택합니다.

    • 생성를 클릭하여 새 키를 만듭니다.

    • 만료 날짜 필드에 키의 적절한 만료 날짜를 입력합니다. 이 날짜부터 키는 더 이상 유효하지 않게 됩니다.

  5. 저장을 클릭합니다.

  6. 신뢰 당사자를 등록한 후에는 ACS에서 응용 프로그램에 대해 발급할 클레임을 결정하는 규칙을 만듭니다. 이 샘플에서는 ACS에 의해 생성된 모든 클레임이 통과하도록 허용하는 규칙을 만듭니다.

    이 규칙을 만들려면 규칙 그룹을 클릭한 후 OAuth2 RP에 대한 기본 규칙 그룹을 클릭합니다. 다음 설정을 사용하여 새 규칙을 추가합니다.

    • 클레임 발급자 섹션에서 액세스 제어 서비스를 선택합니다.

    • 입력 클레임 유형 섹션에서 Any를 선택합니다.

    • 입력 클레임 값 섹션에서 Any를 선택합니다.

    • 출력 클레임 유형 섹션에서 Pass through input claim type을 선택합니다.

    • 출력 클레임 값 섹션에서 Pass through input claim value를 선택합니다.

  7. 이 샘플에서는 ACS에 의해 관리되는 자격 증명을 사용합니다.

    클라이언트 응용 프로그램의 새 클라이언트 인증서를 구성하려면 서비스 ID를 클릭하고 추가를 클릭한 후 이름을 입력합니다. 자격 증명 유형 X.509 인증서를 추가하고 이 샘플의 인증서 폴더에서 ACS2ClientCertificate.cer 파일을 찾습니다. 저장을 클릭합니다.

  8. ACS가 구성되었으므로 Visual Studio를 엽니다.

Visual Studio 샘플 솔루션에는 ACS 관리 서비스와 Common 클래스 라이브러리에 정의된 공용 도우미를 사용하는 ConfigureSample이라는 콘솔 응용 프로그램이 포함되어 있습니다. 이 응용 프로그램을 통해 이 샘플에서 사용할 액세스 제어 네임스페이스를 구성할 수 있습니다.

  1. 액세스 제어 네임스페이스 관련 정보로 Common 클래스 라이브러리를 업데이트합니다. SamplesConfiguration.cs를 열고 다음을 입력합니다.

    • ServiceNamespace - 액세스 제어 네임스페이스의 이름입니다.

    • ManagementServiceIdentityName - 관리 서비스 계정의 이름입니다.

    • ManagementServiceIdentityKey - 관리 서비스 계정과 연결된 암호입니다.

    • AcsHostUrl - ACS의 호스트 이름입니다.

  2. Visual Studio에서 ConfigureSample 응용 프로그램을 실행합니다. 그러면 이 샘플을 실행하도록 ACS가 구성됩니다.

  3. ConfigureSample 응용 프로그램이 완료되면 생성된 신뢰 당사자 서명 키가 콘솔에 출력됩니다. 이 키를 클립보드에 복사합니다.

  1. Visual Studio에서 샘플을 엽니다. 이 솔루션은 ConfigureSampleCommon 외에 ProtectedResourceWebAppClient라는 두 개의 프로젝트로 구성됩니다.

  2. Common\SamplesConfiguration.cs에 액세스 제어 네임스페이스 세부 정보를 입력하지 않은 경우 입력합니다. 자세한 내용은 옵션 2: ACS 관리 서비스를 사용하여 샘플 구성의 1단계를 참조하세요. 이 파일은 Client 프로젝트에도 사용됩니다.

  3. ProtectedResourceWebApp 프로젝트에서 web.config 파일을 엽니다.

  4. 해당 AppSettings 요소에 토큰 서명 키를 입력합니다. 관리 서비스를 사용하여 ACS를 구성한 경우 이 값은 클립보드에 복사한 값입니다. 토큰 서명 키를 얻으려면 ACS 포털에서 인증서 및 키를 클릭합니다. 다음은 web.config 파일의 이 섹션을 보여 주는 코드 조각입니다.

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. 샘플을 실행하려면 ProtectedResourceWebApp을 시작합니다. 웹 브라우저가 나타나지만 웹 브라우저가 인증되지 않았으므로 텍스트 상자가 비어 있습니다.

  6. Client를 실행합니다. 콘솔 창에 HTML이 표시됩니다. HTML은 사용자가 인증되었음을 나타내고 ACS의 클레임을 표시합니다.

커뮤니티 추가 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft