다음을 통해 공유


네이티브 인증을 사용하여 샘플 Android(Kotlin) 앱에서 사용자 로그인

적용: 회색 X 기호가 있는 흰색 원 . Workforce 테넌트는 흰색 확인 표시 기호가 있는 녹색 원을 . 외부 테넌트(자세한알아보기)

이 빠른 시작에서는 Microsoft Entra의 네이티브 인증사용하여 등록, 로그인, 로그아웃 및 암호 재설정 시나리오를 보여 주는 Android 샘플 애플리케이션을 실행하는 방법을 알아봅니다.

필수 구성 요소

애플리케이션 등록

애플리케이션이 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 기록합니다.

공용 클라이언트 및 네이티브 인증 흐름 사용

이 앱이 공용 클라이언트이고 네이티브 인증을 사용할 수 있도록 지정하려면 공용 클라이언트 및 네이티브 인증 흐름을 사용하도록 설정합니다.

  1. 앱 등록 페이지에서 공용 클라이언트 및 네이티브 인증 흐름을 사용하도록 설정할 앱 등록을 선택합니다.
  2. 관리아래에서 인증선택합니다.
  3. 고급 설정공용 클라이언트 흐름을 허용합니다.
    1. 다음 모바일 및 데스크톱 흐름을 사용하도록 설정하려면을 선택합니다.
    2. 네이티브 인증사용하도록 설정하려면 선택합니다.
  4. 저장 단추를 선택합니다.

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

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

  2. 관리아래에서 API 권한을선택합니다.

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

사용자 흐름 만들기

다음 단계에 따라 사용자 흐름을 만듭니다.

  1. Microsoft Entra 관리 센터애플리케이션 개발자로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 외부 테넌트가 포함된 디렉터리를 사용해야 합니다.

    1. 도구 모음에서 디렉터리 + 구독 아이콘을 선택합니다.
    2. Portal 설정 | 디렉터리 + 구독 페이지에서 디렉터리 이름 목록에서 외부 테넌트 디렉터리를 찾은 다음 전환을 선택합니다.
  3. 사이드바 메뉴에서 Identity을 선택합니다.

  4. 외부 ID >사용자 흐름를 선택합니다.

  5. + 새 사용자 흐름선택합니다.

  6. 만들기 페이지에서 다음을 수행합니다.

    1. SignInSignUpSample같은 사용자 흐름에 대한 이름 입력합니다.

    2. ID 공급자 목록에서 전자 메일 계정 선택합니다. 이 ID 공급자를 사용하면 사용자가 전자 메일 주소를 사용하여 로그인하거나 등록할 수 있습니다.

    3. 전자 메일 계정아래에서 두 가지 옵션 중 하나를 선택할 수 있습니다. 이 자습서에서는 이메일 일회용 암호 선택합니다.

      • 암호있는 전자 메일: 새 사용자가 로그인 이름으로 전자 메일 주소를 사용하고 암호를 첫 번째 요소 자격 증명으로 사용하여 등록하고 로그인할 수 있습니다.
      • 이메일 일회용 암호: 새 사용자가 이메일 주소를 로그인 이름으로 사용하여 가입 및 로그인을 하고, 첫 번째 요소 자격 증명으로 이메일로 받은 일회용 암호를 사용할 수 있게 합니다. 이 옵션을 사용자 흐름 수준에서 사용할 수 있도록 하려면 테넌트 수준에서 전자 메일 OTP(일회용 암호)를 사용하도록 설정해야 합니다(모든 ID 공급자 선택한 다음, 일회용 암호 구성된 선택하고 옵션을 선택한 다음 저장).
    4. 사용자 특성등록 시 사용자로부터 수집하려는 특성을 선택할 수 있습니다. 이 가이드에서는 국가/지역 , City선택합니다.

  7. 선택만들기. 새 사용자 흐름이 사용자 흐름 목록에 표시됩니다. 필요한 경우 페이지를 새로 고칩니다.

사용자 흐름과 앱 연결

고객이 앱을 사용할 때 등록 또는 로그인 환경을 보려면 앱을 사용자 흐름과 연결해야 합니다. 많은 애플리케이션을 사용자 흐름과 연결할 수 있지만 단일 애플리케이션은 하나의 사용자 흐름에만 연결할 수 있습니다.

  1. 사이드바 메뉴에서 Identity을 선택합니다.

  2. 외부 ID을 선택한 다음, 사용자 흐름을 선택합니다.

  3. 사용자 흐름 페이지에서 앞에서 만든 사용자 흐름 이름(예: SignInSignUpSample )을 선택합니다.

  4. 사용 내에서, 애플리케이션선택합니다.

  5. 애플리케이션추가를 선택합니다.

  6. ciam-client-app 같은 목록에서 애플리케이션을 선택하거나 검색 상자를 사용하여 애플리케이션을 찾은 다음 선택합니다.

  7. 선택합니다.

