ラベル Active Directory の投稿を表示しています。 すべての投稿を表示
ラベル Active Directory の投稿を表示しています。 すべての投稿を表示

1/18/2015

GoAzure 2015 のAzure Active Directoryのセッションについて

 

 2015年1月16日に渋谷でGoAzure 2015が開催されました。私は亀渕さんと一緒にテクニカルトラックを担当して、Infrastructure as Codeとアプリケーション開発者のためのAzure Active Directoryのセッションのスピーカーを担当しました。

10911477_10205047578604118_6846605222062117637_o

 IMG_0881

 スペシャルゲストとして安納さんにも参加いただき、両セッションとも満席でした!

10704318_10205047587324336_1969556084027248771_o

 

1.はじめに、Infrastructure as Code for Azure

 Infrastructure as Code for Azureのセッションは、亀渕さんメインでした。資料はこちら。Resource ManagerでDrupalを構築したり、DockerでASP.NET 5を構築したり。

ブログがありますので、こちらをご参照ください。

https://buchizo.wordpress.com/2015/01/18/goazure-2015-2/

 

2.次に、アプリケーション開発者のためのAzure Active Directory

 アプリケーション開発者のためのAzure Active Directoryの資料はこちら。サーバ側のIdentityライブラリのWIF、Katana middlewareや、ホームレルムディスカバリの動作の紹介とか。クライアント側ではADALとGraph Clientライブラリの紹介とか。

セッションデモで紹介したソースコードは、下記のURLから確認することができます。

 

Katana middlewareに関するコード

 Visual Studioの新規プロジェクトで、AuthenticationをIndividual User Accountsで作成した後に、Startup.Auth.csにIdPの設定をします。WsFederationAuthenticationNotificationsでは、ホーム・レルム・ディスカバリをスキップするように書いています。

https://github.com/KentaroAOKI/GoAzureAzureADSingleKatana/blob/master/WebAppAzureADSingleKatanaGoAzure/App_Start/Startup.Auth.cs

ADALとGraph Clientに関するコード

 こちらはWPFのアプリケーションとして書いておりますが、直接Graph APIに接続する場合と、Graph Client ライブラリを使う場合で書かれています。LINQを使ってGraph APIにアクセスしています。

https://github.com/KentaroAOKI/GoAzureWpfApp/blob/master/WpfAppGoAzure/MainWindow.xaml.cs

 

さいごに

 GoAzureでは、多くの方にお願いしたり、助けていただいたり、打ち合わせしたり、合宿したり。得上さんや富樫さんもお忙しいところセッションを快く引き受けていただいたり。みんなで走りぬいた感じがありました。また、会場に来ていただいた方々とも一体感があって、非常に熱いイベントでした。

 さいごに、亀渕さんありがとう!そして、安納さん、突然の無理なお願いありがとうございました!今後ともよろしくです!

12/06/2013

Windows Azure Active Directory 多要素認証プロバイダーとディレクトリの連携

 

はじめに

今年ももうすぐ終わりですね。今回はWindows Azure Advent Calender 2013に参加した投稿となっています。

 

Windows Azure Active Directory多要素認証プロバイダーとディレクトリ

以前、Windows Azure Active Directory多要素認証プロバイダーの電話メッセージを紹介しました。当時は、プレビューでしたので、Multi-Factor Authentication Serverによるオンプレミス側のWindows Severと、クラウド側の多要素認証プロバイダの連携しかできませんでした。現在はクラウド側の多要素認証プロバイダーとディレクトリの連携も可能になっていますので、本投稿ではそちらを紹介します。

 

structure

 

ディレクトリと多要素認証プロバイダーのリンク設定

ディレクトリと多要素認証プロバイダーのリンクは、ポータルのActive Directory内の多要素認証プロバイダーか、ディレクトリの、どちらかの設定から行います。

 

多要素認証プロバイダーから設定は、多要素認証プロバイダーを作成する時に設定します。

01

 

ディレクトリから設定は、Enable Multi-Factor Authenticationから設定を行います。

03

 

ユーザ設定

Active Directoryのディレクトリのユーザからユーザを作成します。多要素認証プロバイダーとディレクトリのリンクにより、ユーザのロールがUserでも多要素認証できるようになりました。(多要素認証プロバイダーが提供されていなかった時は、ディレクトリ内で多要素認証の設定が可能でしたが、管理者である必要がありました)

04

電話メッセージを利用しますので、電話番号を設定します。

05

 

アプリケーションの準備

