Windows Azure Active Directory Preview を使用したアプリケーション入門

6,810 views

Published on

2012年12月19日の「 JAZUG 女子部 ぷれぜんつ Build 祭り 」の Windows Azure Active Directory Preview セッション資料です。

Windows Azure Active Directory セッション内容
http://kentablog.cluscore.com/2012/12/windows-azure-active-directory.html
http://kentablog.cluscore.com/2012/12/windows-azure-active-directory.html#mstto=en (In English)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Windows Azure Active Directory Preview を使用したアプリケーション入門

  1. 1. Windows Azure Active Directory を使 用したアプリケーション入門 Japan Windows Azure User Group @kekekekenta Dec. 19, 2012
  2. 2. はじめに• Windows Azure Active Directoryは開発者プレビューということもあ り、常に情報が変化している状況です。• ということもあり、デモも失敗する場合がありますし、今回の資料 に書かれている内容が実際のものと異なる場合があるかもしれませ んので、ご了承ください。 2
  3. 3. Windows Azure Active Directoryとは• アプリケーションに以下の機能を提供 – ACS(アクセス制御) • Facebook などの IDプロバイダーや、オンプレミスのADFSなどを使用した 認証と承認を一元的に行えるようにする機能 – Windows Azure Active Directory(コアディレクトリおよび認証) • シングル サインオン(SSO)、ユーザーおよび グループの管理、オンプレミ スのActive Directory と同期、フェデレーションなどの機能 • Windows Azure AD Rights Management – Microsoft Online Services にサブスクライブしている組織のコンテンツを暗号化 して使用制限する機能• 今回は、Windows Azure AD (コアディレクトリおよび認証)を紹 介します!
  4. 4. WINDOWS AZURE ACTIVE DIRECTORY 4
  5. 5. Windows Azure Active Directory(コアディレクトリ および認証)• 特徴 – Windows Azure ADは、Microsoft社のSaaS製品で利用されている • Office365、Microsoft Dynamics CRM Online、Windows Server Online Backup、Windows Intune – RESTベースのサービス – サーバ製品のActive Directoryとは異なる• できること – 管理ポータルからユーザとグループの管理 – 認証と承認、シングル サインオン – アプリケーションからユーザなどのディレクトリ情報の取得と操作 – オンプレミスのActive Directoryとディレクトリ同期• アプリケーションからの利用 – 組織(テナント)向けアプリケーション – 複数組織(マルチテナント)向けアプリケーション 5
  6. 6. Windows Azure AD構成 6
  7. 7. 管理画面:サービス 7
  8. 8. 管理画面:ユーザとグループの管理 8
  9. 9. 管理画面:ドメインの管理 9
  10. 10. 管理画面:インテグレーション方法の紹介 10
  11. 11. 管理画面:アプリ開発者向け情報 11
  12. 12. WINDOWS AZURE ADアプリケーション 12
  13. 13. Windows Azure ADアプリケーションの種類• 組織のアプリケーション(Apps for your organization) – 自分の組織向けのような一つのテナントに対応するアプリケーション • 利用者は、Office365などとSSOが可能 • サンプルコード – http://code.msdn.microsoft.com/Write-Sample-App-for-79e55502• 複数組織用のアプリケーション(Apps for multiple organization) – 複数の組織で使うためのマルチテナント対応のアプリケーション • アプリ提供者は、Office365などのアカウントを使用したアプリをSaaS提供可能 • 利用者は、Office365などとSSOが可能 • サンプルコード – http://www.windowsazure.com/en-us/develop/net/tutorials/multitenant-apps-for-active- directory/ 13
  14. 14. Windows Azure ADアプリケーション作成準備• Windows Azure Active Directoryの新しいテナントを作成 – http://g.microsoftonline.com/0AX00en/5• Visual Studio 2012のインストール(Express for WebでもOK) – http://www.microsoft.com/visualstudio/jpn/products/visual-studio- express-products• ASP.NET Fall 2012 Update BUILD Prerelease のインストール – http://www.asp.net/vnext/overview/fall-2012-update 14
  15. 15. 組織のアプリケーション• 開発手順 1. Visual Studio 2012から新規Webプロジェクトの作成 2. ソリューションエクスプローラでプロジェクト選択後、右クリック で「Enable Windows Azure Authentication…」を実行 3. Windows Azure Active Directory Domainを入力 4. “Tenant Administrator”でログイン 5. 完成 • 自動でWeb.configと、Windows Azure ADにService Principalが設定される 6. Azure Websitesへ発行も可能 • 同様にWeb.configと、Service PrincipalがWindows Azure ADに設定される• 紹介ページ – ASP.net • http://www.asp.net/vnext/overview/fall-2012-update/windows-azure- authentication – 松崎 剛 Blog • http://blogs.msdn.com/b/tsmatsuz/archive/2012/11/09/windows-azure-active- directory-web-sso-using-asp-net.aspx 15
  16. 16. 16
  17. 17. 17
  18. 18. 18
  19. 19. 複数組織用のアプリケーション• さきほどの組織のアプリケーションと違うところ – Client ID は Seller Dashboardで生成する – 自分の組織で使用する場合は、Consentリクエストに より、複数組織用アプリから自分のテナント情報へ のアクセスを許可する必要がある• アプリケーション利用イメージ 1. アプリの「サインアップ」をクリック 2. Windows Azure ADの認証ページにリダイレクト 3. テナントの管理者で認証 4. アプリのConsentリクエストを許可するか選択 • Seller Dashboardで、パブリッシュされている場合 はテストアプリとは、見た目が異なる 5. アプリへリダイレクト 6. 組織のディレクトリ情報を利用したアプリ利用 19
  20. 20. 20
  21. 21. Consentリクエスト• Windows Azure ADテナントにアプリからのアクセス許可を要求 – セーラーダッシュボードに登録したクライアントIdを使用してConsentリクエスト • https://activedirectory.windowsazure.com/Consent/AuthorizeApplication.aspx?Applicatio nId={ClientId}&RequestedPermissions={RequestedPermissions} – パラメータ • ApplicationId(必須) – Seller Dashboard に登録した Client ID • RequestedPermissions(オプション) – DirectoryReader » 組織のユーザアカウント、グループ情報のディレクトリデータを読み込む権限を要求。SSOを有効にす る。 – UserAccountAdministrator » 組織のユーザアカウント、グループ情報のディレクトリデータを読み込みと書き込みする権限を要求。 SSOを有効にする – None(デフォルト) » SSOを有効にするが、ディレクトリデータへのアクセスは無効にする。 21
  22. 22. 22
  23. 23. 23
  24. 24. 24
  25. 25. Consentレスポンス• https://{Redirect URL}&TenantId={TenantId}&Consent={Consent}• パラメータ – TenantId • 許可されたWindows Azure AD組織のGUID – Consent • 許可された場合は”Granted“、リジェクトされた場合は”Denied” 25
  26. 26. 26
  27. 27. 27
  28. 28. ディレクトリアクセス• Graphにアクセス – Users • https://graph.windows.net/contoso.com/Users – Groups • https://graph.windows.net/contoso.com/Groups – Windows Azure Active Directory Graph • http://msdn.microsoft.com/en-us/library/windowsazure/hh974476.aspx 28
  29. 29. Graph APIからテナントのユーザ取得結果を表示 29
  30. 30. SELLER DASHBOARD 30
  31. 31. Seller Dashboard• Client Idの管理• マルチテナントアプリの管理• Office365アプリの管理• 支払の管理• アカウント作成 – 企業向け – 個人向け – ※アカウントが有効になるまで1日ぐらい時 間がかかります• Client ID作成• https://sellerdashboard.microsoft.com/ 31
  32. 32. Client ID Consentに よりClient IDでADに アクセス 可能にSeller DashboardのClient IDと同じIDで、Windows Azure ADのテナント内にServicePrincipalが作成される。 32
  33. 33. パブリッシュ• App Type – Active Directory Appを選択• Applicationマニフェストの作成 – プロダクション向けのClient IDとClient Secretを作成 – マニフェストをXMLで記述 – AppPermissionRequestsエレメントのPolicyアトリ ビュート • 現在はアプリケーションがディレクトリ情報をアク セスするためのAppOnlyのみ対応 – Reasonエレメント • Consentページに表示する言語を指定 – Seller Dashbordに登録する内容 • http://msdn.microsoft.com/en-us/library/jj552465.aspx• ステータス – pending approval • 検証中 – Approved • 承認された 33
  34. 34. MSONLINE FOR POWERSHELL 34
  35. 35. Windows Azure Active Directoryアクセスのための準備• PowerShell用管理モジュールのインストール – Microsoft Online Services Sign-In Assistant 7.0 • http://bit.ly/sCMOD3 – Microsoft Online Services Module for Windows PowerShell • http://bit.ly/UxfTri• コマンドリスト表示 – Get-Command Msonline – Get-Command MsonlineExtended• コマンドヘルプ表示 – Get-Help Get-MsolRole 35
  36. 36. PowerShellでWindows Azure Active Directoryに接続• PowerShellで接続例 – Import-Module msonline – Import-Module msonlineextended – Connect-MsolService -Credential (Get-Credential)• PowerShellで情報取得 – テナント情報の取得 • Get-MsolCompanyInformation – テナントIDの取得 • (Get-MsolCompanyInformation).ObjectId – サービスプリンシパルの取得 • Get-MsolServicePrincipal – 参考 • http://onlinehelp.microsoft.com/ja-jp/office365-enterprises/hh125002.aspx 36
  37. 37. その他 37
  38. 38. ロール• ロールのオブジェクトIDと名前の表示 – Get-MsolRole • Company Administrator – Global administrator(ポータル上の名前) • Helpdesk Administrator – Password administrator(ポータル上の名前) • Billing Administrator – Billing administrator(ポータル上の名前) • Service Support Administrator – Service administrator(ポータル上の名前) • User Account Administrator – User management administrator(ポータル上の名前)• ロールのメンバー表示 – Get-MsolRoleMember• ※Office365でユーザを”Global administrator”にするとWA AD Roleは”Company Administrator”になる• ※Consentリクエストの承諾は”Company Administrator”ロールが必要
  39. 39. Claims• http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn – ユーザのUPN。メールアドレスのようなRFC 2822スタイルの名前。UPNは変更される場合 があるので、この名前で管理しないように。• http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname – ファーストネーム• http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname – ラストネーム• http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod – IDプロバイダの認証URI• http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant – 認証のUTC時間(例えば、2012-12-19T07:00:00.000Z)• http://schemas.microsoft.com/ws/2012/10/identity/claims/tenantid – GUID表記のテナントID。グラフAPIのアクセスURLを作成するときに使用したりする。
  40. 40. 料金• アクセス制御 – トランザクション回数で料金が発生していたが、無料に!• コアディレクトリおよび認証 – 2013年12月1日まではキャンペーンで無料とアナウンスされていたが、その後も無料に!• Azure AD Rights Management – 別料金(料金は不明)• (参考)2012年11月30日のアナウンス – http://blogs.msdn.com/b/windowsazure/archive/2012/11/30/windows-azure-active-directory-making- it-easier-to-establish-identity-management-in-the-cloud.aspx• ※微妙にわかりにくい状況(英語ページ) – http://www.windowsazure.com/en-us/pricing/details/• ※データ転送料は別途発生すると考えられる 40
  41. 41. 今回の資料や今後のアップデートについて• ブログで紹介していけたらと思います。 – http://kentablog.cluscore.com• あと、Twitterでアップデート情報を流すかもしれません。 – @kekekekenta• 夜遅くまでありがとうございました!!! 41

×