다음을 통해 공유


시나리오: 웹 API를 호출하는 웹 앱(서버 앱)

적용 대상: Windows Server 2022, Windows Server 2019, AD FS 2019 이상

AD FS 2019에서 인증된 웹 앱 로그인 사용자를 빌드하고 MSAL 라이브러리를 사용하여 웹 API를 호출하는 토큰을 획득하는 방법을 알아봅니다.

이 문서를 읽기 전에 AD FS 개념권한 부여 코드 부여 흐름에 대해 잘 알고 있어야 합니다.

개요

웹 앱 호출 웹 api 개요

이 흐름에서는 사용자를 로그인하고 웹 API를 호출할 수 있는 인증을 웹 앱(서버 앱)에 추가합니다. 웹 앱에서 Web API를 호출하려면 MSAL의 AcquireTokenByAuthorizationCode 토큰 획득 방법을 사용합니다. 권한 부여 코드 흐름을 사용하여 획득한 토큰을 토큰 캐시에 저장합니다. 그러면 컨트롤러가 필요할 때 캐시에서 자동으로 토큰을 획득합니다. MSAL이 필요할 때 토큰을 새로 고칩니다.

Web API를 호출하는 웹 앱

  • 기밀 클라이언트 애플리케이션입니다.
  • AD FS에 비밀(애플리케이션 공유 비밀, 인증서 또는 AD 계정)을 등록했습니다. 이 비밀은 토큰을 가져오기 위해 AD FS를 호출하는 동안 전달됩니다.

AD FS에 웹 앱을 등록하고 웹 API를 호출하는 토큰을 획득하도록 구성하려면 여기에서 사용할 수 있는 샘플을 사용하고 앱 등록 및 코드 구성 단계를 살펴보겠습니다.

필수 구성 요소

  • GitHub 클라이언트 도구
  • AD FS 2019 이상 구성 및 실행
  • Visual Studio 2013 이상

AD FS에 앱 등록

이 섹션은 웹 앱을 기밀 클라이언트로 등록하고 Web API를 AD FS에서 신뢰 당사자(RP)로 등록하는 방법을 설명합니다.

  1. AD FS 관리에서 애플리케이션 그룹을 마우스 오른쪽 단추로 클릭하고 애플리케이션 그룹 추가를 선택합니다.

  2. 애플리케이션 그룹 마법사에서 이름으로 WebAppToWebApi를 입력하고 클라이언트-서버 애플리케이션에서 서버 애플리케이션에 액세스하는 기본 애플리케이션 템플릿을 선택합니다. 다음을 클릭합니다.

    서버 애플리케이션에서 웹 A P I 템플릿에 액세스하는 것이 강조 표시된 애플리케이션 그룹 추가 마법사의 시작 페이지 스크린샷.

  3. 복사는 클라이언트 식별자 값입니다. 이 값은 나중에 애플리케이션 Web.config 파일에서 ida:ClientId의 값으로 사용됩니다. 리디렉션 URI에 대해 https://localhost:44326.을 입력합니다. 추가를 클릭합니다. 다음을 클릭합니다.

    올바른 클라이언트 식별자 및 리디렉션 U R I를 보여주는 애플리케이션 그룹 추가 마법사의 서버 애플리케이션 페이지 스크린샷.

  4. 애플리케이션 자격 증명 구성 화면에서 공유 비밀 생성에 체크 표시를 하고 비밀을 복사합니다. 이 비밀은 나중에 애플리케이션 Web.config 파일에서 ida:ClientSecret에 대한 값으로 사용됩니다. 다음을 클릭합니다.

    선택한 공유 비밀 생성 옵션과 생성된 공유 비밀이 채워진 것을 보여주는 애플리케이션 그룹 추가 마법사의 애플리케이션 자격 증명 애플리케이션 구성 페이지의 스크린샷.

  5. 웹 API 구성 화면에서 식별자:https://webapi.를 입력 추가를 클릭합니다. 다음을 클릭합니다. 이 값은 나중에 애플리케이션 Web.config 파일에서 ida:GraphResourceId에 대해 사용됩니다.

    올바른 식별자를 보여주는 애플리케이션 그룹 추가 마법사의 Web API 구성 페이지의 스크린샷.

  6. 액세스 제어 정책 적용 화면에서 모든 사람 허용을 선택하고 다음을 클릭합니다.

    모든 사용자 허용 옵션이 강조 표시된 애플리케이션 그룹 추가 마법사의 액세스 제어 정책 선택 페이지 스크린샷.

  7. 애플리케이션 권한 구성 화면에서 openiduser_impersonation가 선택되었는지 확인하고 다음을 클릭합니다.

    선택한 열린 ID 및 사용자 가장 옵션을 보여주는 애플리케이션 그룹 추가 마법사의 애플리케이션 사용 권한 구성 페이지의 스크린샷.

  8. 요약 화면에서 다음을 클릭합니다.

  9. 완료 화면에서 닫기를 클릭합니다.

코드 구성

이 섹션은 사용자를 로그인하도록 ASP.NET 웹 앱을 구성하고 Web API를 호출하기 위한 토큰을 검색하는 방법을 설명합니다.

  1. 여기에서 샘플 다운로드

  2. Visual Studio를 사용하여 샘플 열기

  3. web.config 파일을 엽니다. 다음을 수정합니다.

    • ida:ClientId - AD FS 섹션의 앱 등록에서 #3의 클라이언트 식별자 값을 입력합니다.

    • ida:ClientSecret - AD FS 섹션의 앱 등록에서 #4의 비밀 값을 입력합니다.

    • ida:RedirectUri - AD FS 섹션의 앱 등록에서 #3의 Redirect URI 값을 입력합니다.

    • ida:Authority - https://[your AD FS hostname]/adfs를 입력합니다. https://adfs.contoso.com/adfs).

    • ida:Resource - AD FS 섹션의 앱 등록에서 #5의 식별자 값을 입력합니다.

      수정된 값을 보여주는 웹 구성 파일의 스크린샷.

샘플 테스트

이 섹션은 구성된 샘플을 테스트하는 방법을 보여줍니다.

  1. 코드가 변경되면 솔루션을 다시 빌드합니다.

  2. Visual Studio 맨 위에 있는 Internet Explorer가 선택 되어 있는지 확인 하 고 녹색 화살표를 클릭 합니다.

    IIS Express(Internet Explorer) 옵션이 호출된 Visual Studio UI의 스크린샷.

  3. 홈페이지에서 로그인을 클릭합니다.

    로그인 옵션이 호출된 홈페이지의 스크린샷.

  4. AD FS 로그인 페이지로 리디렉션됩니다. 계속해서 로그인 합니다.

    로그인 페이지 스크린샷.

  5. 로그인 후 액세스 토큰을 클릭합니다.

    액세스 토큰 옵션이 호출된 홈페이지의 스크린샷.

  6. 액세스 토큰을 클릭하면 Web API를 호출하여 액세스 토큰 정보를 가져옵니다.

    액세스 토큰 정보를 보여주는 액세스 토큰 페이지의 스크린샷.

다음 단계

AD FS OpenID Connect/OAuth 흐름 및 애플리케이션 시나리오