Visual Studio App Centerに
mBaaS機能が増えてきた。
2019/6/28
Shibuya.apk #35
NTTテクノクロス 中島進也
Profile
• 名前:なかしょ(中島 進也)
• 所属:NTTテクノクロス株式会社
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、アジャイル開発、Xamarin、Chatbot、Tizen
• 主な参加コミュニティ
JXUG、.NETラボ、Cogbot、Teratail、TestNight
XP祭り2019実行委員
※本資料は私個人の意見であり、所属企業・部門見解を代表するもの
ではありません。
2
Visual Studio App Center の主な機能
3
自動ビルド・単体テスト
実機デバイスでUIテストを自動化
テスターやストアへのアプリ配布
クラッシュログの収集
使用状況の分析
ユーザ認証・ID管理
DevOps
MBaaS
データの管理・保持・同期
プッシュ通知
2019年5月に追加さ
れた
対応プラットフォーム
4
Android
Java/Kotlin
ReactNative
Cordova(Preview)
Xamarin
Unity
iOS
Objective-C/Swift
ReactNative
Cordova(Preview)
Xamarin
Unity
Windows
UWP
Unity
macOS(Preview)
Objective-C/Swift
なぜmBaaSのAuth機能を使うの?
• 詳細なユーザ情報を持ちたくない
ID、パスワードの漏洩は怖い
会員登録や変更などの画面も作りたくない
そのユーザであることを一意に示すIDだけあればよい
でも、必要に応じてID以外の情報も欲しい
• サーバ回りの運用はしたくない
• モバイルアプリの開発に集中したい
5
Auth : ユーザ認証・ID管理
• ユーザの認証機能を提供
• ユーザIDを利用してユーザデータを表示
• 個々のデバイスではなくユーザにプッシュ通知を送信
• Azure Active Directory B2C を利用して機能が提供される
• iOS、Android、Xamarinに対応
6
参考:https://docs.microsoft.com/ja-jp/appcenter/auth/
Azure Active Directory B2C とは?
• 企業ー消費者間のID管理サービス
• ユーザがWeb,デスクトップ、モバイル、SPAと安全に対話す
る方法をカスタマイズしたり制御したりできる。
• ユーザはサインアップ、サインイン、パスワードのリセット、
および、プロファイルの編集ができる。
• OpenID ConnectプロトコルとOAuth2.0プロトコルの一形式
が実装される。
• 毎月50,000回までの認証は無料
7
参考: https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-overview
対応するソーシャルIDプロバイダー
•Microsoft Account
•Google
•Facebook
•Linkedin
•Amazon
•Weibo (Preview)
•QQ (Preview)
•WeChat (Preview)
•Twitter
•GitHub (Preview)
ーーーーーーーーー
•OpenID Connect
(Preview)
カスタムIDプロバイダー
8
参考: https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-overview
Data : データの管理・保持・同期
• クラウド上のアプリケーションデータをオフラインと同期
• ユーザIDを利用してプライベートデータを管理
• Cosmos DBを利用して機能が提供される
Cosmos DB Core SQL APIを使用する
• iOS、Android、Xamarinに対応
9
参考:https://docs.microsoft.com/ja-jp/appcenter/data/
Data : アーキテクチャ
10
Data : 非公開データと公開データ
• 非公開
Azure AD B2Cを介し
てユーザIDに関連付
けられているデータ
認証されたユーザに
読み取り/書き込み権
限を付与する
• 公開
全てのユーザが読み
取り権限を持つデー
タ
11
12
13
Azure Subscriptionの設定
Subscription
設定後
Subscription
を設定
14
Tenantの設定(テナント未作成)
Azure AD B2Cの
テナントを作成
15
Tenantの設定(Azure上で作成)
テナント新規作成
16
TenantをSubscriptionにリンク
17
Tenantの設定(テナント作成後)
テナントを選択
18
アプリケーション未作成
テナントのアプリ
ケーションを作成
新規追加
19
アプリケーション作成
https://jwt.ms
を入力
msal{appSecret}://authを入力
{appSecret}はAppCenterで取
得
20
appSecretの取得
App Centerのプロジェクト設定
ページでappSecretを取得
21
アプリケーション作成後
テナントのアプリ
ケーションを選択
Scopeの設定が必
要
22
Scopeの設定 追加ボタンからAPIアクセスのス
コープを追加
23
Scopeの設定後
Scopeを選択
user flowの設定
が必要
24
UserFlowの設定
新しいユーザーフローを追加
サインアップとサイ
ンインを選択
25
UserFlowを作成
B2C_1_signinSignUpで作成
プロバイダーを選択
標準はEmailのみ
多要素認証を使用するか否か
サインアップ時に収集する値の
設定
26
UserFlowの設定後
作成したUserFlow
名を記入
27
IDプロバイダーの追加
追加したいIDプロバ
イダーを選択する。
IDプロバイダーを追加したら
UserFlowの更新が必要
Google認証やFacebook認証
と連携するためにはPrivacy
Policyの公開ページが必要
28
説明されている内容で
アプリに組み込む
29
build.gradleへの追加
dependencies {
def appCenterSdkVersion = '2.1.0‘
implementation "com.microsoft.appcenter:appcenter-auth:${appCenterSdkVersion}"
}
30
AndroidManifest.xmlへの追加
<activity
android:name="com.microsoft.identity.client.BrowserTabActivity">
<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:host="auth"
android:scheme="msal{Your App Secret}" />
</intent-filter>
</activity>
31
Auth機能の初期化
AppCenter.start(
application, "{Your App Secret}",
Auth::class.java
)
32
サインインの実装
Auth.signIn().thenAccept { signInResult ->
if (signInResult.exception == null) {
//サインインの成功
val accountId = signInResult.userInformation.accountId
val idToken = signInResult.userInformation.idToken
val accessToken = signInResult.userInformation.accessToken
Log.d("MainActivity", "accountId:$accountId")
} else {
//サインインの失敗
val signInFailureException = signInResult.exception
Log.e("MainActivity", "exception:$signInFailureException")
}
}
33
トークンのデコード
try {
val idToken = signInResult.userInformation.idToken
val parsedToken = JWTParser.parse(idToken)
val claims = parsedToken.jwtClaimsSet.claims
// 名前を取得
val displayName = claims["name"] as String
// emailアドレスを取得
val emails = claims["emails"] as net.minidev.json.JSONArray
if (emails != null && !emails.isEmpty()) {
val firstEmail = emails[0].toString()
}
} catch (e: ParseException) {
}
34
サインアウトの実装
Auth.signOut();
35
IDプロバイ
ダーによるロ
グイン
Facebook認証時に
取得した名前を使用
36
37
ログインしたユーザが
使用したIDプロバイダ
を含めて表示される
参考:https://openapi.appcenter.ms/
Visual Studio App Center MBaaS Roadmap
• Auth
【対応済】Connect an Azure
B2C identity provider
Bring your own identity
provider support
Enterprise AAD support
End user profile dashboards
with cross-service integrations
• Data
【対応済】 Connect or create
an Azure Cosmos database
【対応済】 User configuration
and profile record store
Visual data browser for stored
information
Collaborate on collection
documents
Real-time document storage
updates
Off-line write support
• File Storage
Manage app resources with
Azure blob storage and CDN
Upload and download user
generated content
• Push
Tighter coupling with Azure
Notification Hubs
Export for installation device
metadata
39
参考: https://github.com/Microsoft/appcenter/wiki/Roadmap
参考: https://github.com/microsoft/appcenter-sdk-android /
まとめ
• Visual Studio App CenterにMBaaS機能が増えてきた。
• AuthのバックエンドはAzure AD B2C
• Azure AD B2Cの知識も必要
• アプリの実装はとても簡単にログインを導入できる
• Firebaseにはまだ及ばないけどMSのサービスとの相性は良い
41
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
42

