適用対象: 従業員テナント
外部テナント (詳細情報)
このチュートリアルでは、Microsoft Authentication Library (MSAL) ネイティブ認証 SDK フレームワークを iOS/macOS Swift アプリに追加する方法について説明します。
このチュートリアルでは、次の操作を行います。
- iOS/macOS アプリに MSAL フレームワークを追加します。
- SDK インスタンスを作成します。
前提条件
- Xcodeの
- まだ行っていない場合は、「 ネイティブ認証を使用してサンプル 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 を追加するための詳細およびその他のメカニズムについては、 プロジェクトの Readme ファイルを参照してください。
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 でのログ記録に関するページを参照してください。