Office365など利用している人はそちらを利用することができますが、Windows Azure Active Directoryを使用したWebアプリケーションを作成することができます。興味がある方は、以下のURLを参考にしてください。(スライドですいません。。。。)

 

Windows Azure Active Directoryを利用したアプリケーション

http://kentablog.cluscore.com/2013/04/windows-azure-active-directory.html

 

アプリケーションを登録すると以下のようなディレクトリの画面になります。以下の画面では3つのテスト用アプリが登録されています。

13

 

動作確認

登録しているWebアプリケーションにアクセスすると、以下のようなログイン画面が表示されます。ユーザ名とパスワードを入力した後に、電話がかかってきます。

なお、電話番号が設定されたいない場合や初めてログインする時に、電話番号の入力と確認が行われる場合があります。

06

ユーザ名とパスワードが正しい場合は、電話を呼びます。

07

そして、登録した電話に、海外(US)からの呼び出しがきます。

photo 1

メッセージに従って#(デフォルト設定)を押します。

photo 2

#を押した後、ログイン画面から、Webアプリケーションにリダイレクトされてアプリケーションが表示されます。

 

電話メッセージをカスタマイズ

多要素認証プロバイダーの管理画面では、電話メッセージをカスタマイズすることができます。認証に成功した場合に、好きなMP3の音声メッセージを再生するなど条件の設定ができます。

 

音声ファイルの登録

多要素認証プロバイダ管理画面の左メニューのConfigure Voice MessageのManage Sound Fileより 、音声ファイルをアップロードして登録します。

08

09

10

11

12

音声ファイルの登録が完了しました。

 

登録した音声ファイルで認証するアプリケーションの設定

多要素認証プロバイダ管理画面の左メニューのConfigure Voice Messageより、登録した音声ファイルを再生する条件の設定をします。

ここで入力するアプリケーション名は、以前紹介したMulti-Factor Authentication Serverと異なり、”SAS Login"という固定の名前になります。ディレクトリで登録したアプリケーション名ではないので注意が必要です。(ディレクトリで登録したアプリケーション名が使えると便利なのですが、残念です)

次に条件としてMessage Typeを”Authentication Successfulに設定します。これにより認証成功時に指定した音声ファイルが再生されます。

22

登録を確認します。

23

 

認証レポートの確認

認証レポートは、多要素認証管理画面から確認することができます。左メニューのView a ReportのUsageを選択します。

24

Queuedを選択した後に、Usage Authentication User Detailsを選択します。

25

多要素認証のログが確認できます。

26

 

さいごに

多要素認証プロバイダーとディレクトリをリンクした時の雰囲気を感じていただけたらと思います。それではまたー。

9/07/2013

Windows Azure Active Directory 多要素認証プロバイダ(プレビュー)のスライドを共有します

 

【祝】Azure日本DC前夜祭!★Japan Windows Azure User Group 3周年!でWindows Azure Active Directory多要素認証プロバイダ(プレビュー)の電話メッセージを紹介しましたので資料を共有します。

 

4/27/2013

Windows Azure Active Directory スライドを共有します

 

Global Windows Azure Boot Camp (Tokyo)でWindows Azure Active Directoryのセッションを担当しました。セッション資料をSlideShareに置きましたので共有します。

当日の様子は以下のような感じ。

globalbootcamp

 

詳細は後日ブログに書けたらと思います。

ではー。

2/17/2013

Office365のWindows Azure Active DirectoryとActive Directoryをディレクトリ同期(Directory Sync)してみる(続き)

 

前回は、Windows Azure Active Directoryと、Windows Server 2008 R2のActive Directoryのディレクトリ同期の設定を有効にしましたが、今回はディレクトリ同期をやめる方法です。

やめる方法も同様に、Office365で契約している方は、Office365の画面から非アクティブ化の設定が可能ですし、直接Windows Azure Active Directoryから設定したい方は、Windows Azure Active Directoryの画面からでも非アクティブ化が可能です。そのほかには、PowerShellで設定することも可能です。

Office 365に契約している方の非アクティブ化

以下のサイトからOffice365にログインして、ユーザメニューからActive Directory同期の、非アクティブ化をクリックします。

http://portal.office365.com/

96_1

 

Windows Azure Active Directoryの管理ポータルで非アクティブ化

Office365はWindows Azure Active Directoryを使用しているので、直接Windows Azure Active Directoryの管理画面から設定を行うことも可能です。以下のサイトからWindows Azure Active Directoryの管理者ポータルにログインして「統合」メニューから「ディレクトリ同期の管理」を選択します。

http://activedirectory.windowsazure.com/

