前回の続きです
Azure AD認証をUnityから使うには、MSAL(Microsoft.Identity.Client名前空間のメソッド)を使うのでした。
Unityから使う方法は大きく分けて2つあります。
MSALはNuGetで提供されているので、そこからDLLをダウンロードすればUnityで使うことができます。
UnityでNuGetを使うには、NuGet for Unityを使う方法があります。
しかし、NuGet for UnityでMicrosoft.Identity.Clientをインストールしてしまうと、依存関係にある多数のモジュールが一緒にインストールされてしまい、削除するのに大変苦労します。
なので、NuGetのサイトから直接DLLを落とす方がわかりやすく早いです。
Download Packageから落とした拡張子.nupkgのファイルを、拡張子.zipに変更すれば解凍できます。
解凍したものの「lib」フォルダ内に各プラットフォーム向けのDLLが入っていますので、「net461」か「netstandard1.3」のものをインポートしてください。
※UWPで使用するには「uap10.0」のものを使用しますが、Unity Editorで動作しないのでTarget Platformで適宜調整してください。
「Plugins」フォルダを作成して、その中にDLLを配置します。
Visual StudioでMSALを使いながら、Unityで使えるマネージドプラグインを作成する方法です。
プロジェクトは「クラスライブラリ」を選択して作っていきます。
Visual Studio内の「NuGet パッケージ マネージャー」からMicrosoft.Identity.Clientをインストールしてください。
マネージドプラグインの作成方法については長くなりますので下記などを参照してください。
比較ですが、後者のマネージドプラグインを作成する方が圧倒的におすすめです。
DLLのインストールも楽ですし、単体テストがUnity上で行うより圧倒的にやりやすく、デバッグ機能も充実しています。
しかし、それなりに準備が必要なので、今回は説明のために前者の方法で行います。
さてコーディングに入っていきますが、前回簡単に紹介したサンプルでは、PublicClientを使って認証を行っているようでした。
このクライアントには2種類あります。
いろいろ書いてありますが、結果的にはUnityでも「Public Client」を利用します。
デスクトップアプリ(Unityで作ったアプリも含む)は逆アセンブリなどで比較的簡単に中身を見ることができます。
Confidential ClientではSecretなど機密の値を保持する必要があるので、サーバアプリに適しています。
逆にPublic ClientはアプリIDしか保持しません。
公式のWPFアプリの解説が下記にあります。
これをUnityに移植していきます。
(つづく・・)