次の方法で共有


チュートリアル: ネイティブ認証用に iOS/macOS アプリを準備する

適用対象: 灰色の X 記号がある白い円。 従業員テナント 白いチェック マーク記号がある緑の円。 外部テナント (詳細情報)

このチュートリアルでは、Microsoft Authentication Library (MSAL) ネイティブ認証 SDK フレームワークを iOS/macOS Swift アプリに追加する方法について説明します。

このチュートリアルでは、次の操作を行います。

  • iOS/macOS アプリに MSAL フレームワークを追加します。
  • SDK インスタンスを作成します。

前提条件

  • Xcodeの
  • まだ行っていない場合は、「 ネイティブ認証を使用してサンプル 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 を追加するための詳細およびその他のメカニズムについては、 プロジェクトの Readme ファイルを参照してください。

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 でのログ記録に関するページを参照してください。

次のステップ