Office365の画面と比べて、ディレクトリ同期の状態が一目でわかります。下記は失敗している状態。

97_1

ディレクトリ同期の管理を選択した画面は下記の通り。ここから非アクティブ化を行います。

98_1

 

Power Shellから非アクティブ化

Power ShellでOffice365を管理するための、Microsoft Online Servicesモジュールをインストールしている場合は、Power Shellより非アクティブ化を行うことができます。以下はMicrosoft Online Servicesモジュールに関する以前の記事(一番下)

http://kentablog.cluscore.com/2012/12/windows-azure-active-directory.html

以下のコマンドで非アクティブ化するテナントに接続して、Set-MsolDirSyncEnabledコマンドで非アクティブ化を行う。

PS C:\Users\XXXXXXX> import-module msonline
PS C:\Users\XXXXXXX> import-module msonlineextended
PS C:\Users\XXXXXXX> Connect-MsolService -credential (Get-Credential)
PS C:\Users\XXXXXXX> Set-MsolDirSyncEnabled -EnableDirSync $false

確認
この操作を続行しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

 

非アクティブ化を設定した後について

設定した後は、非アクティブ化が行われますが、完了するまで少し時間がかかります。なお、非アクティブ化を行っても同期されたユーザは削除されません。

 

同期の通知について

ディレクトリ同期が設定されているにもかかかわらず、同期が行われていない場合は、TechnicalNotificationEmailsに設定されたいるメールアドレスに通知が定期的に届きます。

95_1

このTechnicalNotificationEmailsは、Power ShellのGet-MsolCompanyInformationから確認することが可能です。また、変更を行う場合は、以下のコマンドによりメールアドレスを変更することが可能です。

Set-MsolCompanyContactInformation –TechnicalNotificationEmails xxxx@xxxxxxx.xxxx

ユーザの連絡用電子メールアドレスとは違うので注意です。

 

関係している記事

Windows Azure Active Directory ドメイン登録 (Core Directory)

http://kentablog.cluscore.com/2013/01/windows-azure-active-directory-core.html

Office365のWindows Azure Active DirectoryとActive Directoryをディレクトリ同期(Directory Sync)してみる

http://kentablog.cluscore.com/2013/02/office365windows-azure-active.html

Windows Azure Active Directory 入門 (Core Directory, Seller Dashboard)

http://kentablog.cluscore.com/2012/12/windows-azure-active-directory.html

2/01/2013

Office365のWindows Azure Active DirectoryとActive Directoryをディレクトリ同期(Directory Sync)してみる

 

前回は、Windows Azure Active Directoryにドメインを追加しましたので、今回はActive Directoryのユーザ情報を、Office365のWindows Azure Active Directoryにディレクトリ同期してみます。

 

構成

Windows Azure Active Directoryに、Active Directoryのユーザ情報を同期させるには、既に存在するActive Directoryのドメインに参加しているサーバが必要になります。また、インストールされるサービスはMIISAdminsのユーザで動作しますこともあり、インストールするサーバの管理者権限が必要になります。その他に、インストール中にActive Directoryドメインのエンタープライズ管理者のユーザ名とパスワード、Windows Azure Active Directoryのテナント管理者(Office365では全体管理者と書かれている)のユーザ名とパスワードが必要になります。

  • インストーラの実行
    • コンピュータの管理者
  • インストールされるサービス(Windows Azure Active Directory Sync Service)の実行ユーザ
    • MIIS_Service(MIIS_Adminsグループのユーザ)
  • インストール時に必要なユーザ情報
    • Active Directoryドメインのエンタープライズ管理者
    • Windows Azure Active Directoryのテナント管理者(全体管理者)

 

Directory Syncインストーラの入手

Office365を契約している方は、Offcie365左メニューのユーザより、Active Directory同期のセットアップの4からディレクトリ同期ツールをダウンロードします。(Windows Azure Active Directoryの管理ポータルから行う場合は、インテグレーションメニューよりダウンロード)

61_1

 

インストール

ダウンロードしたインストーラを実行します。

73

I acceptを選択して次へ

74

インストールするフォルダを選択して次へ

75

次へ。インストールが始まります。

76

完了

78

 

コンフィギュレーションウィザードを開始します。(前のウインドウでチェックを入れていない場合は、ディスクトップのアイコンを実行して下さい)

79

Windows Azure Active Directory のテナント管理者(全体管理者)の情報を入力して次へ

80_1

Active Directoryのエンタープライズ管理者の情報を入力して次へ

81

次へ

82

設定処理中

83

完了

84

 

テスト

