0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Azure MobileApp に Azure AD B2C のアカウントでサインインしてデータ同期する

Posted at

Azure MobileApp に Azure AD B2C のアカウントでサインインしてデータ同期する

今回は前に取り上げた Azure B2C によるユーザ管理の外出しと同じく取り上げた Azure MobileApp によるユーザ個別データ管理の合わせ技、Azure B2C アカウントごとのユーザ個別データの同期方法についてまとめます。

モバイルアプリ側に AzureB2C サインイン機能を追加

Xamarin.Forms のAzureB2Cサインイン実装方法に関しては 公式ドキュメント を参照。

重要なのは、MobileServiceClient.LoginAsync() に AzureB2C から取得したアクセストークンを渡すとログイン画面を出さず、渡したトークンを使ってアクセスしてくれる事です。
MSALで取得したトークンを使いまわす事ができるので、MSALでログインした後 MobileApp へのログインでもう一度ログイン画面を出す~ というような事は必要ありません。

public async Task<bool> LoginAsync(string accessToken) {
    var payload = new JObject();
    payload["access_token"] = accessToken;

    var User = await CurrentClient.LoginAsync(
        MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory,
        payload);
    return true;
}

記事の最後にクイックスタートのTodoアプリの認証をB2Cログインに変更したもののソースを貼っておきます。

サーバ側変更

MobileApp の "認証/承認" で Azure Active Directory の認証プロバイダーを設定します。同じサブスクリプション上の Azure AD に登録されたアプリなら"簡易"から設定できますが、Azure B2C のアプリは対応していないので、"詳細"でクライアントIDと発行者URLを設定する事になります。

activedirectory-setup.png

"詳細"での設定項目は上画像の通り。

enable-native-client.png

あと今回はネイティブアプリからのサインインになるので、AzureB2C側に登録したアプリケーションの"ネイティブ クライアントを含める"もONにしておきましょう。

リソース

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?