More Related Content

PPTX
Visual Studio App Center Authの導入方法について
PPTX
Azure PipelinesをサーバサイドのCI/CDに活用
PPTX
すごろくゲームでPlayFabの活用を検討
PPTX
社内の遊休PCをAzurePipelinesでCICDに活用しよう
PPTX
Visual Studio App Centerで始めるCI/CD(iOS)
PPTX
AzureDevOpsで始めるAndroidのCI/CD
PPTX
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
PPTX
ペアワークで持続的に成長するチームになろう!
Visual Studio App Center Authの導入方法について
Azure PipelinesをサーバサイドのCI/CDに活用
すごろくゲームでPlayFabの活用を検討
社内の遊休PCをAzurePipelinesでCICDに活用しよう
Visual Studio App Centerで始めるCI/CD(iOS)
AzureDevOpsで始めるAndroidのCI/CD
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
ペアワークで持続的に成長するチームになろう!

What's hot (20)

PPTX
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
PPTX
Visual Studio App Centerの始め方
PPTX
Visual Studio App Centerで始めるCI/CD(Android)
PPTX
App center analyticsを使い倒そう
PPTX
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
PPTX
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
PPTX
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
PPTX
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
PDF
Introduction to application architecture on asp.net mvc
PPTX
アクセシビリティを考えたalt属性を自動生成してみよう!
PDF
Ride on Azure! 詳細編
PPTX
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
PDF
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
PPTX
Azure周りの振り返り
PPTX
裏クラウドデザインパターン
PPTX
Running Kubernetes on Azure
PPTX
ペアプロするならgit-duetを使おう
PPTX
2画面折り畳みデバイスのアプリ開発について
PPTX
Visual Studio App Centerで始めるCI/CD
PDF
Docker on azure!進化していくcontainerを覗いてみよう!
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerの始め方
Visual Studio App Centerで始めるCI/CD(Android)
App center analyticsを使い倒そう
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
Introduction to application architecture on asp.net mvc
アクセシビリティを考えたalt属性を自動生成してみよう!
Ride on Azure! 詳細編
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
Azure周りの振り返り
裏クラウドデザインパターン
Running Kubernetes on Azure
ペアプロするならgit-duetを使おう
2画面折り畳みデバイスのアプリ開発について
Visual Studio App Centerで始めるCI/CD
Docker on azure!進化していくcontainerを覗いてみよう!
Ad

