적용 대상: 모든 API Management 계층
이 문서에서는 API Management에서 관리 되는 연결을 만들고 OAuth 2.0 토큰이 필요한 GitHub API를 호출하는 방법을 알아봅니다. 이 예제에서는 권한 부여 코드 부여 유형을 사용합니다.
당신은 다음을 배우게 됩니다:
- GitHub에서 애플리케이션 등록
- API Management에서 자격 증명 공급자 구성
- 연결 구성
- API Management에서 API 만들기 및 정책 구성
- API Management에서 GitHub API 테스트
필수 조건
- GitHub 계정.
- 실행 중인 API Management 인스턴스입니다. 필요한 경우 Azure API Management 인스턴스를 만듭니다.
- API Management 인스턴스에서 API Management에 대해 시스템 할당 관리 ID 를 사용하도록 설정합니다.
1단계: GitHub에서 애플리케이션 등록
API에 대한 GitHub OAuth 앱을 만들고 호출하려는 요청에 대한 적절한 권한을 부여합니다.
GitHub에 로그인합니다.
계정 프로필에서 설정 > 개발자 설정 > OAuth 앱으로 이동합니다.새 OAuth 앱을 선택합니다.
-
애플리케이션 이름 및 애플리케이션의 홈페이지 URL을 입력합니다. 이 예제에서는 다음과 같은
http://localhost자리 표시자 URL을 제공할 수 있습니다. - 필요에 따라 애플리케이션 설명을 추가합니다.
-
권한 부여 콜백 URL(리디렉션 URL)에서 자격 증명 공급자를 구성하는 API Management 인스턴스의 이름을 대체하여 입력
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>합니다. - 필요에 따라 디바이스 흐름 사용 (이 예제에는 필요하지 않음)을 선택합니다.
-
애플리케이션 이름 및 애플리케이션의 홈페이지 URL을 입력합니다. 이 예제에서는 다음과 같은
애플리케이션 등록을 선택합니다.
일반 페이지에서 2단계에서 사용하는 클라이언트 ID를 복사합니다.
새 클라이언트 암호 생성을 선택합니다. 다시 표시되지 않는 비밀을 복사합니다. 2단계에서 비밀을 구성합니다.
2단계: API Management에서 자격 증명 공급자 구성
Azure Portal에 로그인하고 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 API>자격 증명 관리자>+ 만들기를 선택합니다.
자격 증명 공급자 만들기에서 다음 설정을 입력합니다.
설정 가치 자격 증명 공급자 이름 선택한 이름(예: github-01) ID 공급자 GitHub 선택 권한 부여 유형 권한 부여 코드 선택 클라이언트 ID 앱 등록에서 이전에 복사한 값을 붙여넣습니다. 클라이언트 암호 앱 등록에서 이전에 복사한 값을 붙여넣습니다. Scope 이 예제에서는 범위를 User로 설정합니다. 선택하고생성합니다.
메시지가 표시되면 표시되는 OAuth 리디렉션 URL을 검토하고 예를 선택하여 GitHub 앱 등록에 입력한 URL과 일치하는지 확인합니다.
3단계: 연결 구성
연결 탭에서 공급자에 대한 연결 단계를 완료합니다.
비고
연결을 구성할 때 API Management는 기본적으로 인스턴스의 시스템 할당 관리 ID에 의한 액세스를 가능하게 하는 액세스 정책을 설정합니다. 이 액세스는 이 예제에 충분합니다. 필요에 따라 추가 액세스 정책을 추가할 수 있습니다.
- 연결 이름을 입력한 다음 저장을 선택합니다.
- 2단계: 권한 부여 코드 부여 유형에 대한 연결에 로그인하려면 로그인 단추를 선택합니다. ID 공급자를 사용하여 액세스 권한을 부여하고 API Management로 돌아가는 단계를 완료합니다.
- 3단계: 이 연결에 액세스할 수 있는 사용자 결정(액세스 정책)에서 관리 ID 멤버가 나열됩니다. 시나리오에 따라 다른 멤버를 추가하는 것은 선택 사항입니다.
- 완료를 선택합니다.
새 연결이 연결 목록에 표시되고 연결 상태가 표시됩니다. 자격 증명 공급자에 대한 다른 연결을 만들려면 이전 단계를 완료합니다.
팁 (조언)
Azure Portal을 사용하여 언제든지 자격 증명 공급자에 대한 연결을 추가, 업데이트 또는 삭제할 수 있습니다. 자세한 내용은 여러 연결 구성을 참조하세요.
4단계: API Management에서 API 만들기 및 정책 구성
Azure Portal에 로그인하고 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 API API>>+ API 추가를 선택합니다.
HTTP를 선택하고 다음 설정을 입력한 다음 만들기를 선택합니다.
Setting 가치 표시 이름 githubuser 웹 서비스 URL https://api.github.comAPI URL 접미사 githubuser 새 API로 이동하여 작업 추가를 선택합니다. 다음 설정을 입력하고 저장을 선택합니다.
Setting 가치 표시 이름 getauthdata GET에 대한 URL /user
위의 단계에 따라 다음 설정을 사용하여 다른 작업을 추가합니다.
Setting 가치 표시 이름 getauthfollowers GET에 대한 URL /user/followers 모든 작업을 선택합니다. 인바운드 처리 섹션에서 (/<) (>코드 편집기) 아이콘을 선택합니다.
다음 코드를 복사하여 정책 편집기에서 붙여넣습니다. 정책의
provider-id값과authorization-id값이get-authorization-context이전 단계에서 구성한 자격 증명 공급자 및 연결의 이름과 각각 일치하는지 확인합니다. 저장을 선택합니다.<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 헤더를 만듭니다.
- 두 번째 집합 헤더 정책은 헤더를
User-Agent만듭니다(GitHub API 요구 사항).
5단계: API 테스트
테스트 탭에서 구성한 작업 중 하나를 선택합니다.
보내기를 선택합니다.
성공적인 응답은 GitHub API에서 사용자 데이터를 반환합니다.
관련 콘텐츠
- 인증 및 권한 부여 정책에 대해 자세히 알아보기
- GitHub의 REST API에 대해 자세히 알아보기