Active Directoryにユーザを追加します。

90

 

PowershallでWindows Azure Active Directoryの登録ユーザを取得して、ディレクトリ同期を確認できます。数十分かかるので気長に待ちましょう。

93_1

 

関連記事

Windows Azure Active Directory ドメイン登録 (Core Directory)

http://kentablog.cluscore.com/2013/01/windows-azure-active-directory-core.html

1/26/2013

Windows Azure Active Directory ドメイン登録 (Core Directory)

 

この記事は、以前投稿した「Windows Azure Active Directory 入門 (Core Directory, Seller Dashboard)」の管理ポータルに関する補足となります。

ドメイン登録について

ドメイン登録を行うと、自分が持っているドメインを、Windows Azure Active Directory で利用することが可能になり、ドメインを含むユーザIDを作成することが可能になります。例えば、以下のようなユーザIDになります。

標準のドメイン

(name)@(company).onmicrosoft.com

登録したドメインを使用した場合

(name)@company.co.jp

このように、一般的に使われるユーザ名と同じになります。また、Active Directory でも利用しているIDを Windows Azure Active Directory と同期(Directory Sync)する場合もこの設定が必要になります。ドメインは、ドメイン・レジストラから取得しておく必要があります。日本だと、「お名前.com」や「MuuMuuDomain」が有名ですよね。

 

ドメイン登録作業

Windows Azure Active Directory の管理ポータルから登録を行います。ドメインの追加は、管理ポータルの Domains を選択して、Add Domain をクリックします。

domain01

取得済みのドメインを入力します。

domain02

入力したドメインの所有者であるかの確認が行われますが、まずは、確認方法を設定します。ここでは、Select your domain registar を、General Instractions に選択します。日本のレジストラは選択できませんので、標準的な手法を選択します。

また、管理ポータルに記載されている DNS レコードをドメインの DNS サーバに設定します。ここでは、TXT レコードを選択しました。

domain03_1

上記画面を見ながら、自分のDNSサーバの設定を行います。Bind を利用している方は、以下のようなレコード設定を行います。(一番下の TXT レコードを追加)

# cat /var/named/cluscore.com.db
$ORIGIN .
$TTL 3600       ; 1 hour
cluscore.com            IN SOA  ns01.cluscore.com. root.ns01.cluscore.com. (
                                XXX        ; serial
                                XXXXX      ; refresh (X hours)
                                XXX        ; retry (XX minutes)
                                XXXXXX     ; expire (X week)
                                XXXXX      ; minimum (X day)
                                )
                        NS      ns01.cluscore.com.
                        NS      ns02.cluscore.com.
$ORIGIN cluscore.com.
kentablog               A   xxx.xxx.xxx.xxx
@       3600    TXT     MS=msXXXXXXX

 

DNSサーバにレコードを追加したら、Windows Azure Active Directory の管理ポータルに戻ります。入力したドメインの所有者であれば、ドメインの DNS レコードを操作できるはずですので、指定されたレコードが存在するか、Windows Azure Active Directory からドメインの DNS にたいして確認が行われます。

domain05

登録されていることを確認できます。

domain06

ドメインが登録されると、入力されたドメインを利用したユーザIDを作ることが可能になります。

domain07

onmicrosoft.com もかっこいいのですが、入力文字数が多いので、自分のドメインが使えるのは便利ですね。

12/25/2012

Windows Azure Active Directory 入門 (Core Directory, Seller Dashboard)

 

今回はWindows Azure Active Directory にについての内容です。

Windows Azure ADの正式リリースにより、記事の内容が古くなっていますので、こちらの最新の記事と比較して確認してください。

http://kentablog.cluscore.com/2013/04/windows-azure-active-directory.html

 

1.Windows Azure Active Directoryってなに?

Windows Azure Active Directoryは、Webのインタフェースを持つIdentity Serviceです。Directory情報の操作や認証処理など、ユーザを管理するための機能を持ち、HTTPSのRESTなWebインターフェースを経由して利用します。Microsoft AccountやGoogle Accountのように、Webアプリケーション間で当たり前のように使われているSSO(シングルサインオン)の機能もあるため、Windows Azure Active Directoryを使用しているOffice 365やWindows Intuneなどのエンタープライズ系のアプリケーションとSSOが可能になります。また、Windows Store AppなどWebアプリケーション以外で利用する場合は、アプリケーションのプログラムでWindows Azure Active DirectoryのWebインタフェースにアクセスする実装を行います。

