적용 대상: Workforce 테넌트,
외부 테넌트 (자세히 알아보기)
이 자습서에서는 iOS/macOS Swift 앱에 MSAL(Microsoft 인증 라이브러리) 네이티브 인증 SDK 프레임워크를 추가하는 방법을 보여 줍니다.
이 자습서에서는 다음을 수행합니다.
- iOS/macOS 앱에 MSAL 프레임워크를 추가합니다.
- SDK 인스턴스를 만듭니다.
필수 구성 요소
- 엑스코드
- 아직 하지 않은 경우, 네이티브 인증 을 사용하여 샘플 iOS(Swift) 모바일 앱에서 사용자 로그인에 관한 지침을 따르고 외부 테넌트에 앱을 등록하세요. 다음 단계를 완료해야 합니다.
- 애플리케이션을 등록합니다.
- 공용 클라이언트 및 네이티브 인증 흐름을 사용하도록 설정합니다.
- API 권한을 부여합니다.
- 사용자 흐름을 만듭니다.
- 앱을 사용자 흐름과 연결합니다.
- iOS/macOS 프로젝트
iOS/macOS 앱에 MSAL 프레임워크 추가
- Xcode에서 iOS/macOS 프로젝트를 엽니다.
- 파일 메뉴에서 패키지 종속성 추가...을 선택합니다.
- 패키지 URL로
https://github.com/AzureAD/microsoft-authentication-library-for-objc
입력하고 패키지 추가 선택합니다. - 프로젝트의 기능에 새 키체인 그룹을 추가합니다 . iOS에서
com.microsoft.adalcache
사용하고 macOS에서com.microsoft.identity.universalstorage
사용합니다.
프로젝트에 MSAL을 추가하는 자세한 내용 및 기타 메커니즘은 프로젝트 추가 정보 파일참조하세요.
SDK 인스턴스 만들기
import MSAL
클래스의 맨 위에ViewController
추가하여 MSAL 라이브러리를 뷰 컨트롤러로 가져옵니다.nativeAuth
함수 바로 앞에 다음 코드를 추가하여ViewController
클래스에viewDidLoad()
멤버 변수를 추가합니다.var nativeAuth: MSALNativeAuthPublicClientApplication!
다음으로
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)") }
다음 값을 Microsoft Entra 관리 센터의 값으로 바꿉다.
Enter_the_Application_Id_Here
값을 찾아 이전에 등록한 앱의 애플리케이션(클라이언트) ID로 바꿉니다.Enter_the_Tenant_Subdomain_Here
찾아 디렉터리(테넌트) 하위 도메인으로 바꿉니다. 예를 들어 테넌트 주 도메인이contoso.onmicrosoft.com
경우contoso
사용합니다. 디렉터리(테넌트) 하위 도메인이 없는 경우 테넌트 세부 정보를 읽는 방법을배우십시오.챌린지 유형은 앱이 지원하는 인증 방법에 대해 Microsoft Entra에 알리는 데 사용하는 값 목록입니다.
- 전자 메일 일회용 암호를 사용하여 등록 및 로그인 흐름의 경우
[.OOB]
사용합니다. - 전자 메일 및 암호가 있는 등록 및 로그인 흐름의 경우
[.OOB, .password]
사용합니다. - SSPR(셀프 서비스 암호 재설정)의 경우
[.OOB]
사용합니다.
- 전자 메일 일회용 암호를 사용하여 등록 및 로그인 흐름의 경우
빌드하려면 프로젝트의 도구 모음에서 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 앱에 등록 추가