2012ケンタテクブロ最近はAzure関係の記事です。ADの正式リリースにより、記事の内容が古くなっていますので、こちらの最新の記事と比較して確認してください。Directory情報の操作や認証処理など、ユーザを管理するための機能を持ち、HTTPSのRESTなWebインターフェースを経由して利用します。Intuneなどのエンタープライズ系のアプリケーションとSSOが可能になります。DirectoryのWebインタフェースにアクセスする実装を行います。Directoryとは異なります。Directoryを構築することになります。Directoryは、複数の異なる機能を集めた総称的な名前としても利用されているので、主な2つの機能を下記に紹介します。同期、フェデレーションなどの機能を持つIDプロバイダです。Office365などのマイクロソフト社が提供するSaaSアプリケーションに利用されています。以前は2013年12月1日まで無料としていたが、その後も無料となりました。サブスクライブしている組織のコンテンツを暗号化して使用制限する機能のようです。知りませんでしたが、このURLに書いてあったので紹介しておきます。いつか調査しないといけませんね。Azureの機能として存在しているACSと同じものです。Service)などを使用した認証と承認を一元的に行う機能になります。以前はトランザクション数によって課金していましたが、無料になりました。コアディレクトリと認証」に関する機能を紹介します。Directoryは、大きく分けて以下の4つから成り立ちます。Directoryのディレクトリと同期を行う仕組みなどこれらの機能を利用すると組織を意識したWebアプリを容易に作ることができます。DirectoryはOffice365などのMicrosoft社が提供するSaaSアプリでも使用されているので、ユーザとしても作られたWebアプリを安心して利用することができるのではないでしょうか。Directoryを利用するには、下記のページで登録作業を行います。この登録作業では、管理者アカウントと、テナントのドメインを作成します。Directoryの管理ポータルサインアップが完了すると、以下の管理ポータルでユーザの追加やロールの設定を行うことが可能になります。https://activedirectory.windowsazure.comトップページ各機能へのメニューになっています。開発者向け情報へのリンクはこのページにあります。ユーザとグループユーザの追加やロールの設定を行うことができます。ドメインドメインの追加や削除を行います。ドメイン登録手順などは以下の記事を参考にしてください。Syncの紹介があります。organaizations)の紹介があります。2012を使用します。ダウンロードおよびインストールは以下の記事を参考にしてください。ダウンロードは以下のURLから。Prereleaseをインストールします。このパッケージは、2012年11月に行われたBUILDイベントに合わせてリリースされたASP.netの機能拡張になります。organaization)を簡単にする機能が含まれています。ダウンロードは以下のページから行ってください。Directoryを使用したWebアプリは、主に2の種類になります。organization)自分の組織向けのような一つのテナントに対応するWebアプリケーション向けの使い方です。Directoryに任せる場合などに利用します。メリットとしては、すでに利用しているOffice365などのSaaSアプリのユーザ情報を利用することができることと、シングルサインオン(SSO)が可能となることです。Directoryはプレビューであることもあり、クレームの仕様変更が行われており、上記サンプルコードはそのままでは動作しませんが、Web.config中のnameClaimTypeを変更すると動作します。)次回以降紹介できればと思います。organization)すべての組織向けに提供可能な、マルチテナント対応のSaaSアプリケーションで利用する使い方です。Microsoft社のOffice365などのSaaSアプリです。アプリ提供者は、Office365などのアカウントを持つユーザ組織にSaaSアプリを容易に提供することが可能になります。利用者はOffice365などを含んだアプリ間でSSOが可能になります。Directoryはプレビューであることもあり、クレーム情報の仕様変更が行われており、そのままでは動作しませんが、クレームタイプとメタ情報のパース箇所を変更すると動作します)次回以降紹介できればと思います。Directoryにアクセスすることを許可する確認の画面が表示(Consentリクエストにより表示。APIを経由して組織の情報にアクセスすることができるようになります。この処理はConsentリクエストにより実装します。Directoryにアクセスして表示される画面。(テスト用のアプリのため、アプリケーションの画像が表示されていません。アクセスを承認すると、画面の下部に処理中のメッセージが表示されます。Directoryに登録され、アプリケーションから組織情報(テナント)を取得などの操作を行うことができるようになります。リクエストにより実行されます。Directoryテナントにアプリからのアクセス許可を要求が行われます。Idを使用してConsentリクエストを作ります。IDRequestedPermissions(オプション)DirectoryReader組織のユーザアカウント、グループ情報のディレクトリデータを読み込む権限を要求。UserAccountAdministrator組織のユーザアカウント、グループ情報のディレクトリデータを読み込みと書き込みする権限を要求。SSOを有効にするNone(デフォルト)SSOを有効にするが、ディレクトリデータへのアクセスは無効にする。利用者の承認処理結果は以下のアプリケーションURLへのレスポンスにより確認することができます。IDを登録するサイトになります。完成したアプリケーションをパブリッシュすることにより、収益を上げることも可能になるようです。idsタブをクリックすることにより設定します。IDを作成する必要があります。idの設定は以下の内容を参考にしてください。クライアントIDを識別するための名前を設定します。どのような名前でもかまいません。アプリケーションのドメインを設定します。ローカルPCで開発している場合などは、localhostと設定します。作成したアプリケーションのURLを指定します。Consentリクエスト時など、アプリケーションにリダイレクトされるときのURLに使用されますので、http/httpsから指定してください。ローカルPCで開発している場合などは、https://localhost:4407のようにポート番号も合わせて設定します。クライアントシークレットの有効期限を設定します。アプリ追加アプリケーションを配布する場合に設定します。IDで動作を確認することができます。IDを作成したほうがよいでしょう。アプリの申請から承認が下りるまで一か月ぐらいかかりました。今後のブログで紹介できればと思います。app」から新しいアプリを登録します。以下のような画面でアプリケーションのタイプを選択します。App」を選択します。次に表示される画面でアプリケーションの情報を入力します。ここで入力された情報がConsentリクエストの時に表示されます。アプリケーションのロゴを96x96ピクセルで250KB以下の画像ファイル。アプリケーションを登録した後にマイクロソフト社によるテストが行われます。この項目にはテスターにログインするための情報やテストを進めるためのメッセージを書きます。詳細は以下のサイトをご参照ください。Packageでは、XMLで記述されたアプリケーション・マニフェストを配置します。Directoryアプリでは、以下のような内容のXMLを記述します。Rightパーミッションを設定する。Reader組織のユーザアカウント、グループ情報のディレクトリデータを読み込む権限を要求。Administrator組織のユーザアカウント、グループ情報のディレクトリデータを読み込みと書き込みする権限を要求。SSOを有効にするNoneSSOを有効にするが、ディレクトリデータへのアクセスは無効にする。以下は、アプリケーション・マニフェスト・ファイルの例になります。Servicesに一覧表示されます。IDが表示されていますが、アプリ追加されているアプリケーションの場合は、アプリケーション名が表示されるはずです。Directoryのページで以下のようにOffice365が持つアプリケーションがアクセス許可を得ているはずです。Directoryを使用したアプリケーションを作成することができますが、詳細な登録情報を確認するには、以下のようにPowerShellを使用します。Directoryに登録されているPrincipalの情報など、詳細な情報を得ることができます。準備そのままのPowerShellで利用できるのではなく、Office365用に提供されているモジュールを初めにインストールしておきます。以下のサイトからモジュールをインストールしてください。Directoryに接続して使ってみるまず以下のコマンドでインストールしたモジュールを読み込みます。Directoryに接続します。(Get-Credential)テナント情報の取得Get-MsolCompanyInformationテナントIDの取得(Get-MsolCompanyInformation).ObjectIdサービスプリンシパルの取得(利用中のアプリケーションの取得)Get-MsolServicePrincipalその他コマンドの使い方は以下を参考にしてください。DirectoryのWebサイトで操作できない、組織向けのアプリケーションの作成で作られたServicePrincipalの削除など、細かいところにも手が届く操作が可能です。Directoryを使用すると、Office365のようなビジネス向けのアプリケーションを提供することが可能になり、Office365とシングルサインオンによりシームレスに遷移するアプリも実現することが可能になります。ビジネス向けのアプリケーションを考えている方はぜひ利用してはいかがでしょうか?当ブログでもアプリケーションの作り方を紹介していけたらと思います。AzureでWEBサービスを組み立てよう!どうも。久しぶりのブログアップデートです。12月に入りクリスマスが近くなると、サンタクロースがやってくるイベントがあったり、いろいろと忙しくなります。7327)のリクエストがあり、すでに製造していない商品をお願いされたりしています(しかも、欲しいのは中に入っている犬のミニフィギュアだけ・・・)。Calendarに参加です。Azureは大きな変更があり、便利な機能が多く追加されました。Azureを始めてみようと考えている方からは複雑なプラットフォームに見えているのではないかと、少し心配しています。Azureを理解してもらえるのではないかと思い、@k1hashさんと@kekekekentaでパターンの土台を模索しているところです。α版ですが、少し紹介できればと思います。1.大規模WEBサービスに効果的なパターン!12月の大規模WEBサービスといえば、MixiXmas(http://mixixmas.mplace.jp)ですよね。Azureで動作しているようですね。今年追加されたRoleベースのキャッシュ機能も使っているのではないかと妄想に浸ってます。言ったものの、すでに大規模WEBサービスに効果的なパターンは、以下の@k1hashさんのブログで書かれておりますので、そちらをご参照ください。ブログ:「メリークリスマス!Azureアドベントカレンダーの儀を執り行う!」かっこよかったですね。自分とは迫力が違います。あとのパターンは、どう切り出してよいのか・・・・と悩みましたが、これ(↓)です。2.時間がない人に効果的なパターン!びみょう・・・。いう人は沢山いると思うんです。家に帰ってからサービス作ったりしますしね。良い言い方をするとスタートアップ向けパターンです。クラウドサービスをローカル環境で開発することが可能です。デバック実行することができます。利用すれば無償でサービスを開発することができます。インストールは以下の記事をご参照ください。http://kentablog.cluscore.com/2012/09/windows-azure-cloud-serviacevisual-studio.htmlクラウド上にリソースを用意しなくてもサービス開発が可能ですので、手軽に素早く取り掛かれます。8など、モバイル端末のアプリケーションでは、「通知」や「ソーシャルサービスとのID連携」「データの書き込みと読み込み」など、ある程度決まっている処理を開発しないといけないので労力がかかります。Azureモバイルサービスで用意されており、そのまま利用することにより、ほとんど開発しなくても実現できます。これによりモバイルアプリケーション開発者は、サーバ上のプログラムを書く必要がなくなり、モバイル端末上で動作するロジックやUXに集中することができます。モバイルサービスは、以下のブログをお勧めします。Directoryで認証WEBサービスでユーザ情報を取り扱う場合、ユーザ管理やユーザ認証用のプログラムを書く労力が発生します。使用すると一気に解決することがあります。使用したアプリケーションを開発すると、これらのサービスとシングルサインオンすることが可能になります。利用したシングルサインオン可能なWebアプリの作り方は、以下のブログをお勧めします。AzureのWebサービスです。ASP.NETのアプリケーションはもちろん、PHPのWEBアプリケーションも利用することが可能です。共有モードでスケールアウトが可能であり、専用仮想マシンへのスケールアップや専用マシンでのスケールアウトも簡単に実現できます。WebサイトはWebのみの機能となりますが、クラウドサービスと比べると手軽で少しの労力により利用することができる便利なサービスです。Domainで3箇所に保存されているのですが、データセンターがある地域で震災などの影響を受けても、他の地域に存在すデータを利用することが可能です。データのバックアップは非同期で行われます。バックアップの仕組みを作る必要がないため、開発者はサービスの開発に集中することができます。5日目は、こんなところで。