다음을 통해 공유


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

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

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

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

필수 조건

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

iOS 앱에 MSAL 프레임워크 추가

  1. Xcode에서 iOS 프로젝트를 엽니다.
  2. 파일 메뉴에서 패키지 종속성 추가...를 선택합니다.
  3. 패키지 URL로 https://github.com/AzureAD/microsoft-authentication-library-for-objc 입력 및 패키지 추가 선택

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

SDK 인스턴스 만들기

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

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

    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. 빌드하려면 프로젝트의 도구 모음에서 제품>빌드를 선택합니다.

선택 사항: 로깅 구성

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

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

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

다음 단계