Similar to Visual Studio App CenterにmBaaS機能が増えてきた (20)

PDF
Using App Center Auth & Data
PDF
モバイルBaaSの概観と最新動向(2014版)
PPTX
121117 metro styleapp_templateapp
PPTX
Windows azure mobile services を使った windows ストアアプリ開発 1027
PDF
AppCenter
PPTX
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
PDF
Potatotips #5 MBaaSつかってみた
PDF
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
PDF
認証/メッセージング領域へのモバイル/ソーシャルネットワークIDの活用
PPTX
Windows Azure Mobile Servicesによるアプリ構築
PPTX
20141222 ふくあず Azure Mobile Services 入門
PDF
大学等におけるAzure AD B2Cを使用したSNS認証の活用
PDF
Azureお助けサービス概要
PDF
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
PDF
モバイルBaaSの概観と最新動向 (2013/6/7)
PDF
Windows azure mobile services による mobile + cloud アプリケーション超高速開発
PPTX
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
PPTX
Java/Android開発者のためのWindows Azure入門 (パート2)
PPTX
Windows PhoneアプリをSNSとつなげよう
PDF
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Using App Center Auth & Data
モバイルBaaSの概観と最新動向(2014版)
121117 metro styleapp_templateapp
Windows azure mobile services を使った windows ストアアプリ開発 1027
AppCenter
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
Potatotips #5 MBaaSつかってみた
[SC10] 自社開発モバイルアプリの DLP 対応化を Microsoft Intune で可能に
認証/メッセージング領域へのモバイル/ソーシャルネットワークIDの活用
Windows Azure Mobile Servicesによるアプリ構築
20141222 ふくあず Azure Mobile Services 入門
大学等におけるAzure AD B2Cを使用したSNS認証の活用
Azureお助けサービス概要
モバイル向けクロスプラットフォーム開発ツール Xamarin の概要とその利点
モバイルBaaSの概観と最新動向 (2013/6/7)
Windows azure mobile services による mobile + cloud アプリケーション超高速開発
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
Java/Android開発者のためのWindows Azure入門 (パート2)
Windows PhoneアプリをSNSとつなげよう
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Ad

More from Shinya Nakajima (14)

PPTX
Adaptive Cardsを使ってみた
PPTX
PlayFabとCognitiveを 連携させて健全なゲーム運営を
PPTX
PlayFabとAppCenterのユーザ情報を連携してAppCenterの機能を活用しよう
PPTX
GitHub ActionsでiOSのCIを実現しよう
PPTX
CI/CD専用モニタと心理的安全性
PDF
アジャイル開発を円滑に進めるVisual Studio App Center
PDF
アジャイル開発のストーリーをGherkin記法で作成
PDF
docomo Developer Supportを活用しよう
PDF
Xamarinで地図を使おう
PDF
いつか言いたい『こんなこともあろうかと』
PDF
今こそ Microsft Bot Framework を学ぼう
PDF
Tizenの.NET対応について
PDF
Visual Studio Live Shareでリモートペアプログラミング
PDF
リーンアジャイルで開発を加速しよう
Adaptive Cardsを使ってみた
PlayFabとCognitiveを 連携させて健全なゲーム運営を
PlayFabとAppCenterのユーザ情報を連携してAppCenterの機能を活用しよう
GitHub ActionsでiOSのCIを実現しよう
CI/CD専用モニタと心理的安全性
アジャイル開発を円滑に進めるVisual Studio App Center
アジャイル開発のストーリーをGherkin記法で作成
docomo Developer Supportを活用しよう
Xamarinで地図を使おう
いつか言いたい『こんなこともあろうかと』
今こそ Microsft Bot Framework を学ぼう
Tizenの.NET対応について
Visual Studio Live Shareでリモートペアプログラミング
リーンアジャイルで開発を加速しよう

Visual Studio App CenterにmBaaS機能が増えてきた