다음을 통해 공유


자습서: 네이티브 인증을 위한 iOS/macOS 앱 준비

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

이 자습서에서는 iOS/macOS Swift 앱에 MSAL(Microsoft 인증 라이브러리) 네이티브 인증 SDK 프레임워크를 추가하는 방법을 보여 줍니다.

이 자습서에서는 다음을 수행합니다.

  • iOS/macOS 앱에 MSAL 프레임워크를 추가합니다.
  • SDK 인스턴스를 만듭니다.

필수 구성 요소

  • 엑스코드
  • 아직 하지 않은 경우, 네이티브 인증 을 사용하여 샘플 iOS(Swift) 모바일 앱에서 사용자 로그인에 관한 지침을 따르고 외부 테넌트에 앱을 등록하세요. 다음 단계를 완료해야 합니다.
    • 애플리케이션을 등록합니다.
    • 공용 클라이언트 및 네이티브 인증 흐름을 사용하도록 설정합니다.
    • API 권한을 부여합니다.
    • 사용자 흐름을 만듭니다.
    • 앱을 사용자 흐름과 연결합니다.
  • iOS/macOS 프로젝트

iOS/macOS 앱에 MSAL 프레임워크 추가

  1. Xcode에서 iOS/macOS 프로젝트를 엽니다.
  2. 파일 메뉴에서 패키지 종속성 추가...을 선택합니다.
  3. 패키지 URL로 https://github.com/AzureAD/microsoft-authentication-library-for-objc 입력하고 패키지 추가 선택합니다.
  4. 프로젝트의 기능에 새 키체인 그룹을 추가합니다 . iOS에서 com.microsoft.adalcache 사용하고 macOS에서 com.microsoft.identity.universalstorage 사용합니다.

프로젝트에 MSAL을 추가하는 자세한 내용 및 기타 메커니즘은 프로젝트 추가 정보 파일참조하세요.

SDK 인스턴스 만들기

  1. import MSAL 클래스의 맨 위에 ViewController 추가하여 MSAL 라이브러리를 뷰 컨트롤러로 가져옵니다.

  2. nativeAuth 함수 바로 앞에 다음 코드를 추가하여 ViewController 클래스에 viewDidLoad() 멤버 변수를 추가합니다.

    var nativeAuth: MSALNativeAuthPublicClientApplication!
    
  3. 다음으로 viewDidLoad() 함수에 다음 코드를 추가합니다.

     do {
        nativeAuth = try MSALNativeAuthPublicClientApplication(
            clientId: "Enter_the_Application_Id_Here",
            tenantSubdomain: "Enter_the_Tenant_Subdomain_Here",
            challengeTypes: [.OOB]
        )
    
        print("Initialized Native Auth successfully.")
     } catch {
        print("Unable to initialize MSAL \(error)")
     }
    
  4. 다음 값을 Microsoft Entra 관리 센터의 값으로 바꿉다.

    1. Enter_the_Application_Id_Here 값을 찾아 이전에 등록한 앱의 애플리케이션(클라이언트) ID로 바꿉니다.

    2. Enter_the_Tenant_Subdomain_Here 찾아 디렉터리(테넌트) 하위 도메인으로 바꿉니다. 예를 들어 테넌트 주 도메인이 contoso.onmicrosoft.com경우 contoso사용합니다. 디렉터리(테넌트) 하위 도메인이 없는 경우 테넌트 세부 정보를 읽는 방법을배우십시오.

      챌린지 유형은 앱이 지원하는 인증 방법에 대해 Microsoft Entra에 알리는 데 사용하는 값 목록입니다.

      • 전자 메일 일회용 암호를 사용하여 등록 및 로그인 흐름의 경우 [.OOB]사용합니다.
      • 전자 메일 및 암호가 있는 등록 및 로그인 흐름의 경우 [.OOB, .password]사용합니다.
      • SSPR(셀프 서비스 암호 재설정)의 경우 [.OOB]사용합니다.

      챌린지 유형에 대해 자세히 알아봅니다.

  5. 빌드하려면 프로젝트의 도구 모음에서 Product>Build 선택합니다.

선택 사항: 로깅 구성

MSAL은 로깅을 사용하도록 설정하고 구성하는 데 사용할 수 있는 로깅 API를 제공합니다. MSAL의 모든 디버그 출력을 보려면 viewDidLoad() 함수의 시작 부분에 다음 코드를 추가합니다.

MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
   if !containsPII {
      print("MSAL: \(message ?? "")")
   }
}

이렇게 하면 MSAL의 모든 디버그 로그가 출력됩니다. 이 로그는 문제를 진단하고 네이티브 인증 흐름의 작동 방식을 학습하는 데 도움이 될 수 있습니다. 로그 수준 및 모범 사례를 구성하는 방법에 대한 자세한 내용은 iOS/macOS 대한 MSAL의로깅을 참조하세요.

다음 단계

자습서: 네이티브 인증 사용하여 iOS/macOS 앱에 등록 추가