다음을 통해 공유


빠른 시작: 샘플 모바일 앱에서 사용자 로그인

시작하기 전에 이 페이지의 맨 위에 있는 테넌트 유형 선택기를 선택하여 테넌트 유형을 선택합니다. Microsoft Entra ID는 두 가지 테넌트 설정을 제공합니다: 직원 설정과 외부설정. 직원 테넌트 구성은 직원, 내부 앱 및 기타 조직 리소스를 위한 것입니다. 외부 테넌트는 고객용 앱용입니다.

이 빠른 시작에서는 Android 애플리케이션이 사용자를 로그인하고 Microsoft Graph API를 호출하는 액세스 토큰을 가져오는 방법을 보여 주는 코드 샘플을 다운로드하고 실행합니다.

Microsoft ID 플랫폼이 애플리케이션에 토큰을 제공할 수 있도록 애플리케이션은 Microsoft Entra ID의 앱 개체로 표현되어야 합니다.

필수 구성 요소

애플리케이션 등록

애플리케이션을 등록하고 앱의 등록 정보를 솔루션에 수동으로 추가하려면 다음 단계를 수행합니다.

  1. Microsoft Entra 관리 센터에 적어도 애플리케이션 개발자자격으로 로그인하십시오.

  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘 사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.

  3. 아이덴티티>애플리케이션>앱 등록으로 이동합니다.

  4. 새 등록선택합니다.

  5. 애플리케이션의 이름을 입력하십시오. 앱 사용자에게 이 이름이 표시될 수 있으며 나중에 변경할 수 있습니다.

  6. 지원되는 계정 유형에 대해, 조직 디렉터리(모든 Microsoft Entra 디렉터리 - 다중 테넌트) 및 개인 Microsoft 계정(예: Skype, Xbox)을 선택합니다. 다양한 계정 유형에 대한 정보를 보려면 선택을 도와주세요 옵션을 선택하십시오.

  7. 등록선택합니다.

  8. 관리아래에서 인증>플랫폼>Android추가를 선택합니다.

  9. 위에서 다운로드한 샘플 형식에 따라 프로젝트의 패키지 이름을 입력합니다.

    • Java 샘플 - com.azuresamples.msalandroidapp
    • Kotlin 예제 - com.azuresamples.msalandroidkotlinapp
  10. Android 앱 구성 창의 서명 해시 섹션에서 '개발 서명 해시 생성'을 선택한 다음, KeyTool 명령을 명령줄에 복사합니다.

    • KeyTool.exe JDK(Java Development Kit)의 일부로 설치됩니다. 또한 OpenSSL 도구를 설치하여 KeyTool 명령을 실행해야 합니다. 자세한 내용은 키 생성에 대한 Android 설명서를 참조하세요.
  11. KeyTool에서 생성된 서명 해시 입력합니다.

  12. 구성 선택하고 Android 구성 창에 표시되는 MSAL 구성 저장하여 나중에 앱을 구성할 때 입력할 수 있습니다.

  13. 선택합니다완료.

샘플 앱 가져오기

  • Java: 코드다운로드하세요.
  • Kotlin: 코드다운로드합니다.

샘플 애플리케이션 구성

  1. Android Studio의 프로젝트 패널에서 app\src\main\res으로 이동하세요.

  2. res을 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기>디렉터리을 선택합니다. 새 디렉터리 이름으로 raw 입력하고, 확인 버튼선택합니다.

  3. >src>main>res>raw로 이동한 다음, auth_config_single_account.json라는 JSON 파일에 이전에 저장한 MSAL 구성을 붙여넣습니다.

    리디렉션 URI 아래에 붙여넣습니다.

      "account_mode" : "SINGLE",
    

    구성 파일은 다음 예제와 유사합니다.

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": false,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    
  4. /app/src/main/AndroidManifest.xml파일을 엽니다.

  5. 자리 표시자를 찾습니다.

    • enter_the_signature_hash 을(를) 이전에 플랫폼 리디렉션 URL을 추가할 때 생성한 서명 해시 로 바꿉니다.

    이 자습서에서는 단일 계정 모드에서 앱을 구성하는 방법만 보여 주듯이, 단일 및 다중 계정 모드 참조하고 자세한 내용은 앱 구성하는 참조하세요.

샘플 앱 실행

Android Studio의 사용 가능한 디바이스 드롭다운 목록에서 에뮬레이터 또는 물리적 디바이스를 선택하고 앱을 실행합니다.

샘플 앱은 단일 계정 모드 화면에서 시작됩니다. user.read 기본 범위는 기본적으로 제공되며, Microsoft Graph API 호출 중에 사용자 고유의 프로필 데이터를 읽을 때 사용됩니다. Microsoft Graph API 호출의 URL은 기본적으로 제공됩니다. 원하는 경우 이 두 가지를 모두 변경할 수 있습니다.

