Azure AD認証をUnityから使う(2)

前回の続きです

Azure Active Directoryは、Azureが提供する認証基盤です。どちらかというと企業で使うアプリ(もちろんOffice 3...

Azure AD認証をUnityから使うには、MSAL(Microsoft.Identity.Client名前空間のメソッド)を使うのでした。

Unityから使う方法は大きく分けて2つあります。

その1 NuGetからDLLをダウンロードしてインポートする方法

MSALはNuGetで提供されているので、そこからDLLをダウンロードすればUnityで使うことができます。

UnityでNuGetを使うには、NuGet for Unityを使う方法があります。

A NuGet Package Manager for Unity. Contribute to GlitchEnzo/NuGetForUnity development by creating an account on GitHub.

しかし、NuGet for UnityでMicrosoft.Identity.Clientをインストールしてしまうと、依存関係にある多数のモジュールが一緒にインストールされてしまい、削除するのに大変苦労します。

なので、NuGetのサイトから直接DLLを落とす方がわかりやすく早いです。

This package contains the binaries of the Microsoft Authentication Library for .NET (MSAL.NET). MSAL.NET makes it easy to obtain tokens from the Microsoft...

Download Packageから落とした拡張子.nupkgのファイルを、拡張子.zipに変更すれば解凍できます。
解凍したものの「lib」フォルダ内に各プラットフォーム向けのDLLが入っていますので、「net461」か「netstandard1.3」のものをインポートしてください。
※UWPで使用するには「uap10.0」のものを使用しますが、Unity Editorで動作しないのでTarget Platformで適宜調整してください。

「Plugins」フォルダを作成して、その中にDLLを配置します。

その2 Unity用のマネージドプラグインを作成する方法

Visual StudioでMSALを使いながら、Unityで使えるマネージドプラグインを作成する方法です。
プロジェクトは「クラスライブラリ」を選択して作っていきます。
Visual Studio内の「NuGet パッケージ マネージャー」からMicrosoft.Identity.Clientをインストールしてください。

マネージドプラグインの作成方法については長くなりますので下記などを参照してください。

ご無沙汰しております。ご無沙汰の間に家族がひとり増えちゃいました☆ さて、HoloLensアプリのUnityプロジェクトにおいて、一部のソースコードを非公開にしたいと思い、ManagedのPluginを作ろうとしたのですが思いのほかハマってしまったので作り方をご紹介します。 サンプルプロジェクト Pluginをビルドす...
どっちがいいの?

比較ですが、後者のマネージドプラグインを作成する方が圧倒的におすすめです。
DLLのインストールも楽ですし、単体テストがUnity上で行うより圧倒的にやりやすく、デバッグ機能も充実しています。

しかし、それなりに準備が必要なので、今回は説明のために前者の方法で行います。

Public ClientとConfidential Client

さてコーディングに入っていきますが、前回簡単に紹介したサンプルでは、PublicClientを使って認証を行っているようでした。
このクライアントには2種類あります。

Microsoft Authentication Library (MSAL) でのパブリック クライアント アプリケーションと機密クライアント アプリケーションについて説明します。

いろいろ書いてありますが、結果的にはUnityでも「Public Client」を利用します。
デスクトップアプリ(Unityで作ったアプリも含む)は逆アセンブリなどで比較的簡単に中身を見ることができます。
Confidential ClientではSecretなど機密の値を保持する必要があるので、サーバアプリに適しています。
逆にPublic ClientはアプリIDしか保持しません。

参考にするサンプルアプリ

公式のWPFアプリの解説が下記にあります。

Windows デスクトップ .NET (XAML) アプリケーションでアクセス トークンを取得し、Microsoft ID プラットフォームによって保護されている API を呼び出す方法について説明します。

これをUnityに移植していきます。

(つづく・・)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク