자격 증명 관리자 구성 - GitHub API
적용 대상: 모든 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)에
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>
을 입력하고 자격 증명 공급자를 구성할 API Management 인스턴스의 이름을 대체합니다.
- 애플리케이션의 애플리케이션 이름 및 홈페이지 URL을 입력합니다. 이 예제에서는
애플리케이션 등록을 선택합니다.
일반 페이지에서 2단계에서 사용할 클라이언트 ID를 복사합니다.
새 클라이언트 암호 생성을 선택합니다. 비밀을 복사합니다. 이 비밀은 다시 표시되지 않고 2단계에서 사용하게 됩니다.
2단계: API Management에서 자격 증명 공급자 구성
포털에 로그인하고 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 인증 정보 관리자>+ 만들기를 선택합니다.
자격 정보 공급자 만들기 페이지에서 다음 설정을 입력합니다.
설정 값 자격 정보 공급자 이름 원하는 이름(예: github-01) ID 공급자 GitHub를 선택합니다. 권한 부여 유형 인증 코드 선택 클라이언트 ID 앱 등록에서 이전에 복사한 값 붙여넣기 클라이언트 암호 앱 등록에서 이전에 복사한 값 붙여넣기 범위 이 예제에서는 scope를 User로 설정합니다. 만들기를 실행합니다.
메시지가 표시되면 표시된 OAuth 리디렉션 URL을 검토하고 예를 선택하여 앱 등록 시 입력한 URL과 일치하는지 확인합니다.
3단계: 연결 구성
연결 탭에서 공급자 연결 단계를 완료합니다.
참고 항목
연결을 구성하면 API Management는 기본적으로 인스턴스의 시스템 할당 관리 ID에서 액세스할 수 있도록 하는 액세스 정책을 설정합니다. 이 예에서는 이 액세스만으로 충분합니다. 필요에 따라 추가 액세스 정책을 추가할 수 있습니다.
- 연결 이름을 입력한 다음 저장을 선택합니다.
- 2단계: 연결에 로그인(권한 부여 코드 부여 유형)에서 자격 증명 공급자에 로그인할 링크를 선택합니다. 액세스 권한을 부여하는 단계를 완료하고 API Management로 돌아갑니다.
- 3단계: 이 연결에 액세스할 수 있는 사용자 결정(액세스 정책) 아래에 관리 ID 멤버가 나열됩니다. 시나리오에 따라 다른 멤버를 추가하는 것은 선택 사항입니다.
- Complete(완료) 를 선택합니다.
새 연결이 연결 목록에 나타나고 연결됨 상태로 표시됩니다. 자격 증명 공급자에 대한 다른 연결을 만들려면 이전 단계를 완료합니다.
팁
포털을 사용하여 언제든지 자격 증명 공급자에 대한 연결을 추가, 업데이트 또는 삭제할 수 있습니다. 자세한 내용은 다중 연결 구성을 참조하세요.
4단계: API Management에서 API 만들기 및 정책 구성
포털에 로그인하고 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 API > + AP추가를 선택합니다.
HTTP를 선택하고 다음 설정을 입력합니다. 그런 다음 만들기를 선택합니다.
설정 값 표시 이름 githubuser 웹 서비스 URL https://api.github.com
API URL 접미사 githubuser 새로 만들어진 API로 이동하여 작업 추가를 선택합니다. 다음 설정을 입력하고 저장을 선택합니다.
설정 값 표시 이름 getauthdata GET에 대한 URL /사용자 위의 단계에 따라 다음 설정을 사용하여 다른 작업을 추가합니다.
설정 값 표시 이름 getauthfollowers GET에 대한 URL /user/followers 모든 작업을 선택합니다. 인바운드 처리 섹션에서 코드 편집기(</>) 아이콘을 선택합니다.
다음을 복사하여 정책 편집기에 붙여넣습니다.
get-authorization-context
정책의provider-id
및authorization-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 테스트
테스트 탭에서 구성한 작업을 하나 선택합니다.
보내기를 선택합니다.
성공적인 응답은 GitHub API에서 사용자 데이터를 반환합니다.
관련 콘텐츠
- 인증 및 권한 부여 정책에 대해 자세히 알아보기
- GitHub의 REST API에 대해 자세히 알아보기