Windows Server のActive Directoryと名前が似ているので勘違いしやすいのですが、Windows Server のActive Directoryとは異なります。そのため、クラウド環境にWindows ServerのActive Directoryと同じ機能が必要な場合は、Windows Azure Active Directory ではなく、Windows Azureなどの仮想ネットワークと仮想マシンを使用してWindows ServerのActive Directoryを構築することになります。

また、Windows Azure Active Directoryは、複数の異なる機能を集めた総称的な名前としても利用されているので、主な2つの機能を下記に紹介します。(2012年12月21日時点の情報ですので今後変更される可能性があります)

  • 1.Windows Azure Active Directory (aka Core Directory, Authentication)
    • コアディレクトリおよび認証: 上記で紹介した、シングル サインオン(SSO)、ユーザーおよび グループの管理、オンプレミスのActive Directory と同期、フェデレーションなどの機能を持つIDプロバイダです。 Office365などのマイクロソフト社が提供するSaaSアプリケーションに利用されています。
    • 価格: 以前は2013年12月1日まで無料としていたが、その後も無料となりました。
    • 1.1.Windows Azure AD Rights Management
      • ライツマネージメント: Directoryの機能の一部で、Microsoft Online Services にサブスクライブしている組織のコンテンツを暗号化して使用制限する機能のようです。
      • 価格: 課金されるとのこと。価格は不明
      • 備考: 知りませんでしたが、このURLに書いてあったので紹介しておきます。いつか調査しないといけませんね。

  • 2.Windows Azure Active Directory Access Controle Namespace (aka ACS, Access Management)
    • アクセス制御: Access Controle Nameserviceは、名前からご想像いただけるとおり、以前からWindows Azureの機能として存在しているACSと同じものです。STSとして動作し、Facebook などの IDプロバイダーや、オンプレミスのADFS 2.0(Active Directory Federation Service)などを使用した認証と承認を一元的に行う機能になります。
    • 価格: 以前はトランザクション数によって課金していましたが、無料になりました。

 

今回は上記の中から、Windows Azure Active Directoryの中でも中心的なサービスになると考えられる「1.Windows Azure Active Directory コアディレクトリと認証」に関する機能を紹介します。(ACSはすでに多くの記事があると思いますので、そちらをご参照ください)

 

2.コアディレクトリと認証機能紹介

Windows Azure Active Directoryは、大きく分けて以下の4つから成り立ちます。

  • 管理ポータル
    • ユーザ情報を、管理することが可能なWebページ
  • 認証関係
    • OAuthやSAML、WS-Federationや、エントリポイントを示すメタデータを提供するインタフェース
  • Graph API
    • 登録されたユーザ情報の取得や登録、削除を行うディレクトリ操作インタフェース
  • その他、インテグレーション関係
    • Windows ServerのActive Directoryのディレクトリと同期を行う仕組みなど

WAAD

これらの機能を利用すると組織を意識したWebアプリを容易に作ることができます。また、Windows Azure Active DirectoryはOffice365などのMicrosoft社が提供するSaaSアプリでも使用されているので、ユーザとしても作られたWebアプリを安心して利用することができるのではないでしょうか。

 

3.Windows Azure Active Directoryのサインアップ

Windows Azure Active Directoryを利用するには、下記のページで登録作業を行います。この登録作業では、管理者アカウントと、テナントのドメインを作成します。

http://g.microsoftonline.com/0AX00en/5

WAADReg

 

4.Windows Azure Active Directoryの管理ポータル

サインアップが完了すると、以下の管理ポータルでユーザの追加やロールの設定を行うことが可能になります。

https://activedirectory.windowsazure.com

トップページ

各機能へのメニューになっています。また、開発者向け情報へのリンクはこのページにあります。

WAADPortal00

ユーザとグループ

ユーザの追加やロールの設定を行うことができます。

WAADPortal01

ドメイン

ドメインの追加や削除を行います。ドメイン登録手順などは以下の記事を参考にしてください。

http://kentablog.cluscore.com/2013/01/windows-azure-active-directory-core.html

WAADPortal02

インテグレーション

インテグレーションページでは、Active DirectoryとのDirectory Syncの紹介があります。

WAADPortal03

開発者リソース

自組織向けのアプリケーション開発方法(Apps for your organaization)や、他の複数組織にサービス提供するためのアプリケーション開発方法(Apps for multiple organaizations)の紹介があります。

WAADPortal04

5.Windows Azure Active Directory 開発ツール

Windows Azure Active Directoryを利用したWebアプリケーションの作成には、Visual Studio 2012を使用します。ここでは、多くの方が利用可能な無料の Visual Studio 2012 Express for Web を使用して紹介します。ダウンロードおよびインストールは以下の記事を参考にしてください。

