Azure Play Fabと
App Center Authを連携しよう
2019/11/30
.NETラボ勉強会 2019年11月
なかしょ(中島進也)
Profile
• 名前:なかしょ(中島 進也)
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、アジャイル開発、Xamarin、Chatbot、Tizen
• 主な参加コミュニティ
JXUG、.NETラボ、Cogbot、Teratail、TestNight
※本資料は私個人の意見であり、所属企業・部門見解を代表する
ものではありません。
2
3
参考:https://azure.microsoft.com/ja-jp/services/playfab/
Azure Play Fabの機能
4
参考:https://docs.microsoft.com/ja-jp/gaming/playfab/index#pivot=documentation&panel=quickstarts
Azure Play Fabの機能
5
参考:https://docs.microsoft.com/ja-jp/gaming/playfab/index#pivot=documentation&panel=quickstarts
今日は認証の話
匿名ログイン
• ゲームプレイヤーを増やしたい
• ライトユーザはプレイヤー情報を入力したくない
• プレイヤー情報を入力せずにゲームを継続的にプレイするには
匿名ログイン機能は必須
• 匿名ログイン向け機能として以下がある。
LoginWithIOSDeviceID
LoginWithAndroidDeviceID
LoginWithCustomID
ゲームタイトルごとに一意のCustomIDを付与する
6
参考:https://docs.microsoft.com/ja-jp/gaming/playfab/features/authentication/login/login-basics-best-practices
リカバリ可能なログイン
• 運営者は課金などで儲けたい
• ユーザは課金したアイテムを失いたくない
• 匿名ログインではユーザがデバイスを紛失、または、変更した
際などにアカウント情報は失われる
• リカバリ可能なログイン向け機能として以下がある
7
LoginWithPlayFab
LoginWithEmailAddress
LoginWithKongregate
LoginWithSteam
LoginWithTwitch.
LoginWithFacebook
LoginWithGoogleAccount
LoginWithWindowsHello.
LoginWithGameCenter
安全ではない
参考:https://docs.microsoft.com/ja-jp/gaming/playfab/features/authentication/login/login-basics-best-practices
認証パターンを増やしたい
• TwitterとかMicrosoftのアカウントに対応したい
• AppCenterのAuth機能と連携できないかな?
• ソーシャルログイン後に取得できるaccountIdをPlayFabの
LoginWithCustomIDで登録してはどうか?
8
App Center Auth : ユーザ認証・ID管理
• ユーザの認証機能を提供
• ユーザIDを利用してユーザデータを表示
• Azure Active Directory B2C を利用して機能が提供される
• iOS、Android、React Native、Xamarinに対応
Unityは対応中
9
参考:https://docs.microsoft.com/ja-jp/appcenter/auth/
Azure Active Directory B2C とは?
• 企業ー消費者間のID管理サービス
• ユーザがWeb,デスクトップ、モバイル、SPAと安全に対話す
る方法をカスタマイズしたり制御したりできる。
• ユーザはサインアップ、サインイン、パスワードのリセット、
および、プロファイルの編集ができる。
• OpenID ConnectプロトコルとOAuth2.0プロトコルの一形式
が実装される。
10
参考: 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プロバイダー
11
参考: https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-overview
連携例
12
①ClientAppからサインイン
②signIn()を呼び出す
③ログイン画面にリダイレクト
④認証情報のJWTを返却⑤JWTを検証しClaimsを作成
⑦AccountIdをCustomId
として登録
⑥Claimsを返却
まとめ
• PlayFabにはゲーム開発に必要なバックエンド機能が揃っている
• 匿名ログインでプレイヤーの参入障壁を低くしよう
• 課金があるとリカバリ可能なログインは大事
• App Center Authと組み合わせて柔軟なログインにしよう
• App Center AuthのUnity版は実装中のステータス
13
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
14

Azure PlayFab とApp Center Authを連携しよう