앱을 사용자 흐름과 연결한 후에는 Microsoft Entra 관리 센터 내에서 애플리케이션에 대한 사용자의 등록 또는 로그인 환경을 시뮬레이션하여 사용자 흐름을 테스트할 수 있습니다. 등록 및 로그인 사용자 흐름을 테스트하려면 의 단계를 따르고을 사용하세요.

샘플 Android 모바일 애플리케이션 복제

  1. 터미널을 열고 코드를 유지하려는 디렉터리로 이동합니다.

  2. 다음 명령을 실행하여 GitHub에서 애플리케이션을 복제합니다.

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

샘플 Android 모바일 애플리케이션 구성

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

  2. 앱/src/main/res/raw/native_auth_sample_app_config.json 파일을 엽니다.

  3. 자리 표시자를 찾아라.

    • Enter_the_Application_Id_Here을(를) 이전에 등록한 앱의 애플리케이션(클라이언트) ID로 바꿉니다.
    • Enter_the_Tenant_Subdomain_Here 디렉터리(테넌트) 하위 도메인으로 바꿉니다. 예를 들어 테넌트 주 도메인이 contoso.onmicrosoft.com경우 contoso사용합니다. 테넌트 하위 도메인을 모르는 경우, 테넌트 세부 정보를보는 방법을 알아보세요.

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

샘플 Android 모바일 애플리케이션 실행 및 테스트

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

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

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

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

  3. 실행 단추를 선택합니다. 앱이 전자 메일 & OTP 화면을 엽니다.

    Android 애플리케이션에서 전자 메일을 입력하라는 사용자 프롬프트의 스크린샷

  4. 유효한 전자 메일 주소를 입력하고 등록 단추를 선택합니다. 앱이 코드 제출 화면을 열고 전자 메일 주소에서 OTP 코드를 받습니다.

    Android 애플리케이션에서 일회성 암호를 입력하라는 사용자 프롬프트 스크린샷

  5. 전자 메일 받은 편지함에서 받은 OTP 코드를 입력하고 다음선택합니다. 등록에 성공하면 앱이 자동으로 로그인합니다. 전자 메일 받은 편지함에서 OTP 코드를 받지 못한 경우 암호 다시 보내기 선택하여 잠시 후 다시 보낼 수 있습니다.

  6. 로그아웃하려면 로그아웃 단추를 선택합니다.

이 샘플에서 지원하는 다른 시나리오

이 샘플 앱은 다음 인증 흐름도 지원합니다.

  • 전자 메일 + 암호 암호가 있는 전자 메일로 로그인 또는 등록 흐름을 다룹니다.
  • 전자 메일 + 암호 등록은 전자 메일 및 암호로 등록하고 사용자 특성을 제출하는 사용자 특성을 포함합니다.
  • 암호 재설정 SSPR(셀프 서비스 암호 재설정)을 포함합니다.
  • 액세스 보호 API 사용자가 성공적으로 로그인하거나 로그인하고 액세스 토큰을 획득한 후 보호된 API 호출을 다룹니다.
  • 웹 브라우저로 대체 사용자가 어떤 이유로든 네이티브 인증을 통해 인증을 완료할 수 없는 경우 브라우저 기반 인증을 대체 메커니즘으로 사용하는 방법을 다룹니다.

암호 흐름을 사용하여 전자 메일 테스트

이 섹션에서는 사용자 특성 및 SSPR을 사용하여 암호 등록을 사용하는 전자 메일과 같은 변형을 사용하여 암호 흐름을 사용하여 전자 메일을 테스트합니다.

  1. 단계를 사용하여 사용자 흐름을 생성한 다음, 이번에는 인증 방법으로 이메일과 암호를 선택하세요. 국가/지역City 사용자 특성으로 구성해야 합니다. 또는 암호 전자 메일을 사용하도록 기존 사용자 흐름을 수정할 수 있습니다(외부 ID>사용자 흐름>SignInSignUpSample>ID 공급자>암호>저장).

  2. 애플리케이션을 새 사용자 흐름 연결하는 단계를 사용하여 새 사용자 흐름에 앱을 추가합니다.

  3. 샘플 앱을 실행한 다음 줄임표 메뉴(...)를 선택하여 더 많은 옵션을 엽니다.

  4. 전자 메일 + 암호 또는 사용자 특성 전자 메일 + 암호 등록 또는 암호 재설정같은 테스트하려는 시나리오를 선택한 다음 프롬프트를 따릅니다. 암호 재설정테스트하려면 먼저 사용자를 등록하고 테넌트에 있는 모든 사용자에 대해 전자 메일 일회용 암호 사용하도록 설정해야.

보호된 API 흐름 테스트 호출

샘플 Android 모바일 앱에서 네이티브 인증 을 사용하여 보호된 웹 API를 호출하려면, 단계에 따라 수행하십시오.

다음 단계