DocuSign モバイルアプリで Microsoft Enterprise SSO プラグインを試してみた（いわゆるモバイルアプリの社給デバイス縛り）

#はじめに
脱ハンコが進み始めた日本で業績を伸ばしている電子署名クラウドサービスの一つとして [DocuSign](https://www.docusign.jp/) があります。DocuSignモバイルネイティブアプリ（以降はモバイルアプリ）はカメラを利用したり手書き署名ができたりと DocuSign サービスを利用するにはとても便利なモバイルアプリと言えます。今回はこの DocuSign iOS モバイルアプリで [Microsoft Enterprise シングルサインオン(SSO) プラグイン](https://docs.microsoft.com/ja-jp/azure/active-directory/develop/apple-sso-plugin)を試してみようと思います。
> *※2021年12月7日の時点では Apple デバイス用の Microsoft Enterprise SSO プラグインはプレビューで GA（一般公開）ではありません。*

#モバイルアプリのデバイス証明書認証問題
[前々回のブログ](https://qiita.com/hiyoshino/items/1b7ebef34870c74133dc)でも記載しましたが、Azure Active Directory(以降はAzureAD) の条件付きアクセスで組織で管理されたポリシー準拠デバイスにのみにアクセスを許可するポリシーを設定してもモバイルアプリを準拠デバイスのみにアクセスを制限することができません。いわゆるアプリ使用の社給デバイス縛りができません。これはモバイルアプリがIntuneなどのデバイス管理サービスが配布したデバイス証明書にアクセスできないことに起因します。Salesforce モバイルアプリでは[前々回ブログ](https://qiita.com/hiyoshino/items/1b7ebef34870c74133dc)でご紹介したように Salesforce アプリ側で AppConfig を使用して証明書へのアクセスを実現しています。

#Microsoft が提供する iOS ネイティブアプリの証明書アクセス対策
iOS モバイルアプリでデバイス証明書にアクセスできない問題の解決策として Microsoft では二つの方法を提供しています。一つはモバイルアプリに [MSAL(Microsoft Authentication Library)](https://docs.microsoft.com/ja-jp/azure/active-directory/develop/msal-overview) を組み込むことです。もう一つが今回ご紹介するEnterprise SSO プラグインです。

DocuSign iOS モバイルアプリで SSO するには、まずは、Azure ADをDocuSign の SAML IdP(Identity Provider)として設定する必要があります。SSO の設定については以下のサイトが大変参考になります。今回のブログでは SSO 設定については説明致しません。私も以下のサイトを参考に DocuSign デベロッパーアカウントを取得後、SSO 設定を行い今回の動作検証を行いました。


https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/docusign-tutorial

https://qiita.com/Shinya-Yamaguchi/items/0ca8f579849a13b7e97b

#モバイルデバイス用のポリシー準拠デバイスのアクセス許可設定
モバイルアプリでデバイス証明書認証を実施するには、以下のように Azure Portal から Azure AD の条件付きアクセスでポリシー準拠デバイスのみアクセスを許可するように設定をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/469c4a8e-a6d2-ebfd-91d4-836057ac0315.png)

#Enterprise SSO プラグイン設定が無い状態でのモバイルアプリのSSO動作テスト
まずは Enterprise SSO プラグイン設定をしない状態でモバイルアプリの SSO 時の動作を見てみましょう。今回は、以下の2種類の DocuSign の iOS アプリ(注)で動作を確認します。
> (注)2021年12月7日の時点では **DS-Legacy** アプリは  Apple App Store に公開されておらずデバイスにインストールすることができません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/3490c94e-e191-19a2-2133-7aab706cbd40.png)

（2021年12月7日現在、以下のDocuSign iOS アプリのみ Apple App Store からインストール可能です。）

https://apps.apple.com/jp/app/docusign-%E6%96%87%E6%9B%B8%E3%81%AE%E9%80%81%E4%BF%A1%E3%81%A8%E7%BD%B2%E5%90%8D/id474990205

###DocuSign モバイルアプリでの動作確認
Azure AD でポリシー準拠デバイス許可を設定後、インストール済みの DocuSign モバイルアプリで SSO を行い利用可能かを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/02922e24-1623-5151-a802-842e97d5604a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/275fd082-179b-b5a8-75c6-beab55798c70.png)

④のUSE COMPANY LOGIN をタップするとIdPである Azure AD の認証画面が表示されます。Azure AD での認証が成功すると⑦で Intune から配布されたクライアント証明書の使用許可が表示されます。「続ける」をタップすると証明書による認証が成功し、DocuSign アプリの利用が可能になります。実はこの **DocuSign モバイルアプリは Enterprise SSO プラグインを設定することなくポリシー準拠デバイス許可設定状態でアプリ利用可能**です。（デバイスには事前に以下の **Microsoft Authenticator アプリ**がインストール済で利用できる必要があります。）

https://apps.apple.com/jp/app/microsoft-authenticator/id983156458

