Xamarin Forms アプリに認証を追加するAdd authentication to your Xamarin Forms app

概要Overview

このトピックでは、クライアント アプリケーションから App Service モバイル アプリのユーザーを認証する方法について説明します。This topic shows you how to authenticate users of an App Service Mobile App from your client application. このチュートリアルでは、App Service でサポートされている ID プロバイダーを使用して、Xamarin Forms クイック スタート プロジェクトに認証を追加します。In this tutorial, you add authentication to the Xamarin Forms quickstart project using an identity provider that is supported by App Service. モバイル アプリによって正常に認証、承認されると、ユーザー ID 値が表示され、制限付きのテーブル データにアクセスできます。After being successfully authenticated and authorized by your Mobile App, the user ID value is displayed, and you will be able to access restricted table data.

前提条件Prerequisites

このチュートリアルで最善の結果が得られるように、最初にチュートリアル「Xamarin.Forms アプリの作成」を完了しておくことをお勧めします。For the best result with this tutorial, we recommend that you first complete the Create a Xamarin Forms app tutorial. このチュートリアルを完了すると、マルチプラットフォーム TodoList アプリである Xamarin Forms プロジェクトを作成できます。After you complete this tutorial, you will have a Xamarin Forms project that is a multi-platform TodoList app.

ダウンロードしたクイック スタートのサーバー プロジェクトを使用しない場合は、認証拡張機能パッケージをプロジェクトに追加する必要があります。If you do not use the downloaded quick start server project, you must add the authentication extension package to your project. サーバーの拡張機能パッケージの詳細については、「Azure Mobile Apps 用 .NET バックエンド サーバー SDK の操作」を参照してください。For more information about server extension packages, see Work with the .NET backend server SDK for Azure Mobile Apps.

アプリケーションを認証に登録し、App Services を構成するRegister your app for authentication and configure App Services

最初に、ID プロバイダーのサイトでアプリを登録する必要があります。その後、プロバイダーによって生成された資格情報を Mobile Apps バックエンドに設定します。First, you need to register your app at an identity provider's site, and then you will set the provider-generated credentials in the Mobile Apps back end.

  1. 次のプロバイダー固有の指示に従い、任意の ID プロバイダーを構成します。Configure your preferred identity provider by following the provider-specific instructions:

  2. アプリ内でサポートするプロバイダーごとに、前の手順を繰り返します。Repeat the previous steps for each provider you want to support in your app.

許可されている外部リダイレクト URL にアプリを追加するAdd your app to the Allowed External Redirect URLs

認証をセキュリティで保護するには、アプリ用の新しい URL スキームの定義が必要になります。Secure authentication requires that you define a new URL scheme for your app. これによって、認証プロセスが完了すると認証システムからアプリにリダイレクトできます。This allows the authentication system to redirect back to your app once the authentication process is complete. このチュートリアル全体を通して、URL スキーム appname を使用します。In this tutorial, we use the URL scheme appname throughout. ただし、選択したあらゆる URL スキームを使用できます。However, you can use any URL scheme you choose. URL スキームは、モバイル アプリに対して一意である必要があります。It should be unique to your mobile application. サーバー側でリダイレクトを有効にするには、以下の手順に従います。To enable the redirection on the server side:

  1. [Azure Portal] で、App Service を選択します。In the Azure portal, select your App Service.

  2. [認証/承認] メニュー オプションをクリックします。Click the Authentication / Authorization menu option.

  3. [Allowed External Redirect URLs (許可されている外部リダイレクト URL)]url_scheme_of_your_app://easyauth.callback を入力します。In the Allowed External Redirect URLs, enter url_scheme_of_your_app://easyauth.callback. この文字列の url_scheme_of_your_app は、モバイル アプリケーションの URL スキームです。The url_scheme_of_your_app in this string is the URL Scheme for your mobile application. プロトコルの通常の URL 仕様 (文字と数字のみを使用し、文字で始まる) に従う必要があります。It should follow normal URL specification for a protocol (use letters and numbers only, and start with a letter). 数か所で URL スキームに合わせてモバイル アプリケーション コードを調整する必要があるため、選択した文字列をメモしておく必要があります。You should make a note of the string that you choose as you will need to adjust your mobile application code with the URL Scheme in several places.

  4. Click OK.Click OK.

  5. [Save] をクリックします。Click Save.

アクセス許可を、認証されたユーザーだけに制限するRestrict permissions to authenticated users