http://kentablog.cluscore.com/2012/09/windows-azure-cloud-servicevisual-studio.html

Visual Studio 2012 のダウンロードは以下のURLから。

http://www.microsoft.com/visualstudio/jpn/products/visual-studio-express-products

次に、ASP.net Fall 2012 UPdate BUILD Prereleaseをインストールします。このパッケージは、2012年11月に行われたBUILDイベントに合わせてリリースされたASP.netの機能拡張になります。Windows Azure Active Directory関係としては、自組織向けのアプリケーション開発(Apps for your organaization)を簡単にする機能が含まれています。ダウンロードは以下のページから行ってください。

http://www.asp.net/vnext/overview/fall-2012-update

 

6.Windows Azure Active Directory を使用したアプリの種類

上記にも少し紹介していますが、Windows Azure Active Directoryを使用したWebアプリは、主に2の種類になります。

自組織のアプリケーション(Apps for your organization)
  • 自分の組織向けのような一つのテナントに対応するWebアプリケーション向けの使い方です。Webアプリケーションのユーザ管理と認証を、Windows Azure Active Directoryに任せる場合などに利用します。メリットとしては、すでに利用しているOffice365などのSaaSアプリのユーザ情報を利用することができることと、シングルサインオン(SSO)が可能となることです。
  • サンプルコード
    http://code.msdn.microsoft.com/Write-Sample-App-for-79e55502
    • (Note: Windows Azure Active Directoryはプレビューであることもあり、クレームの仕様変更が行われており、上記サンプルコードはそのままでは動作しませんが、Web.config中のnameClaimTypeを変更すると動作します。)次回以降紹介できればと思います。(2012/12/19)

 

WAADAPP1
    • アプリケーション利用イメージ
      1. 利用者はアプリケーションに接続すると、Windows Azure Active Directory のログイン画面が表示される
      2. ログイン画面でユーザ名とパスワードなど、設定されている条件で認証を行う
      3. 認証が成功するとアプリケーションの利用が可能となる
      4. アプリケーションではActiveDirectoryから渡されたクレーム情報によりユーザのIDなどが表示される
      5. また、Office365などWindows Azure Active Directoryを使用しているアプリとのシングルサインオンが可能

 

複数組織用のアプリケーション(Apps for multiple organization)
  • すべての組織向けに提供可能な、マルチテナント対応のSaaSアプリケーションで利用する使い方です。例えば、Microsoft社のOffice365などのSaaSアプリです。アプリ提供者は、Office365などのアカウントを持つユーザ組織にSaaSアプリを容易に提供することが可能になります。また、利用者はOffice365などを含んだアプリ間でSSOが可能になります。また、組織アプリケーションと違い、アプリケーションに利用するClient ID と Secret は Seller Dashboard に登録します。
  • サンプルコード
    http://www.windowsazure.com/en-us/develop/net/tutorials/multitenant-apps-for-active-directory/
    • (Note: 上記サンプルコードは、Windows Azure Active Directoryはプレビューであることもあり、クレーム情報の仕様変更が行われており、そのままでは動作しませんが、クレームタイプとメタ情報のパース箇所を変更すると動作します)次回以降紹介できればと思います。(2012/12/19)

 

WAADAPP2

    • アプリケーション利用イメージ(初期利用)
      1. アプリケーションの組織向け登録画面に移動
      2. Windows Azure Active Directoryのテナント管理ロールを持つユーザでログイン
      3. アプリケーションから、Windows Azure Active Directoryにアクセスすることを許可する確認の画面が表示(Consentリクエストにより表示。下記参照)
      4. 許可するとユーザがアプリケーションを利用することが可能に

 

7.複数組織向けアプリケーションの補足(Consentリクエストについて)

複数組織用アプリケーションでは、テナント管理者の許可を得てGraph APIを経由して組織の情報にアクセスすることができるようになります。この処理はConsentリクエストにより実装します。

画面イメージ

WAADPortal05

上の画面は初期利用時3の時にWindows Azure Activr Directoryにアクセスして表示される画面。(テスト用のアプリのため、アプリケーションの画像が表示されていません。Seller Dashboardでアプリをパブリッシュしている場合はアプリの画像が表示されます)

WAADPortal06

アプリケーションからWidnows Azure Active Directory へのアクセスを承認すると、画面の下部に処理中のメッセージが表示されます。これにより、Seler Dashboardに登録したアプリの情報がユーザの組織のWindows Azure Active Directoryに登録され、アプリケーションから組織情報(テナント)を取得などの操作を行うことができるようになります。

