Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Azure ADと外部アプリの
ID連携/SSO - Deep Dive
MVP for Enterprise Mobility
Naohiro Fujie / @phr_eidentity / http://idmlab.eidentity....
自己紹介
• Blog
• IdM実験室(Identityに関することを徒然と):http://idmlab.eidentity.p
• Social
• Facebook Page : eIdentity:https://www.facebo...
Agenda
1. Azure ADのアプリケーション連携のおさらい
2. ID連携(Federation)~ Deep Dive
• SAML2.0
• OpenID Connect/OAuth
Azure ADの
アプリケーション連携のおさらい
社内PC
ドメイン
個社リソース
社内ネットワーク
モバイルユーザ
クラウド・サービス
(共有リソース)
関係会社
・取引先
ID基盤
利用
管理
ポリシーに沿った利用
利用
社内と
SSO
利用
社内と
SSO
登録・管理
Azure ADに...
Azure AD
社内ネットワーク インターネット
社内ネットワーク
+インターネット
ファイルサーバ 社内Webアプリ クラウドWebアプリ
AD DS AD FS / WAP
ID基盤
アプリ
連携
デバイス
管理
Windows PC モ...
7
比較項目 オンプレミスID基盤 クラウドID基盤
製品・サービス 特徴 製品・サービス 特徴
管理主体と対象 AD DS ユーザ、グループ、
デバイス(ドメイン参加PC)
Azure AD ユーザ、グループ、
デバイス(直接Azure AD...
Azure AD
SaaSアプリケーション
自社開発アプリケーション
Azure ADと連携しているAPL群
③認証
①アクセス
②認証要求
④認証結果
APL登録
- URL情報の交換
- 公開鍵の取得、APL側へ登録
ID情報の同期
⑤認証...
社内ネットワーク
Azure AD
SaaSアプリケーションID連携
(SAML/OpenID Connect/ws-federation)
Azure ADと連携して
いるAPL間でSSO
ID連携
(SAML/ws-federation)
...
連携アプリの選択と利用
11
SSOとID同期の設定
12
IPベースのアクセス制御
ID連携(Federation)~ Deep Dive
- SAML 2.0
- OpenID Connect/OAuth
アンケート)どれが見たいですか?
1. SAML2.0
A) Google AppsとのSSO
B) カスタムアプリ(PHP)とのSSO
2. OpenID Connect/OAuth
A) カスタムアプリ(PHP)とのSSO
B) API生タ...
SAML 2.0
Azure ADの対応状況
• メタデータに聞いてみる
16
17
メタデータから読み取れること
項目 対応状況 Metadata内の値
Protocol Version 2.0 urn:oasis:names:tc:SAML:2.0:protocol
SSO - Binding HTTP-Redirect u...
SAMLを使ったアプリケーションとのSSO設定
19
• ギャラリーにある定義済みアプリケーション
• Google Apps
• カスタム・アプリケーション
• simplesamlphpを組み込んだphpアプリ(on App Service)
Google AppsとのSSO設定デモ
【やること】
・ギャラリーから選択してアプリケーションを追加
・シングルサインオン設定
・プロビジョニング設定
・属性マッピング
・SAML TracerでSAML Assertionを確認
・(時間が...
ざっくり手順
1. ドメインを追加(Google Appsで使うドメインと同じもの)
2. ユーザ追加
3. アプリケーション追加(ギャラリーより)
4. シングルサインオン設定
5. プロビジョニング設定
6. 属性マッピングの変更(Asse...
カスタムアプリとのSSO設定デモ
【やること】
・App Serviceの作成
・simplesamlphpのデプロイ
・ギャラリーから選択してアプリケーションを追加
・シングルサインオン設定(IdP/SP両方)
・属性マッピング
・SAML ...
ざっくり手順
1. App Serviceの作成
2. デプロイ設定:git
3. Simplesamlphpのダウンロード、解凍、設定(Adminパスワード、IdP EntityID)
4. App Serviceへのデプロイ
5. 仮想ディ...
OpenID Connect/OAuth
Azure ADの対応状況
• .well-known/openid-configurationに聞いてみる
• https://login.microsoftonline.com/common/.well-known/openid-confi...
openid-configurationから読み取れること
項目 対応状況
token_endpoint_a
uth_methods_sup
ported
client_secret_post、private_key_jwt
response_...
OIDCを使ったアプリケーションとのSSO設定
27
• カスタム・アプリケーション
• phpアプリ(on App Service)
• プロトコルを生で実行する(Advanced REST Client)
• Graph APIを直接実行し...
カスタムアプリとのSSO設定デモ
【やること】
・App Serviceの作成
・アプリケーションの追加
・phpアプリの作成
ざっくり手順
1. App Serviceの作成
• Visual Studio Onlineの有効化
2. アプリケーション追加
• client secretの生成
3. Visual Studio Onlineでphpアプリの作成
• エ...
APIの生タタキのデモ
【やること】
・アプリケーションの追加
・code flowでid tokenとaccess tokenをとる
・id tokenをjwt.ioで覗いてみる
・userinfoエンドポイントをたたいてみる
・implic...
ざっくり手順
1. UserInfoをたたく(Code flowを利用)
• Webアプリケーションを作成する
• Client secretを生成する
• Authorization Codeの取得
• Codeでid_tokenとacces...
まとめ
まとめ
割と簡単
おしらせ
de:code 2016
Upcoming SlideShare
Loading in …5
×

Azure ADと外部アプリのID連携/SSO - Deep Dive

8,614 views

Published on

2016年3月18日に開催された「Active Directory & Security Conference 2016」で使用したスライド。
SAML/OpenID ConnectのアプリケーションとAzure ADのSSO設定について解説します。

Published in: Technology

Azure ADと外部アプリのID連携/SSO - Deep Dive

  1. 1. Azure ADと外部アプリの ID連携/SSO - Deep Dive MVP for Enterprise Mobility Naohiro Fujie / @phr_eidentity / http://idmlab.eidentity.jp 1
  2. 2. 自己紹介 • Blog • IdM実験室(Identityに関することを徒然と):http://idmlab.eidentity.p • Social • Facebook Page : eIdentity:https://www.facebook.com/eidentity • Modules(codeplex) • Generic REST MA for FIM/MIM:https://restmafim.codeplex.com/ • 記事 • 企業のID管理/シングルサインオンの新しい選択肢「IDaaS」の活用 (http://www.atmarkit.co.jp/ait/articles/1508/07/news034.html)etc • その他 • JNSA アイデンティティ管理WG(書籍:「クラウド環境におけるアイデンティティ管理ガイドライン」etc) • OpenID Foundation Japan 教育・翻訳WG(OAuth/OpenID Connect仕様翻訳)、エンタープライズ・アイデン ティティWG
  3. 3. Agenda 1. Azure ADのアプリケーション連携のおさらい 2. ID連携(Federation)~ Deep Dive • SAML2.0 • OpenID Connect/OAuth
  4. 4. Azure ADの アプリケーション連携のおさらい
  5. 5. 社内PC ドメイン 個社リソース 社内ネットワーク モバイルユーザ クラウド・サービス (共有リソース) 関係会社 ・取引先 ID基盤 利用 管理 ポリシーに沿った利用 利用 社内と SSO 利用 社内と SSO 登録・管理 Azure ADによるクラウドや社外利用者・モバイルを含めたアクセス管理 Azure ADを中心としたID基盤 Azure AD/Intune(クラウドID基盤) ID連携 ID連携 ID連携 アクセス管 理の一元化
  6. 6. Azure AD 社内ネットワーク インターネット 社内ネットワーク +インターネット ファイルサーバ 社内Webアプリ クラウドWebアプリ AD DS AD FS / WAP ID基盤 アプリ 連携 デバイス 管理 Windows PC モバイルデバイス AD DSによるオンプレミスID基盤 AD FSによるクラウドへの拡張(ハイブリッドID基盤) Azure ADによるクラウドID基盤 ドメイン参加/ グループポリ シーによる管理 統合Windows認証 ID連携(SAML/OpenID Connect等) DRS(デバイス登録 サービス) /Intuneによる管理 構成要素
  7. 7. 7 比較項目 オンプレミスID基盤 クラウドID基盤 製品・サービス 特徴 製品・サービス 特徴 管理主体と対象 AD DS ユーザ、グループ、 デバイス(ドメイン参加PC) Azure AD ユーザ、グループ、 デバイス(直接Azure ADで管 理するWindows 10、オンプレ のドメイン参加PC) ポリシー適用 AD DS/SCCM 詳細な制限が可能 Azure AD /Intune 詳細な制限は不可能(モバイル デバイス管理機能が中心) シングルサインオン 対象 AD DS ファイルサーバ等を含む統合 Windows認証 - Kerberos/NTLMアプリケー ションやリソースは不可能 AD FS SAML/ws-federationに対応し たWebアプリケーション(個別 設定が前提) Azure AD SAML/ws- federation/OpenID Connect に対応したWebアプリケー ション(あらかじめプリセット されたアプリケーションから選 択、および個別設定が可能) ID管理 MIM (Microsoft Identity Manager) 各種アプリケーションへのID同 期が可能(開発・カスタマイズ が前提) Azure AD 主要SaaSアプリケーションへ のID同期機能がプリセット SCIMに対応したアプリケー ションへのID同期も可能だが 限定的 オンプレミスID基盤との比較
  8. 8. Azure AD SaaSアプリケーション 自社開発アプリケーション Azure ADと連携しているAPL群 ③認証 ①アクセス ②認証要求 ④認証結果 APL登録 - URL情報の交換 - 公開鍵の取得、APL側へ登録 ID情報の同期 ⑤認証結果 の検証 ⑥同期済み ユーザとの 紐づけ シングルサインオン(APL連携) Azure AD
  9. 9. 社内ネットワーク Azure AD SaaSアプリケーションID連携 (SAML/OpenID Connect/ws-federation) Azure ADと連携して いるAPL間でSSO ID連携 (SAML/ws-federation) AD FS Azure AD Connect AD DS ID情報の同期ID情報の同期 Azure ADを経由して 社内AD FSへ連携 企業内ユーザ 統合Windows 認証でSSO シングルサインオン(APL連携)/ハイブリッド Azure AD
  10. 10. 連携アプリの選択と利用
  11. 11. 11 SSOとID同期の設定
  12. 12. 12 IPベースのアクセス制御
  13. 13. ID連携(Federation)~ Deep Dive - SAML 2.0 - OpenID Connect/OAuth
  14. 14. アンケート)どれが見たいですか? 1. SAML2.0 A) Google AppsとのSSO B) カスタムアプリ(PHP)とのSSO 2. OpenID Connect/OAuth A) カスタムアプリ(PHP)とのSSO B) API生タタキ(UserInfo/Graph API) 14 注)全部今から作ります・・・ やれて2個かな。。。
  15. 15. SAML 2.0
  16. 16. Azure ADの対応状況 • メタデータに聞いてみる 16
  17. 17. 17
  18. 18. メタデータから読み取れること 項目 対応状況 Metadata内の値 Protocol Version 2.0 urn:oasis:names:tc:SAML:2.0:protocol SSO - Binding HTTP-Redirect urn:oasis:names:tc:SAML:2.0:bindings: HTTP-Redirect HTTP-POST urn:oasis:names:tc:SAML:2.0:bindings: HTTP-POST SLO - Binding HTTP-Redirect urn:oasis:names:tc:SAML:2.0:bindings: HTTP-Redirect 18
  19. 19. SAMLを使ったアプリケーションとのSSO設定 19 • ギャラリーにある定義済みアプリケーション • Google Apps • カスタム・アプリケーション • simplesamlphpを組み込んだphpアプリ(on App Service)
  20. 20. Google AppsとのSSO設定デモ 【やること】 ・ギャラリーから選択してアプリケーションを追加 ・シングルサインオン設定 ・プロビジョニング設定 ・属性マッピング ・SAML TracerでSAML Assertionを確認 ・(時間があれば)IPベースの条件付きアクセス
  21. 21. ざっくり手順 1. ドメインを追加(Google Appsで使うドメインと同じもの) 2. ユーザ追加 3. アプリケーション追加(ギャラリーより) 4. シングルサインオン設定 5. プロビジョニング設定 6. 属性マッピングの変更(Assertion) 7. アクセスルールの定義 21
  22. 22. カスタムアプリとのSSO設定デモ 【やること】 ・App Serviceの作成 ・simplesamlphpのデプロイ ・ギャラリーから選択してアプリケーションを追加 ・シングルサインオン設定(IdP/SP両方) ・属性マッピング ・SAML TracerでSAML Assertionを確認
  23. 23. ざっくり手順 1. App Serviceの作成 2. デプロイ設定:git 3. Simplesamlphpのダウンロード、解凍、設定(Adminパスワード、IdP EntityID) 4. App Serviceへのデプロイ 5. 仮想ディレクトリマッピングの追加 6. アプリケーション追加(ギャラリーより) 7. SSO設定(IdP metadataのダウンロード) 8. SimplesamlphpへのIdP登録 23
  24. 24. OpenID Connect/OAuth
  25. 25. Azure ADの対応状況 • .well-known/openid-configurationに聞いてみる • https://login.microsoftonline.com/common/.well-known/openid-configuration 25
  26. 26. openid-configurationから読み取れること 項目 対応状況 token_endpoint_a uth_methods_sup ported client_secret_post、private_key_jwt response_modes_ supported Query、Fragment、form_post response_types_s upported Code、id_token、code id_token、token id_token、token scopes_supported Openid claims_supported Sub、iss、aud、exp、iat、auth_time、acr、amr、nonce、 email、given_name、family_name、nickname 26
  27. 27. OIDCを使ったアプリケーションとのSSO設定 27 • カスタム・アプリケーション • phpアプリ(on App Service) • プロトコルを生で実行する(Advanced REST Client) • Graph APIを直接実行してみる
  28. 28. カスタムアプリとのSSO設定デモ 【やること】 ・App Serviceの作成 ・アプリケーションの追加 ・phpアプリの作成
  29. 29. ざっくり手順 1. App Serviceの作成 • Visual Studio Onlineの有効化 2. アプリケーション追加 • client secretの生成 3. Visual Studio Onlineでphpアプリの作成 • エンドポイント、client idとclient secretの設定 29
  30. 30. APIの生タタキのデモ 【やること】 ・アプリケーションの追加 ・code flowでid tokenとaccess tokenをとる ・id tokenをjwt.ioで覗いてみる ・userinfoエンドポイントをたたいてみる ・implicit flowでaccess tokenをとる ・Graph APIをたたいてみる
  31. 31. ざっくり手順 1. UserInfoをたたく(Code flowを利用) • Webアプリケーションを作成する • Client secretを生成する • Authorization Codeの取得 • Codeでid_tokenとaccess_tokenの取得 2. Graph APIをたたく(Implicit flowを利用) • Nativeアプリケーションを作成する • Manifestを編集してImplicitを有効化する • ディレクトリへのアクセス権限を追加する 31
  32. 32. まとめ
  33. 33. まとめ 割と簡単
  34. 34. おしらせ de:code 2016

×