자격 증명 관리자 구성 - GitHub API

적용 대상: 모든 API Management 계층

이 문서에서는 API Management에서 관리 연결을 만들고 OAuth 2.0 토큰이 필요한 GitHub API를 호출하는 방법을 알아봅니다. 이 예에서는 인증 코드 부여 형식이 사용됩니다.

다음 방법에 대해 설명합니다.

  • GitHub에서 애플리케이션 등록
  • API Management에서 자격 증명 공급자 구성
  • 연결 구성
  • API Management에서 API를 만들고 정책을 구성합니다.
  • API Management에서 GitHub API 테스트

필수 조건

1단계: GitHub에 애플리케이션 등록

API용 GitHub OAuth 앱을 만들고 호출하려는 요청에 대한 적절한 권한을 부여합니다.

  1. GitHub에 로그인합니다.

  2. 계정 프로필에서 설정 > 개발자 설정 > OAuth 앱으로 이동합니다. 새 OAuth 앱을 선택합니다.

    GitHub에 새 OAuth 애플리케이션을 등록하는 스크린샷

    1. 애플리케이션의 애플리케이션 이름홈페이지 URL을 입력합니다. 이 예제에서는 http://localhost과(와) 같은 자리 표시자 URL을 제공할 수 있습니다.
    2. 선택적으로 애플리케이션 설명을 추가합니다.
    3. 권한 부여 콜백 URL(리디렉션 URL)에 https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>을 입력하고 자격 증명 공급자를 구성할 API Management 인스턴스의 이름을 대체합니다.
  3. 애플리케이션 등록을 선택합니다.

  4. 일반 페이지에서 2단계에서 사용할 클라이언트 ID를 복사합니다.

  5. 새 클라이언트 암호 생성을 선택합니다. 비밀을 복사합니다. 이 비밀은 다시 표시되지 않고 2단계에서 사용하게 됩니다.

    GitHub에서 애플리케이션에 대한 클라이언트 ID 및 클라이언트 암호를 가져오는 방법을 보여 주는 스크린샷

2단계: API Management에서 자격 증명 공급자 구성

  1. 포털에 로그인하고 API Management 인스턴스로 이동합니다.

  2. 왼쪽 메뉴에서 인증 정보 관리자>+ 만들기를 선택합니다.

    Azure Portal에서 API Management 자격 증명을 만드는 스크린샷.

  3. 자격 정보 공급자 만들기 페이지에서 다음 설정을 입력합니다.

    설정
    자격 정보 공급자 이름 원하는 이름(예: github-01)
    ID 공급자 GitHub를 선택합니다.
    권한 부여 유형 인증 코드 선택
    클라이언트 ID 앱 등록에서 이전에 복사한 값 붙여넣기
    클라이언트 암호 앱 등록에서 이전에 복사한 값 붙여넣기
    범위 이 예제에서는 scope를 User로 설정합니다.
  4. 만들기를 실행합니다.

  5. 메시지가 표시되면 표시된 OAuth 리디렉션 URL을 검토하고 를 선택하여 앱 등록 시 입력한 URL과 일치하는지 확인합니다.

3단계: 연결 구성

연결 탭에서 공급자 연결 단계를 완료합니다.

참고 항목

연결을 구성하면 API Management는 기본적으로 인스턴스의 시스템 할당 관리 ID에서 액세스할 수 있도록 하는 액세스 정책을 설정합니다. 이 예에서는 이 액세스만으로 충분합니다. 필요에 따라 추가 액세스 정책을 추가할 수 있습니다.

  1. 연결 이름을 입력한 다음 저장을 선택합니다.
  2. 2단계: 연결에 로그인(권한 부여 코드 부여 유형)에서 자격 증명 공급자에 로그인할 링크를 선택합니다. 액세스 권한을 부여하는 단계를 완료하고 API Management로 돌아갑니다.
  3. 3단계: 이 연결에 액세스할 수 있는 사용자 결정(액세스 정책) 아래에 관리 ID 멤버가 나열됩니다. 시나리오에 따라 다른 멤버를 추가하는 것은 선택 사항입니다.
  4. Complete(완료) 를 선택합니다.

새 연결이 연결 목록에 나타나고 연결됨 상태로 표시됩니다. 자격 증명 공급자에 대한 다른 연결을 만들려면 이전 단계를 완료합니다.

포털을 사용하여 언제든지 자격 증명 공급자에 대한 연결을 추가, 업데이트 또는 삭제할 수 있습니다. 자세한 내용은 다중 연결 구성을 참조하세요.

4단계: API Management에서 API 만들기 및 정책 구성

  1. 포털에 로그인하고 API Management 인스턴스로 이동합니다.

  2. 왼쪽 메뉴에서 API > + AP추가를 선택합니다.

  3. HTTP를 선택하고 다음 설정을 입력합니다. 그런 다음 만들기를 선택합니다.

    설정
    표시 이름 githubuser
    웹 서비스 URL https://api.github.com
    API URL 접미사 githubuser
  4. 새로 만들어진 API로 이동하여 작업 추가를 선택합니다. 다음 설정을 입력하고 저장을 선택합니다.

    설정
    표시 이름 getauthdata
    GET에 대한 URL /사용자

    포털의 API에 getauthdata 작업을 추가하는 스크린샷.

  5. 위의 단계에 따라 다음 설정을 사용하여 다른 작업을 추가합니다.

    설정
    표시 이름 getauthfollowers
    GET에 대한 URL /user/followers
  6. 모든 작업을 선택합니다. 인바운드 처리 섹션에서 코드 편집기(</>) 아이콘을 선택합니다.

  7. 다음을 복사하여 정책 편집기에 붙여넣습니다. get-authorization-context 정책의 provider-idauthorization-id 값이 각각 이전 단계에서 구성한 자격 증명 공급자 및 연결의 이름과 일치하는지 확인합니다. 저장을 선택합니다.

    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
            <set-header name="Authorization" exists-action="override">
                <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
            </set-header>
            <set-header name="User-Agent" exists-action="override">
                <value>API Management</value>
            </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

앞선 정책 정의는 다음 세 부분으로 구성됩니다.

  • get-authorization-context 정책은 이전에 만든 자격 증명 공급자 및 연결을 참조하여 권한 부여 토큰을 가져옵니다.
  • 첫 번째 set-header 정책은 가져온 권한 부여 토큰을 사용하여 HTTP 헤더를 만듭니다.
  • 두 번째 set-header 정책은 User-Agent 헤더(GitHub API 요구 사항)를 만듭니다.

5단계: API 테스트

  1. 테스트 탭에서 구성한 작업을 하나 선택합니다.

  2. 보내기를 선택합니다.

    포털에서 API를 성공적으로 테스트한 스크린샷

    성공적인 응답은 GitHub API에서 사용자 데이터를 반환합니다.