次の方法で共有


ネイティブ認証を使用してサンプル iOS (Swift) モバイル アプリでユーザーをサインインする

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

このクイック スタートでは、Microsoft Entra External ID を使用して、サインアップ、サインイン、サインアウト、パスワードリセットのシナリオを示す iOS サンプル アプリケーションを実行する方法について説明します。

[前提条件]

パブリック クライアントとネイティブ認証フローを有効にする

このアプリがパブリック クライアントであり、ネイティブ認証を使用できることを指定するには、パブリック クライアントとネイティブ認証フローを有効にします。

  1. アプリ登録ページから、パブリック クライアントとネイティブ認証フローを有効にするアプリ登録を選択します。
  2. [管理] で、 [認証] を選択します。
  3. [詳細設定 で、パブリック クライアント フローを許可します。
    1. [次のモバイルとデスクトップのフローを有効にする] で、[はい] を選びます。
    2. ネイティブ認証 を有効にするには、[はい] を選択します。
  4. [保存] ボタンを選びます。

サンプルの iOS モバイル アプリケーションを複製する

  1. ターミナルを開き、コードを保持するディレクトリに移動します。

  2. 次のコマンドを実行して、GitHub から iOS モバイル アプリケーションを複製します。

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-ios-sample.git
    
  3. リポジトリが複製されたディレクトリに移動します。

    cd ms-identity-ciam-native-auth-ios-sample
    

サンプル iOS モバイル アプリケーションを構成する

  1. Xcode で NativeAuthSampleApp.xcodeproj プロジェクトを 開きます。

  2. NativeAuthSampleApp/Configuration.swift ファイルを開きます。

  3. プレースホルダーを見つけてください。

    • Enter_the_Application_Id_Here を、前に登録したアプリのアプリケーション (クライアント) ID に置き換えます。
    • Enter_the_Tenant_Subdomain_Here をディレクトリ (テナント) サブドメインに置き換えます。 たとえば、テナントのプライマリ ドメインが contoso.onmicrosoft.comされている場合は、contoso を使用します。 テナント サブドメインがない場合は、テナントの詳細を 読み取る方法について説明します。

ビルドするスキームとビルド先の製品を実行する場所を必ず選択してください。 各スキームには、使用可能な宛先を表す実際のデバイスまたはシミュレートされたデバイスの一覧が含まれています。

サンプル iOS モバイル アプリケーションの実行とテスト

コードをビルドして実行するには、Xcode の [製品] メニューから [実行] を選択します。 ビルドが成功すると、Xcode はシミュレーターでサンプル アプリを起動します。

iOS アプリで電子メールを入力するためのユーザー プロンプトのスクリーンショット。

このガイドでは 、電子メールワンタイム パスコードの使用状況を テストします。 有効なメール アドレスを入力し、[ サインアップ] を選択して、送信コード画面を起動します。

iOS アプリでワンタイム パスコード (OTP) を入力するためのユーザー プロンプトのスクリーンショット。

前の画面でメール アドレスを入力すると、アプリケーションから確認コードが送信されます。 受信したコードを送信すると、アプリケーションによって前の画面に戻り、自動的にサインインします。

このサンプルでサポートされるその他のシナリオ

サンプル アプリでは、次のフローがサポートされています。

  • 電子メール + パスワード は、パスワードを含む電子メールによるサインインまたはサインアップ フローを対象とします。
  • ユーザー属性を使用した電子メールとパスワードのサインアップ では、電子メールとパスワードによるサインアップと、ユーザー属性の送信について説明します。
  • パスワード リセット には、セルフサービス パスワード リセット (SSPR) が含まれます。
  • Access Protected API では、ユーザーが正常にサインアップまたはサインインしてアクセス トークンを取得した後に、保護された API を呼び出す方法について説明します。
  • Web ブラウザーへのフォールバック では、ユーザーが何らかの理由でネイティブ認証を使用して認証を完了できない場合に、ブラウザー ベースの認証をフォールバック メカニズムとして使用する方法について説明します。

パスワード フローを使用して電子メールをテストする

このセクションでは、パスワードを使用した電子メールのフロー、およびそのバリエーション(ユーザー属性とSSPRを使用したパスワードサインアップ)をテストします。

  1. ユーザー フローを作成して新しい ユーザー フローを作成 する手順を使用しますが、今回は認証方法として [パスワード付きの電子メール] を選択します。 ユーザー属性として 国/地域市区町村 を構成する必要があります。 または、既存のユーザー フローを変更して、パスワードで電子メールを使用することもできます (外部 ID の選択>ユーザー フロー>SignInSignUpSample>Identity プロバイダー>Email with password>Save)。

  2. 新しいユーザー フローにアプリを追加するには、アプリケーションを新しいユーザー フローに関連付ける手順を使用します。

  3. サンプル アプリを実行し、省略記号メニュー (...) を選択して、その他のオプションを開きます。

  4. テストするシナリオ ( [Email + password]\(電子メール + パスワード \) や [ Email + password sign-up with user attributes]\(ユーザー属性を使用した電子メール + パスワード + パスワードのサインアップ \) や [パスワードのリセット]など) を選択し、プロンプトに従います。 パスワードリセットをテストするには、まずユーザーをサインアップし、テナント内のすべてのユーザーに対して電子メールワンタイムパスコードを有効にする必要があります。

保護された API フローのテスト呼び出し

ネイティブ認証を使用して サンプルの Android モバイル アプリから保護された Web API を呼び出すことで、サンプル iOS モバイル アプリで 保護された Web API を呼び出す方法に関するページの手順を使用します。

次のステップ