Azure AD PowerShell モジュール群がフェデレーションとMFA対応に(Preview)

Azure AD を PowerShell から管理するとき、最初に入力するコマンドは、

Connect-MSOLService

image

ですね。このコマンドで Azure AD の管理対象テナントにサインインすることができます。

ただし以下の制限がありました。

  • サインインに使用できるユーザー ID は Azure AD のローカルアカウント
    admin@hogehoge.onmicrosoft.com のようなアカウントで、オンプレミスADのアカウントは使用できない
  • 多要素認証が効かない
    多要素認証を有効にしてもスルーされてしまう

そのため、せっかくアプリケーションはセキュアにアクセスできても、肝心の Azure AD 管理はあと一歩。。。といった状況が続いていました。

でも安心してください。朗報があります。

つい先日 Azure Active Directory PowerShell with Modern Authentication の Preview 版がリリースされました。

Azure AD PowerShell: Public Preview of support for Azure MFA + new Device Management Commands
https://blogs.technet.com/b/ad/archive/2015/10/20/azure-ad-powershell-public-preview-of-support-for-azure-mfa-new-device-management-commands.aspx

これにより、Azure AD のコマンドレット群が ADAL(Active Directory Authentication Library)に対応し、いわゆる Modern Authentication が使えるようになりました。あのMicrosoft Online アシスタントの呪縛からやっと解放されるわけですね!最近、マイクロソフトは Modern Authentication という言葉をよく使いますが、これは「ADAL(Active Directory Authentication Library)に対応している」という意味です。具体的には、アイデンティティ フェデレーションを使用した認証、多要素認証が使えるということになります。

Preview 版の新モジュールは以下からダウンロードが可能です。

https://connect.microsoft.com/site1164/Downloads/DownloadDetails.aspx?DownloadID=59185

インストールするには、まず旧バージョンの Azure AD PowerShell モジュールをアンインストールしてください。まだアップグレードには対応していません。

image

新しい Connect-MSOLService を実行すると、以下のようにブラウザベースのサインイン画面が表示されるようになります。

image

オンプレミス Active Directory の ID を入力すれば、以下のようにリダイレクトしてくれます。

image

多要素認証にも対応していることがわかります。

image

なお、Connect-MSOLService コマンドに用意されていた –CurrentCredential パラメタは削除されました。その代わりにサポートされたのが –AccessToken です。

AccessToken パラメタには、既にAzure AD から受け取っているアクセストークンを使用することができます。アクセストークンとは認証完了後にAzure AD が発行してくれるチケットのようなものです。ちょっと使う分には、あまりこのパラメタを使用することはないとは思いますが、Azuer Automation で事前に用意したトークンをパラメタとして渡して完全自動化したり、開発者の方などがプログラムの動作検証に使用する際などに便利です。

参考 Authorization Code Grant Flow
https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx

なお、このバージョンではデバイス管理用のコマンドレットもサポートされました。以下のコマンドで確認してみましょう。

Get-Command *Device* -Module MSONLINE

image

例えば、Windows 10 を Azure AD に参加させていたり、iPad などを Microsoft Intue で管理している場合、以下のように表示することができます。

Get-MSOLDevice -All

image

登録されているデバイスは、Azure AD の管理ポータルから、「登録済みのデバイス」を選択することで確認することもできますが、これはユーザー単位なので、ちょっと管理機能としては弱いですね。やはりコマンドで一気に取得できるとありがたいです。

image

このデバイスからのサインインを禁止するには、以下のように入力します。

Disable-MSOLDevice -DeviceID 95304b8f-c77f-4537-938a-5491902444a3

image

上記のように確認画面が表示されますが、 –Force を指定すれば回避することができます。

デバイスが無効になると、Azure AD の管理ポータル上でも以下のように表示されます。

image

やはりスクリプトによる自動化ができるようになるのはいいですね。