既定では、Mobile Apps バックエンドの API は匿名で呼び出すことができます。By default, APIs in a Mobile Apps back end can be invoked anonymously. 次に、認証されたクライアントのみにアクセスを制限する必要があります。Next, you need to restrict access to only authenticated clients.

  • Node.js バックエンド (Azure Portal 経由):Node.js back end (via the Azure portal) :

    Mobile Apps の設定で [Easy Tables] をクリックし、目的のテーブルを選択します。In your Mobile Apps settings, click Easy Tables and select your table. [アクセス許可の変更] をクリックし、すべてのアクセス許可に対して [Authenticated access only (認証済みアクセスのみ)] を選択し、[保存] をクリックします。Click Change permissions, select Authenticated access only for all permissions, and then click Save.

  • .NET バックエンド (C#):.NET back end (C#):

    サーバー プロジェクトで、[コントローラー] > [TodoItemController.cs] の順に移動します。In the server project, navigate to Controllers > TodoItemController.cs. 次のように、 [Authorize] 属性を TodoItemController クラスに追加します。Add the [Authorize] attribute to the TodoItemController class, as follows. アクセスを特定のメソッドのみに制限するには、この属性を、クラスではなく、そのメソッドのみに適用するだけです。To restrict access only to specific methods, you can also apply this attribute just to those methods instead of the class. サーバー プロジェクトを発行します。Republish the server project.

      [Authorize]
      public class TodoItemController : TableController<TodoItem>
    
  • Node.js バックエンド (Node.js コード経由) :Node.js backend (via Node.js code) :

    テーブルへのアクセスに対して認証を要求するには、Node.js サーバー スクリプトに次の行を追加します。To require authentication for table access, add the following line to the Node.js server script:

      table.access = 'authenticated';
    

    詳細については、「方法: テーブルへのアクセスに認証を要求する」を参照してください。For more details, see How to: Require authentication for access to tables. 自社サイトからクイック スタート コード プロジェクトをダウンロードする方法については、「 方法: Git を使用して Node.js バックエンド クイック スタート コード プロジェクトをダウンロードする」を参照してください。To learn how to download the quickstart code project from your site, see How to: Download the Node.js backend quickstart code project using Git.

ポータブル クラス ライブラリに認証を追加するAdd authentication to the portable class library

Mobile Apps では、App Service 認証を使用したユーザーのサインインに、MobileServiceClientLoginAsync 拡張メソッドを使います。Mobile Apps uses the LoginAsync extension method on the MobileServiceClient to sign in a user with App Service authentication. このサンプルでは、アプリにプロバイダーのサインイン インターフェイスが表示される、サーバー側管理認証フローを使用します。This sample uses a server-managed authentication flow that displays the provider's sign-in interface in the app. 詳細については、「サーバー側管理認証」を参照してください。For more information, see Server-managed authentication. 運用アプリのユーザー エクスペリエンスを向上させるためには、代わりにクライアント側管理認証を使用することを検討してください。To provide a better user experience in your production app, you should consider instead using Client-managed authentication.

Xamarin Forms プロジェクトで認証するには、アプリのポータブル クラス ライブラリに IAuthenticate インターフェイスを定義します。To authenticate with a Xamarin Forms project, define an IAuthenticate interface in the Portable Class Library for the app. 次に、ポータブル クラス ライブラリで定義されているユーザー インターフェイスに [サインイン] ボタンを追加します。このボタンは、認証を開始するためにクリックします。Then add a Sign-in button to the user interface defined in the Portable Class Library, which you click to start authentication. 認証が成功すると、モバイル アプリ バックエンドからデータが読み込まれます。Data is loaded from the mobile app backend after successful authentication.

アプリでサポートされているプラットフォームごとに IAuthenticate インターフェイスを実装します。Implement the IAuthenticate interface for each platform supported by your app.

  1. Visual Studio または Xamarin Studio で、ポータブル クラス ライブラリ プロジェクトである Portable というプロジェクトから App.cs を開きます。その後で、次の using ステートメントを追加します。In Visual Studio or Xamarin Studio, open App.cs from the project with Portable in the name, which is Portable Class Library project, then add the following using statement:

     using System.Threading.Tasks;
    
  2. App.cs に、次の IAuthenticate インターフェイス定義を、App クラス定義の直前に追加します。In App.cs, add the following IAuthenticate interface definition immediately before the App class definition.

     public interface IAuthenticate
     {
         Task<bool> Authenticate();
     }
    
  3. インターフェイスをプラットフォーム固有の実装で初期化するように、次の静的メンバーを App クラスに追加します。To initialize the interface with a platform-specific implementation, add the following static members to the App class.

     public static IAuthenticate Authenticator { get; private set; }
    
     public static void Init(IAuthenticate authenticator)
     {
         Authenticator = authenticator;
     }
    
  4. ポータブル クラス ライブラリ プロジェクトから TodoList.xaml を開き、既存のボタンの後ろに、 buttonsPanel レイアウト要素の次の Button 要素を追加します。Open TodoList.xaml from the Portable Class Library project, add the following Button element in the buttonsPanel layout element, after the existing button:

       <Button x:Name="loginButton" Text="Sign-in" MinimumHeightRequest="30"
         Clicked="loginButton_Clicked"/>
    

    このボタンは、モバイル アプリ バックエンドによるサーバー側管理認証をトリガーします。This button triggers server-managed authentication with your mobile app backend.

  5. ポータブル クラス ライブラリ プロジェクトから TodoList.xaml.cs を開き、 TodoList クラスに次のフィールドを追加します。Open TodoList.xaml.cs from the Portable Class Library project, then add the following field to the TodoList class:

     // Track whether the user has authenticated.
     bool authenticated = false;
    
  6. OnAppearing メソッドを次のコードに置き換えます。Replace the OnAppearing method with the following code:

     protected override async void OnAppearing()
     {
         base.OnAppearing();
    
         // Refresh items only when authenticated.
         if (authenticated == true)
         {
             // Set syncItems to true in order to synchronize the data
             // on startup when running in offline mode.
             await RefreshItems(true, syncItems: false);
    
             // Hide the Sign-in button.
             this.loginButton.IsVisible = false;
         }
     }
    

    このコードにより、認証の完了後にのみ、データがサービスによって更新されるようになります。This code makes sure that data is only refreshed from the service after you have been authenticated.

  7. Clicked イベントの次のハンドラーを TodoList クラスに追加します。Add the following handler for the Clicked event to the TodoList class:

     async void loginButton_Clicked(object sender, EventArgs e)
     {
         if (App.Authenticator != null)
             authenticated = await App.Authenticator.Authenticate();
    
         // Set syncItems to true to synchronize the data on startup when offline is enabled.
         if (authenticated == true)
             await RefreshItems(true, syncItems: false);
     }
    
  8. 変更を保存し、ポータブル クラス ライブラリ プロジェクトをリビルドしてエラーがないことを確認します。Save your changes and rebuild the Portable Class Library project verifying no errors.

Android アプリに認証を追加するAdd authentication to the Android app

このセクションでは、Android アプリ プロジェクト内に IAuthenticate インターフェイスを実装する方法について説明します。This section shows how to implement the IAuthenticate interface in the Android app project. Android デバイスをサポートしない場合、このセクションはスキップしてください。Skip this section if you are not supporting Android devices.

  1. Visual Studio または Xamarin Studio で、droid プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。In Visual Studio or Xamarin Studio, right-click the droid project, then Set as StartUp Project.
  2. F5 キーを押してデバッガーでプロジェクトを開始し、アプリの開始後に、状態コード 401 のハンドルされない例外 (許可されていません) が発生することを確認します。Press F5 to start the project in the debugger, then verify that an unhandled exception with a status code of 401 (Unauthorized) is raised after the app starts. 401 コードは、バックエンドへのアクセスが承認済みのユーザーのみに制限されているために生成されます。The 401 code is produced because access on the backend is restricted to authorized users only.
  3. Android プロジェクトの MainActivity.cs を開き、次の using ステートメントを追加します。Open MainActivity.cs in the Android project and add the following using statements:

     using Microsoft.WindowsAzure.MobileServices;
     using System.Threading.Tasks;
    
  4. 次のように、MainActivity クラスを更新して IAuthenticate インターフェイスを実装します。Update the MainActivity class to implement the IAuthenticate interface, as follows:

     public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity, IAuthenticate
    
  5. 次のように、MobileServiceUser フィールドのほか、IAuthenticate インターフェイスに必要な Authenticate メソッドを追加して、MainActivity クラスを更新します。Update the MainActivity class by adding a MobileServiceUser field and an Authenticate method, which is required by the IAuthenticate interface, as follows:

     // Define a authenticated user.
     private MobileServiceUser user;
    
     public async Task<bool> Authenticate()
     {
         var success = false;
         var message = string.Empty;
         try
         {
             // Sign in with Facebook login using a server-managed flow.
             user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, 
                 MobileServiceAuthenticationProvider.Facebook, "{url_scheme_of_your_app}");
             if (user != null)
             {
                 message = string.Format("you are now signed-in as {0}.",
                     user.UserId);
                 success = true;
             }
         }
         catch (Exception ex)
         {
             message = ex.Message;
         }
    
         // Display the success or failure message.
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.SetMessage(message);
         builder.SetTitle("Sign-in result");
         builder.Create().Show();
    
         return success;
     }
    

    Facebook 以外の ID プロバイダーを使用している場合、MobileServiceAuthenticationProvider には別の値を選択してください。If you are using an identity provider other than Facebook, choose a different value for MobileServiceAuthenticationProvider.

  6. <application> 要素に次の XML を追加して、AndroidManifest.xml ファイルを更新します。Update the AndroidManifest.xml file by adding the following XML inside the <application> element:

    <activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity" android:launchMode="singleTop" android:noHistory="true">
      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="{url_scheme_of_your_app}" android:host="easyauth.callback" />
      </intent-filter>
    </activity>
    

    {url_scheme_of_your_app} を自分の URL スキームで置換します。Replace {url_scheme_of_your_app} with your URL scheme.

  7. LoadApplication() の呼び出しの前にある MainActivity クラスの OnCreate メソッドに次のコードを追加します。Add the following code to the OnCreate method of the MainActivity class before the call to LoadApplication():

     // Initialize the authenticator before loading the app.
     App.Init((IAuthenticate)this);
    

    このコードにより、アプリの読み込み前に Authenticator が初期化されるようになります。This code ensures the authenticator is initialized before the app loads.

  8. アプリをリビルドして実行します。その後で、選択した認証プロバイダーを使用してサインインし、認証されたユーザーとしてデータにアクセスできることを確認します。Rebuild the app, run it, then sign in with the authentication provider you chose and verify you are able to access data as an authenticated user.