단일 및 여러 계정 사용량을 보여 주는 MSAL 샘플 앱의 스크린샷

앱 메뉴를 사용하여 단일 및 여러 계정 모드 간에 변경합니다.

단일 계정 모드에서 회사 또는 홈 계정을 사용하여 로그인합니다.

  1. 그래프 데이터를 대화형으로 가져오기를 선택하여 사용자에게 자격 증명을 묻는 메시지를 표시합니다. 화면 아래쪽에 Microsoft Graph API 호출의 출력이 표시됩니다.
  2. 로그인한 후 사용자에게 자격 증명을 다시 요청하지 않고 자동으로 그래프 데이터 가져오기를 선택하여 Microsoft Graph API를 호출합니다. 화면 아래쪽에 Microsoft Graph API 호출의 출력이 표시됩니다.

여러 계정 모드에서 동일한 단계를 반복할 수 있습니다. 또한 로그인한 계정을 제거할 수 있습니다. 그러면 해당 계정의 캐시된 토큰도 제거됩니다.

샘플 작동 방식

이 빠른 시작에서 생성된 샘플 앱의 작동 방식을 보여 주는 다이어그램

코드는 단일 및 여러 계정 MSAL 앱을 작성하는 방법을 보여 주는 조각으로 구성됩니다. 코드 파일은 다음과 같이 구성됩니다.

파일 입증합니다
메인액티비티 UI 관리
MSGraphRequestWrapper (MS 그래프 요청 래퍼) MSAL에서 제공하는 토큰을 사용하여 Microsoft Graph API 호출
다중 계정 모드 프래그먼트 다중 계정 애플리케이션을 초기화하고, 사용자 계정을 로드하고, Microsoft Graph API를 호출하는 토큰을 가져옵니다.
SingleAccountModeFragment 단일 계정 애플리케이션을 초기화하고, 사용자 계정을 로드하고, Microsoft Graph API를 호출하는 토큰을 가져옵니다.
res/auth_config_multiple_account.json 여러 계정 구성 파일
res/auth_config_single_account.json 단일 계정 구성 파일
Gradle 스크립트/build.gradle(모듈: app) MSAL 라이브러리 종속성은 여기에 추가됩니다.

이제 이러한 파일을 자세히 살펴보고 각 파일에서 MSAL 관련 코드를 호출합니다.

다음 단계

Microsoft ID 플랫폼에서 액세스 토큰을 가져오고 이를 사용하여 Microsoft Graph API를 호출하는 Android 앱을 빌드하는 Android 자습서로 이동합니다.

이 빠른 시작에서는 애플리케이션을 등록하고, 리디렉션 URL을 설정하고, 구성을 업데이트하고, 앱을 테스트하여 사용자를 로그인하도록 샘플 Android, .NET MAUI Android 및 iOS/macOS 앱을 구성하는 방법을 안내합니다.

필수 구성 요소

  • Android Studio.
  • 외부 테넌트입니다. 아직 계정이 없다면 무료 평가판을 등록하세요 .

애플리케이션 등록

애플리케이션이 Microsoft Entra를 사용하여 사용자를 로그인할 수 있도록 하려면 사용자가 만든 애플리케이션을 Microsoft Entra 외부 ID로 인식해야 합니다. 앱 등록은 앱과 Microsoft Entra 간에 트러스트 관계를 설정합니다. 애플리케이션을 등록할 때 외부 ID는 인증 요청을 만들 때 앱을 식별하는 데 사용되는 값인 애플리케이션(클라이언트) ID알려진 고유 식별자를 생성합니다.

다음 단계에서는 Microsoft Entra 관리 센터에서 앱을 등록하는 방법을 보여 줍니다.

  1. Microsoft Entra 관리 센터에 적어도 애플리케이션 개발자자격으로 로그인하십시오.

  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘 사용하여 디렉터리 + 구독 메뉴에서 외부 테넌트로 전환합니다.

  3. 아이덴티티>애플리케이션>앱 등록으로 이동합니다.

  4. + 새 등록선택합니다.

  5. 등록 애플리케이션 페이지가 표시될 때

    1. 앱 사용자에게 표시되는 의미 있는 애플리케이션 이름 입력합니다(예: ciam-client-app ).
    2. 지원되는 계정 유형에서, 이 조직 디렉터리의 계정만을 선택합니다.
  6. 등록선택합니다.

  7. 등록에 성공하면 애플리케이션의 개요 창이 표시됩니다. 애플리케이션 소스 코드에서 사용할 애플리케이션(클라이언트) ID 기록합니다.

플랫폼 리디렉션 URL 추가