このアプリケーションからWindows Azure Active Directoryへのアクセス許可は、以下のようなConsent リクエストにより実行されます。

リクエスト

Windows Azure Active Directoryテナントにアプリからのアクセス許可を要求が行われます。Seller Dashboardに登録したClient Idを使用してConsentリクエストを作ります。


https://activedirectory.windowsazure.com/Consent/AuthorizeApplication.aspx?ApplicationId=<ClientId>&RequestedPermissions=<RequestedPermissions>

  • パラメータ
    • ApplicationId(必須)
      • Seller Dashboard に登録した Client ID
    • RequestedPermissions(オプション)
      • DirectoryReader
        • 組織のユーザアカウント、グループ情報のディレクトリデータを読み込む権限を要求。SSOを有効にする。
      • UserAccountAdministrator
        • 組織のユーザアカウント、グループ情報のディレクトリデータを読み込みと書き込みする権限を要求。SSOを有効にする
      • None(デフォルト)
        • SSOを有効にするが、ディレクトリデータへのアクセスは無効にする。

利用者の承認処理結果は以下のアプリケーションURLへのレスポンスにより確認することができます。

Consent レスポンス

https://<Redirect URL>&TenantId=<TenantId>&Consent=<Consent>

  • パラメータ
    • TenantId
      • 許可されたWindows Azure AD組織のGUID
    • Consent
      • 許可された場合は”Granted“、リジェクトされた場合は”Denied”

 

8.複数組織向けアプリケーション補足(Seller Dashboardについて)

Seller Dashboardは複数組織用のアプリケーションがWindows Azure Active Directory接続する際に使用するClient IDを登録するサイトになります。また、完成したアプリケーションをパブリッシュすることにより、収益を上げることも可能になるようです。(収益を上げるところに関しては試してません)

WAADSD

OAuth Client ID 追加

Client IDはSeller Dashboardのclient idsタブをクリックすることにより設定します。トップページはApp(アプリケーション)を登録する画面となっていますが、まずは「client ids」タブの「add a new oauth client id」から、下の画面のようにClient IDを作成する必要があります。

WAADSD3

oauth client idの設定は以下の内容を参考にしてください。

項目

内容

Friendly Client ID Name クライアントIDを識別するための名前を設定します。どのような名前でもかまいません。
App Domain アプリケーションのドメインを設定します。ローカルPCで開発している場合などは、localhostと設定します。
App Redirect URL 作成したアプリケーションのURLを指定します。Consentリクエスト時など、アプリケーションにリダイレクトされるときのURLに使用されますので、http/httpsから指定してください。ローカルPCで開発している場合などは、https://localhost:4407のようにポート番号も合わせて設定します。
Client Secret Valid For クライアントシークレットの有効期限を設定します。
1年(1 year) / 2年(2 years) / 3年(3years) から選択します。

 

アプリ追加

アプリケーションを配布する場合に設定します。開発中の場合は、このアプリ追加を行わなくても、既に登録されているClient IDで動作を確認することができます。アプリケーションが完成した時は、プロダクション向けの新しいClient IDを作成したほうがよいでしょう。

アプリの申請から承認が下りるまで一か月ぐらいかかりました。今後のブログで紹介できればと思います。

manageタブの「add a new app」から新しいアプリを登録します。まずは、以下のような画面でアプリケーションのタイプを選択します。

WAADSD4

アプリケーションタイプとして「Windows Azure Type」の「Active Directory App」を選択します。次に表示される画面でアプリケーションの情報を入力します。ここで入力された情報がConsentリクエストの時に表示されます。

Windows Azure Active Directoryアプリ

項目

内容

App Title マーケットプレイスでのアプリケーション名
Category アプリケーションのカテゴリを選択します
App Logo アプリケーションのロゴを96x96ピクセルで250KB以下の画像ファイル。画像フォーマットは.png, .jpeg, gif
App Package XMLで記述されたアプリケーション・マニフェスト・ファイル(後述アプリケーション参照)
Testing Notes(optional) アプリケーションを登録した後にマイクロソフト社によるテストが行われます。この項目にはテスターにログインするための情報やテストを進めるためのメッセージを書きます。
OAuth Client ID このアプリで使用するClient IDを選択します。

詳細は以下のサイトをご参照ください。

http://msdn.microsoft.com/en-us/library/jj552465.aspx

アプリケーション・マニフェスト・ファイル(App Package)