トラブルシューティングTroubleshooting

アプリケーションが でクラッシュしたJava.Lang.NoSuchMethodError: No static method startActivityThe application crashed with Java.Lang.NoSuchMethodError: No static method startActivity

場合によっては、Visual Studio で単なる警告として表示されるサポート パッケージの競合が実行時にこの例外としてアプリケーション クラッシュとして表示されます。In some cases, conflicts in the support packages displayed as just a warning in the Visual studio, but the application crashes with this exception at runtime. この場合、プロジェクトで参照されるすべてのサポート パッケージのバージョンが同じであることを確認する必要があります。In this case you need to make sure that all the support packages referenced in your project have the same version. Azure Mobile Apps の NuGet パッケージには、Android プラットフォームに関して Xamarin.Android.Support.CustomTabs の依存関係があるため、プロジェクトで新しいサポート パッケージを使用する場合は、必要なバージョンを使用してこのパッケージを直接インストールし、競合を回避する必要があります。The Azure Mobile Apps NuGet package has Xamarin.Android.Support.CustomTabs dependency for Android platform, so if your project uses newer support packages you need to install this package with required version directly to avoid conflicts.

iOS アプリに認証を追加するAdd authentication to the iOS app

このセクションでは、iOS アプリ プロジェクト内に IAuthenticate インターフェイスを実装する方法について説明します。This section shows how to implement the IAuthenticate interface in the iOS app project. iOS デバイスをサポートしない場合、このセクションはスキップしてください。Skip this section if you are not supporting iOS devices.

  1. Visual Studio または Xamarin Studio で、iOS プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。In Visual Studio or Xamarin Studio, right-click the iOS project, then Set as StartUp Project.
  2. F5 キーを押してデバッガーでプロジェクトを開始し、アプリの開始後に、状態コード 401 のハンドルされない例外 (許可されていません) が発生することを確認します。Press F5 to start the project in the debugger, then verify that an unhandled exception with a status code of 401 (Unauthorized) is raised after the app starts. 401 応答は、バックエンドへのアクセスが承認済みのユーザーのみに制限されているために生成されます。The 401 response is produced because access on the backend is restricted to authorized users only.
  3. iOS プロジェクトの AppDelegate.cs を開き、次の using ステートメントを追加します。Open AppDelegate.cs in the iOS project and add the following using statements:

     using Microsoft.WindowsAzure.MobileServices;
     using System.Threading.Tasks;
    
  4. 次のように、AppDelegate クラスを更新して IAuthenticate インターフェイスを実装します。Update the AppDelegate class to implement the IAuthenticate interface, as follows:

     public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate, IAuthenticate
    
  5. 次のように、MobileServiceUser フィールドのほか、IAuthenticate インターフェイスに必要な Authenticate メソッドを追加して、AppDelegate クラスを更新します。Update the AppDelegate class by adding a MobileServiceUser field and an Authenticate method, which is required by the IAuthenticate interface, as follows:

     // Define a authenticated user.
     private MobileServiceUser user;
    
     public async Task<bool> Authenticate()
     {
         var success = false;
         var message = string.Empty;
         try
         {
             // Sign in with Facebook login using a server-managed flow.
             if (user == null)
             {
                 user = await TodoItemManager.DefaultManager.CurrentClient
                     .LoginAsync(UIApplication.SharedApplication.KeyWindow.RootViewController,
                     MobileServiceAuthenticationProvider.Facebook, "{url_scheme_of_your_app}");
                 if (user != null)
                 {
                     message = string.Format("You are now signed-in as {0}.", user.UserId);
                     success = true;
                 }
             }
         }
         catch (Exception ex)
         {
            message = ex.Message;
         }
    
         // Display the success or failure message.
         UIAlertView avAlert = new UIAlertView("Sign-in result", message, null, "OK", null);
         avAlert.Show();
    
         return success;
     }
    

    Facebook 以外の ID プロバイダーを使用している場合、[MobileServiceAuthenticationProvider] には別の値を選択してください。If you are using an identity provider other than Facebook, choose a different value for [MobileServiceAuthenticationProvider].

  6. 次のように OpenUrl メソッド オーバーロードを追加して、AppDelegate クラスを更新します。Update the AppDelegate class by adding the OpenUrl method overload, as follows:

     public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
     {
         return TodoItemManager.DefaultManager.CurrentClient.ResumeWithURL(url);
     }
    
  7. LoadApplication() の呼び出しの前の FinishedLaunching メソッドに、次のコード行を追加します。Add the following line of code to the FinishedLaunching method before the call to LoadApplication():

     App.Init(this);
    

    このコードにより、アプリの読み込み前に Authenticator が初期化されるようになります。This code ensures the authenticator is initialized before the app is loaded.

  8. Info.plist を開き、[URL Type] を追加します。Open Info.plist and add a URL Type. [Identifier] を任意の名前に、[URL Schemes] をアプリの URL スキームに、[Role] を [None] に設定します。Set the Identifier to a name of your choosing, the URL Schemes to the URL scheme for your app, and the Role to None.

  9. アプリをリビルドして実行します。その後で、選択した認証プロバイダーを使用してサインインし、認証されたユーザーとしてデータにアクセスできることを確認します。Rebuild the app, run it, then sign in with the authentication provider you chose and verify you are able to access data as an authenticated user.