앱 등록에 앱 유형을 지정하려면 다음 단계를 수행합니다.

  1. 관리아래에서 인증선택합니다.
  2. 플랫폼 구성 페이지에서 플랫폼 추가선택한 다음, Android 옵션을 선택합니다.
  3. 프로젝트의 패키지 이름을 입력합니다. 샘플 코드다운로드한 경우 이 값은 com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. Android 앱 구성 창의 서명 해시 섹션에서 '개발 서명 해시 생성'을 선택합니다. 이는 각 개발 환경에 따라 달라질 수 있습니다. 터미널에서 운영 체제에 맞는 KeyTool 명령을 복사하여 실행합니다.
  5. KeyTool에서 생성된 서명 해시 입력합니다.
  6. 을 선택하고을 구성하십시오.
  7. Android 구성 창에서 MSAL 구성 복사하고 이후 앱 구성을 위해 저장합니다.
  8. 선택합니다완료.

공용 클라이언트 흐름 허용

앱을 퍼블릭 클라이언트로 식별하려면 다음 단계를 수행합니다.

  1. 관리아래에서 인증선택합니다.

  2. 고급 설정아래에서 공용 클라이언트 흐름을 허용하려면, 를 선택합니다.

  3. 저장을 선택하여 변경 내용을 저장합니다.

애플리케이션을 등록하면 User.Read 권한이 할당됩니다. 그러나 테넌트는 외부 테넌트이므로 고객 사용자 자체는 이 권한에 동의할 수 없습니다. 테넌트 관리자는 테넌트에 있는 모든 사용자를 대신하여 이 권한에 동의해야 합니다.

  1. 앱 등록 페이지에서 만든 애플리케이션(예: ciam-client-app)을 선택하여 개요 페이지를 엽니다.

  2. 관리에서 API 권한를 선택합니다.

    1. 테넌트 이름<>대한 관리자 동의 부여선택한 다음, 선택합니다.
    2. 새로 고침을 선택한 다음, 권한의 상태 아래에 <테넌트 이름>에 대해 "부여됨"이 표시되는지 확인합니다.

샘플 애플리케이션 복제

샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.

  • 샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들 위치로 이동하고 다음 명령을 입력합니다.

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
    

샘플 애플리케이션 구성

Microsoft Graph 리소스에 대한 인증 및 액세스를 사용하도록 설정하려면 다음 단계에 따라 샘플을 구성합니다.

  1. Android Studio에서 복제한 프로젝트를 엽니다.

  2. /app/src/main/res/raw/auth_config_ciam.json 파일을 엽니다.

  3. 자리 표시자를 찾습니다.

    • 해당 Enter_the_Application_Id_Here을(를) 이전에 등록한 앱의 애플리케이션(클라이언트) ID으로(로) 변경합니다.
    • Enter_the_Redirect_Uri_Here 플랫폼 리디렉션 URL을 추가했을 때 이전에 다운로드한 MSAL(Microsoft 인증 라이브러리) 구성 파일에서 redirect_uri 값으로 바꿉니다.
    • Enter_the_Tenant_Subdomain_Here 디렉터리(테넌트) 하위 도메인으로 바꿉니다. 예를 들어 테넌트 주 도메인이 contoso.onmicrosoft.com경우 contoso사용합니다. 테넌트 하위 도메인을 모르는 경우, 테넌트 세부 정보를 읽는 방법을알아봅니다.
  4. /app/src/main/AndroidManifest.xml파일을 엽니다.

  5. 자리 표시자를 찾습니다.

    • ENTER_YOUR_SIGNATURE_HASH_HERE 을(를) 이전에 플랫폼 리디렉션 URL을 추가할 때 생성한 서명 해시 로 바꿉니다.
  6. /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt 파일을 엽니다.

  7. scopes 속성을 찾고 에 기록된 범위를 설정한 후 관리자 동의를 부여합니다. 범위를 기록하지 않은 경우 이 범위 목록을 비워 둘 수 있습니다.

    private const val scopes = "" // Developers should set the respective scopes of their Microsoft Graph resources here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

앱을 구성했으며 실행할 준비가 완료되었습니다.

샘플 앱 실행 및 테스트

앱을 빌드하고 실행하려면 다음 단계를 수행합니다.

  1. 도구 모음의 실행 구성 메뉴에서 앱을 선택합니다.

  2. 대상 디바이스 메뉴에서 앱을 실행할 디바이스를 선택합니다.

    구성된 디바이스가 없는 경우 Android 에뮬레이터를 사용하도록 Android 가상 디바이스를 만들거나 실제 Android 디바이스를 연결해야 합니다.

  3. 실행 단추를 선택합니다.

  4. 대화형으로 토큰 획득을 선택하여 액세스 토큰을 요청합니다.

  5. API를 선택하는 경우 - GET 수행하여 보호된 ASP.NET Core 웹 API를 호출하면 오류가 발생합니다.

보호된 웹 API를 호출하는 방법에 대한 자세한 내용은 다음 단계를 참조하세요.

다음 단계