적용: 회색 X 기호가 있는 흰색 원 Workforce 테넌트는 흰색 확인 표시 기호가 있는 녹색 원을
외부 테넌트(자세한알아보기)
시작하기 전에 이 페이지의 맨 위에 있는 테넌트 유형 선택기를 선택하여 테넌트 유형을 선택합니다. Microsoft Entra ID는 두 가지 테넌트 구성을 제공합니다: 직원 과 외부. 직원 테넌트 구성은 직원, 내부 앱 및 기타 조직 리소스를 위한 것입니다. 외부 테넌트는 고객용 앱용입니다.
이 가이드에서는 사용자를 로그인하고 ASP.NET Core 웹 API를 호출하도록 샘플 모바일 애플리케이션을 구성하는 방법을 보여 줍니다.
이 문서에서는 다음 작업을 수행합니다.
- 웹 애플리케이션에 플랫폼 리디렉션 URL을 추가합니다.
- 공용 클라이언트 흐름을 사용하도록 설정합니다.
- 고객 테넌트 세부 정보에 고유한 Microsoft Entra 외부 ID를 사용하도록 Android 구성 코드 샘플 파일을 업데이트합니다.
- 샘플 Android 모바일 애플리케이션을 실행하고 테스트합니다.
- 보호된 웹 API를 호출합니다.
필수 구성 요소
외부 테넌트입니다. 아직 계정이 없으시다면, 무료 평가판에 가입하세요.
모든 조직 디렉터리 및 개인 Microsoft 계정의 계정에 대해 구성된 Microsoft Entra 관리 센터에 새 클라이언트 웹앱을 등록합니다. 애플리케이션 등록에서 자세한 내용을 참조하세요. 나중에 사용할 수 있는 애플리케이션 개요 페이지에서 다음 값을 기록합니다.
- 애플리케이션(클라이언트) ID
- 디렉터리(테넌트) ID
하나 이상의 범위(위임된 권한) 및 ToDoList.Read와 같은 하나의 앱 역할(애플리케이션 권한)을 노출하는 웹 API 등록입니다. 아직 하지 않았다면, ASP.NET Core 웹 API를 기능적으로 보호하기 위해 샘플 Android 모바일 앱 에서 API를 호출하는 지침을 따르세요. 다음 단계를 완료해야 합니다.
- API 범위 구성
- 앱 역할 구성
- 선택적 클레임 구성
- 샘플 Web API 복제 또는 다운로드
- 샘플 Web API 구성 및 실행
플랫폼 리디렉션 URL 추가
앱 등록에 앱 유형을 지정하려면 다음 단계를 수행합니다.
- 관리아래에서 인증선택합니다.
- 플랫폼 구성 페이지에서 플랫폼 추가선택한 다음, Android 옵션을 선택합니다.
- 프로젝트의 패키지 이름을 입력합니다.
샘플 코드다운로드한 경우 이 값은
com.azuresamples.msaldelegatedandroidkotlinsampleapp
. - Android 앱 구성 창의 서명 해시 섹션에서 개발 서명 해시 생성 선택합니다. 각 개발 환경에 대해 변경됩니다. 터미널에서 운영 체제에 대한 KeyTool 명령을 복사하고 실행합니다.
- KeyTool에서 생성된 서명 해시 입력합니다.
- 구성을 선택합니다.
- Android 구성 창에서 MSAL 구성 복사하고 이후 앱 구성을 위해 저장합니다.
- 완료선택합니다.
공개 클라이언트 플로우 활성화
앱을 퍼블릭 클라이언트로 식별하려면 다음 단계를 수행합니다.
관리아래에서 인증선택합니다.
고급 설정에서, 공용 클라이언트 흐름 허용에 대해 예를 선택합니다.
저장을 선택하여 변경 내용을 저장합니다.
샘플 앱에 Web API 권한 부여
클라이언트 앱인 Web API를 모두 등록하고 범위를 만들어 API를 노출한 후에는 다음 단계에 따라 API에 대한 클라이언트의 권한을 구성할 수 있습니다.
앱 등록 페이지에서 만든 애플리케이션(예: ciam-client-app)을 선택하여 개요 페이지를 엽니다.
관리아래에서 API 권한을선택합니다.
구성된 권한아래에서 새로운 권한을 추가를 선택합니다.
조직에서 사용하는 API를 탭에서 선택합니다.
API 목록에서 ciam-ToDoList-api같은 API를 선택합니다.
위임된 권한 옵션을 선택합니다.
사용 권한 목록에서 ToDoList.Read, ToDoList.ReadWrite 선택합니다(필요한 경우 검색 상자 사용).
권한 추가 단추를 선택합니다.
이 시점에서 사용 권한을 올바르게 할당했습니다. 그러나 테넌트는 고객의 테넌트이므로 소비자 사용자 자체는 이러한 권한에 동의할 수 없습니다. 이 문제를 해결하려면 관리자가 테넌트에 있는 모든 사용자를 대신하여 이러한 권한에 동의해야 합니다.
테넌트 이름<>대한 관리자 동의 부여선택한 다음, 예선택합니다.
새로 고침을선택한 다음, 테넌트 이름<>대해 부여된 두 권한에 대한 상태 표시되는지 확인합니다.
구성된 사용 권한 목록에서 ToDoList.Read 및 ToDoList.ReadWrite 권한을 하나씩 선택한 후, 나중에 사용할 수 있도록 해당 사용 권한의 전체 URI를 복사합니다. 전체 권한 URI는
api://{clientId}/{ToDoList.Read}
또는api://{clientId}/{ToDoList.ReadWrite}
비슷합니다.
모바일 샘플 앱 복제
샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.
샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들 위치로 이동하고 다음 명령을 입력합니다.
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
샘플 Android 모바일 애플리케이션 구성
웹 API 리소스에 대한 인증 및 액세스를 사용하도록 설정하려면 다음 단계에 따라 샘플을 구성합니다.
Android Studio에서 복제한 프로젝트를 엽니다.
/app/src/main/res/raw/auth_config_ciam.json 파일을 엽니다.
자리 표시자를 찾습니다.
- 이전에 등록한 앱의
Enter_the_Application_Id_Here
으로 을(를) 바꾸십시오. - MSAL(마이크로소프트 인증 라이브러리) 구성 파일에서
Enter_the_Redirect_Uri_Here
를 제거하고, 플랫폼 리디렉션 URL을 추가할 때 이전에 다운로드한 해당 파일의 redirect_uri 값으로 대체합니다. -
Enter_the_Tenant_Subdomain_Here
디렉터리(테넌트) 하위 도메인으로 바꿉니다. 예를 들어 테넌트 주 도메인이contoso.onmicrosoft.com
경우contoso
사용합니다. 테넌트 하위 도메인을 모르는 경우 테넌트 세부 정보를 읽는 방법을알아보세요.
- 이전에 등록한 앱의
/app/src/main/AndroidManifest.xml 파일을 엽니다.
자리 표시자를 찾습니다.
-
ENTER_YOUR_SIGNATURE_HASH_HERE
플랫폼 리디렉션 URL을 추가할 때 이전에 생성한 서명 해시로 바꿉니다.
-
/app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt 파일을 엽니다.
WEB_API_BASE_URL
명명된 속성을 찾고 URL을 웹 API로 설정합니다.속성
scopes
을 찾아 Android 샘플 앱 에 대한 웹 API 권한을 부여하는 범위을 설정합니다.private const val scopes = "" // Developers should set the respective scopes of their web API here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
앱을 구성했으며 실행할 준비가 완료되었습니다.
샘플 앱 실행 및 웹 API 호출
앱을 빌드하고 실행하려면 다음 단계를 수행합니다.
도구 모음의 실행 구성 메뉴에서 앱을 선택합니다.
대상 디바이스 메뉴에서 앱을 실행할 디바이스를 선택합니다.
구성된 디바이스가 없는 경우 Android 에뮬레이터를 사용하도록 Android 가상 디바이스를 만들거나 실제 Android 디바이스를 연결해야 합니다.
실행 단추를 선택합니다.
대화형으로 토큰 획득을 선택하여 액세스 토큰을 요청합니다.
API 선택 - GET 수행하여 이전에 설정한 ASP.NET Core 웹 API를 호출합니다. 웹 API를 성공적으로 호출하면 HTTP 200이 반환되고 HTTP 403은 무단 액세스를 의미합니다.