Windows 10 (Phone を含む) アプリ プロジェクトに認証を追加するAdd authentication to Windows 10 (including Phone) app projects

このセクションでは、Windows 10 アプリ プロジェクト内に IAuthenticate インターフェイスを実装する方法について説明します。This section shows how to implement the IAuthenticate interface in the Windows 10 app projects. 同じ手順をユニバーサル Windows プラットフォーム (UWP) プロジェクトにも適用できますが、UWP プロジェクトを使用します (相違点が注記されています)。The same steps apply for Universal Windows Platform (UWP) projects, but using the UWP project (with noted changes). Windows デバイスをサポートしない場合、このセクションはスキップしてください。Skip this section if you are not supporting Windows devices.

  1. Visual Studio で、UWP プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。In Visual Studio, right-click the UWP project, then Set as StartUp Project.
  2. F5 キーを押してデバッガーでプロジェクトを開始し、アプリの開始後に、状態コード 401 のハンドルされない例外 (許可されていません) が発生することを確認します。Press F5 to start the project in the debugger, then verify that an unhandled exception with a status code of 401 (Unauthorized) is raised after the app starts. 401 応答は、バックエンドへのアクセスが承認済みのユーザーのみに制限されているために発生します。The 401 response happens because access on the backend is restricted to authorized users only.
  3. Windows アプリ プロジェクトの MainPage.xaml.cs を開き、次の using ステートメントを追加します。Open MainPage.xaml.cs for the Windows app project and add the following using statements:

     using Microsoft.WindowsAzure.MobileServices;
     using System.Threading.Tasks;
     using Windows.UI.Popups;
     using <your_Portable_Class_Library_namespace>;
    

    <your_Portable_Class_Library_namespace> を、ポータブル クラス ライブラリの名前空間に置き換えます。Replace <your_Portable_Class_Library_namespace> with the namespace for your portable class library.

  4. 次のように、MainPage クラスを更新して IAuthenticate インターフェイスを実装します。Update the MainPage class to implement the IAuthenticate interface, as follows:

     public sealed partial class MainPage : IAuthenticate
    
  5. 次のように、MobileServiceUser フィールドのほか、IAuthenticate インターフェイスに必要な Authenticate メソッドを追加して、MainPage クラスを更新します。Update the MainPage class by adding a MobileServiceUser field and an Authenticate method, which is required by the IAuthenticate interface, as follows:

     // Define a authenticated user.
     private MobileServiceUser user;
    
     public async Task<bool> Authenticate()
     {
         string message = string.Empty;
         var success = false;
    
         try
         {
             // Sign in with Facebook login using a server-managed flow.
             if (user == null)
             {
                 user = await TodoItemManager.DefaultManager.CurrentClient
                     .LoginAsync(MobileServiceAuthenticationProvider.Facebook, "{url_scheme_of_your_app}");
                 if (user != null)
                 {
                     success = true;
                     message = string.Format("You are now signed-in as {0}.", user.UserId);
                 }
             }
    
         }
         catch (Exception ex)
         {
             message = string.Format("Authentication Failed: {0}", ex.Message);
         }
    
         // Display the success or failure message.
         await new MessageDialog(message, "Sign-in result").ShowAsync();
    
         return success;
     }
    

    Facebook 以外の ID プロバイダーを使用している場合、MobileServiceAuthenticationProvider には別の値を選択してください。If you are using an identity provider other than Facebook, choose a different value for MobileServiceAuthenticationProvider.

  6. LoadApplication() の呼び出しの前にある MainPage クラスのコンストラクター内に次のコード行を追加します。Add the following line of code in the constructor for the MainPage class before the call to LoadApplication():

     // Initialize the authenticator before loading the app.
     <your_Portable_Class_Library_namespace>.App.Init(this);
    

    <your_Portable_Class_Library_namespace> を、ポータブル クラス ライブラリの名前空間に置き換えます。Replace <your_Portable_Class_Library_namespace> with the namespace for your portable class library.

  7. UWP を使用している場合は、以下の OnActivated メソッドのオーバーライドを App クラスに追加します。If you are using UWP, add the following OnActivated method override to the App class:

    protected override void OnActivated(IActivatedEventArgs args)
    {
        base.OnActivated(args);
    
         if (args.Kind == ActivationKind.Protocol)
         {
             ProtocolActivatedEventArgs protocolArgs = args as ProtocolActivatedEventArgs;
             TodoItemManager.DefaultManager.CurrentClient.ResumeWithURL(protocolArgs.Uri);
         }
    }
    
  8. Package.appxmanifest を開き、[プロトコル] 宣言を追加します。Open Package.appxmanifest and add a Protocol declaration. [表示名] を任意の名前に設定し、[名前] をアプリの URL スキームに設定します。Set the Display name to a name of your choosing, and the Name to the URL scheme for you app.

  9. アプリをリビルドして実行します。その後で、選択した認証プロバイダーを使用してサインインし、認証されたユーザーとしてデータにアクセスできることを確認します。Rebuild the app, run it, then sign in with the authentication provider you chose and verify you are able to access data as an authenticated user.

次の手順Next steps

これで基本的な認証チュートリアルは完了しましたので、引き続き次のいずれかのチュートリアルのご利用を検討してください。Now that you completed this basic authentication tutorial, consider continuing on to one of the following tutorials:

  • アプリへのプッシュ通知の追加Add push notifications to your app

    アプリにプッシュ通知のサポートを追加して、Azure Notification Hubs を使ってプッシュ通知を送信するようにモバイル アプリ バックエンドを構成する方法について説明します。Learn how to add push notifications support to your app and configure your Mobile App backend to use Azure Notification Hubs to send push notifications.

  • アプリのオフライン同期の有効化Enable offline sync for your app

    モバイル アプリ バックエンドを使用してオフライン サポートをアプリに追加する方法について説明します。Learn how to add offline support your app using a Mobile App backend. オフライン同期を使用すると、エンド ユーザーはネットワークにアクセスできなくても、データの表示、追加、変更など、モバイル アプリケーションとやり取りできます。Offline sync allows end users to interact with a mobile app - viewing, adding, or modifying data - even when there is no network connection.