###DS Legacy モバイルアプリでの動作確認
同様に Azure AD でポリシー準拠デバイス許可を設定後、DS Legacy モバイルアプリの SSO 動作を見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/ec9cba5f-a350-24b9-bab9-43bb7a3d3fed.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/05982c38-fc46-fe3c-45b0-fdd24eb05950.png)
こちらも DucSign アプリと同様に④の USE COMPANY LOGIN をタップすると IdP である Azure AD の認証画面が表示されますので、Email アドレスとパスワードを入力し認証を完了します。**認証完了後の⑦で「ここからはアクセスすることはできません」が表示されます。Enterprise SSO プラグイン設定なしの状態では、DS-Legacy モバイルアプリを利用できないことが分かりました。**次に Enterprise SSO プラグイン設定を行い DS-Legacy モバイルアプリも利用できるようになるのか試してみましょう。

#Enterprise SSO プラグイン設定手順
Apple デバイス用の Enterprise SSO プラグインの前提条件は以下になります。
>	• Apple デバイス用の Microsoft Enterprise SSO プラグインを含むアプリが、デバイスで サポート およびインストールされている必要があります。
	• iOS 13.0 以降: Microsoft Authenticator アプリ
	• iPadOS 13.0 以降: Microsoft Authenticator アプリ
	• macOS 10.15 以降: Intune ポータル サイト アプリ
	• Microsoft Intune を使用するなどして、デバイスが MDM に登録 されている必要があります。
	• 構成プロファイルを デバイスにプッシュ して、Enterprise SSO プラグインを有効にする必要があります。 

Microsoft Endpoint Manager admin center (Intune) 管理コンソールから「デバイス」、「iOS/iPadOS のデバイス」、「構成プロファイル」を選択後、「＋プロファイル作成」を選択します。プロファイルの種類では、「デバイス機能」を選択し「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/5287158a-6cd1-7f6b-3ca0-db033a75add1.png)
次に「基本」で任意のプロファイル名を入力後、「構成設定」で「シングルサインオンアプリ拡張機能」を選択します。SSO アプリ拡張機能の種類では「Microsoft Azure AD」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/9d6fdc2d-c37a-1293-14fa-ff244ce356b9.png)
次に、「追加の構成」では以下のキーを設定します。今回は全てのマネージドアプリで Enterprise SSO プラグインを利用できるように設定後、適用するグループを割り当てます。（アプリバンドルIDを指定して、アプリ単位で設定することも可能です。詳細は[こちら](https://docs.microsoft.com/ja-jp/azure/active-directory/develop/apple-sso-plugin)をご参照ください。）

>キー：Enable_SSO_On_All_ManagedApps
>種類：整数
>値：1

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/fe65f605-c899-38f1-ebe8-5e2a098cf2b6.png)
最後に「作成」をクリックして構成プロファイルを配布します。以下の画面でデバイスに構成プロファイルが配信されたのを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/a4b37520-760c-2318-0909-e1a1ac552cbf.png)

##Enterprise SSO プラグイン設定後のモバイルアプリの動作確認
先ほどアクセスに失敗した DS-Legacy モバイルアプリで SSO 後にアプリが利用できるかを再度検証します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/3ec68ff8-6f69-86d5-96b6-7cdc2055c215.png)
結果は、一目瞭然。**Enterprise SSO プラグイン設定前は利用できなかった DS-Legacy モバイルアプリがポリシー準拠デバイス許可設定状態で利用できるようになりました。**さらに、大きな違いは、④「USE COMPANY LOGIN」をタップ後に、Azure AD のログイン画面が表示されなくなりパスワード入力なしで利用できる点です。(バックエンドでデバイス証明書を利用した認証を実施しています。)


次に、最初に検証した DocuSign モバイルアプリでも動作に違いがあるかを見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/82849d09-5a85-bbe4-8ccc-d8e9dbf48bc6.png)
こちらの DocuSign モバイルアプリは Enterprise SSO プラグイン設定前と同じくアプリは問題なく利用できます。しかしながら認証動作に大きな違いがあります。④の「USE COMPANY LOGIN」をタップ後に Azure AD の認証画面が表示されなくなった点です。DS-Legacy アプリと同様にパスワードの入力なしでモバイルアプリを利用できるようになります。

#まとめ
iOS で SaaS を利用するには Safari などのブラウザーではなく、モバイルアプリの方が使いやすくエンドユーザーの満足度向上にも繋がります。特に DocuSign モバイルアプリではカメラや手書き入力が使用できるため利便性が高く、生産性向上にも繋がります。当然ながら、業務用のモバイルアプリの場合、組織で管理されたデバイスのみ使用を許可するポリシー設定を行う企業がほとんどでしょう。今回ご紹介した Azure AD 条件付きアクセスと Enterprise SSO プラグインを利用することで iOS モバイルアプリに対しても会社で管理されたデバイスのみ利用を許可することが可能です。Enterprise SSO プラグインを設定することでセキュリティ面だけでなくパスワード入力なしで利用できるため利便性も向上します。ぜひ一度お試しください。
（※ [Enterprise SSO プラグインは2021年12月7日時点ではプレビューの機能です。](https://docs.microsoft.com/ja-jp/azure/active-directory/develop/apple-sso-plugin)）

投稿内容は私個人の意見であり、所属企業・部門とは関係ありません。また、いかなる保証を与えるものでもありません。