アプリ追加のApp Packageでは、XMLで記述されたアプリケーション・マニフェストを配置します。このApp Packegeはアプリケーションのタイプによって異なり、Windows Azure Active Directoryアプリでは、以下のような内容のXMLを記述します。

エレメント

アトリビュート

内容

AppPermissionRequests Policy 現在はアプリケーションがディレクトリ情報をアクセスするためのAppOnlyのみ対応
AppPermissionRequest Right

パーミッションを設定する。以下の3つから選択する

  • Directory Reader
    • 組織のユーザアカウント、グループ情報のディレクトリデータを読み込む権限を要求。SSOを有効にする。
  • User Account Administrator
    • 組織のユーザアカウント、グループ情報のディレクトリデータを読み込みと書き込みする権限を要求。SSOを有効にする
  • None
    • SSOを有効にするが、ディレクトリデータへのアクセスは無効にする。
AppPermissionRequest Scope スコープの設定
Reason culture Consentページに表示するテキストの言語を設定
  value Consentページに表示するテキストを設定

以下は、アプリケーション・マニフェスト・ファイルの例になります。

<?xml version="1.0" encoding="utf-16"?>
<AppRequiredPermissions>
  <AppPermissionRequests Policy="AppOnly">
    <AppPermissionRequest Right="Directory Reader" Scope="http://directory">
      <Reason culture="en-us" value="Demo Application for kentablog"/>
    </AppPermissionRequest>
  </AppPermissionRequests>
</AppRequiredPermissions>


 



9.複数組織向けアプリケーション補足(Windows Azure Active Directoryの利用中アプリケーション確認について)



Consentリクエストによってアクセス許可を得たアプリケーションは、Windows Azure Active DirectoryのserviceページのYour Organization's Servicesに一覧表示されます。以下の図はアプリ追加されていない開発中のアプリのため、Seller Dashboardで登録したClient IDが表示されていますが、アプリ追加されているアプリケーションの場合は、アプリケーション名が表示されるはずです。



WAADPortal08



もし、Office365を利用している場合は、Azure Active Directoryのページで以下のようにOffice365が持つアプリケーションがアクセス許可を得ているはずです。これを見ると、Office365も複数組織向けアプリケーションとして作られていることと、複数のアプリから成り立っていることがよくわかりますね!



WAADPortal11



以上でアプリケーション開発者はWindows Azure Active Directoryを使用したアプリケーションを作成することができますが、詳細な登録情報を確認するには、以下のようにPowerShellを使用します。



 



10.PowerShellでWindows Azure Active Directoryの情報を取得する



PowerShellを使用すれば、Windows Azure Active Directoryに登録されているPrincipalの情報など、詳細な情報を得ることができます。



準備



そのままのPowerShellで利用できるのではなく、Office365用に提供されているモジュールを初めにインストールしておきます。



以下のサイトからモジュールをインストールしてください。



Windows PowerShell を使用して Office 365 を管理する



http://onlinehelp.microsoft.com/ja-jp/office365-enterprises/hh124998.aspx



Windows Azure Active Directoryに接続して使ってみる



まず以下のコマンドでインストールしたモジュールを読み込みます。(Windows 8や2012Serverを使用している方は、PowerShell ver2 で動作させる必要があります)

Get-Command Msonline
Get-Command MsonlineExtended


Windows Azure Active Directoryに接続します。

Connect-MsolService -Credential (Get-Credential)


テナント情報の取得

Get-MsolCompanyInformation


テナントIDの取得

(Get-MsolCompanyInformation).ObjectId


サービスプリンシパルの取得(利用中のアプリケーションの取得)

Get-MsolServicePrincipal


その他コマンドの使い方は以下を参考にしてください。



Office 365 用 Windows PowerShell コマンドレット



http://onlinehelp.microsoft.com/ja-jp/office365-enterprises/hh125002.aspx



PowerShellを使用すると、Windows Azure Active DirectoryのWebサイトで操作できない、組織向けのアプリケーションの作成で作られたServicePrincipalの削除など、細かいところにも手が届く操作が可能です。



11.さいごに



Active Directoryを使用すると、Office365のようなビジネス向けのアプリケーションを提供することが可能になり、Office365とシングルサインオンによりシームレスに遷移するアプリも実現することが可能になります。



ビジネス向けのアプリケーションを考えている方はぜひ利用してはいかがでしょうか?



当ブログでもアプリケーションの作り方を紹介していけたらと思います。



 



関連ページ



Windows Azure Active Directory ドメイン登録 (Core Directory)


http://kentablog.cluscore.com/2013/01/windows-azure-active-directory-core.html