OpenAMによる 最 新 認 証 連 携 ~Office365 Googleとの 連 携 ~ 株 式 会 社 野 村 総 合 研 究 所 IT 基 盤 イノベーション 事 業 本 部 オープンソースソリューション 推 進 室 和 田 広 之 株 式 会 社 野 村 総 合 研 究 所 情 報 技 術 本 部 オープンソースソリューション 推 進 室 Mail : ossc@nri.co.jp Web: http://openstandia.jp/
アジェンダ 1. Office 365との 認 証 連 携 2. Googleとの 認 証 連 携 (OpenID Connect) 1
はじめに 2
自 己 紹 介 所 属 部 署 オープンソースソリューション 推 進 室 OSSを 使 ったシステム 構 築 から 運 用 までワンストップでサポート 対 象 OSSは50 種 類 以 上 OpenStandiaの 紹 介 URL ( http://openstandia.jp/ ) 私 の 担 当 OSSをベースとしたソリューション 開 発 を 担 当 OpenStandia/SSO&IDM V2を11/5リリース ( http://www.nri.com/jp/news/2014/141105.html ) OpenAM OpenIDMの 機 能 拡 張 バグ 修 正 等 を 実 施 しています 3
Office 365との 認 証 連 携 4
Office 365との 認 証 連 携 企 業 内 だけのSSOから SaaSも 含 めたSSOが 昨 今 求 め られている その 中 でも Office 365(o365)と 認 証 連 携 したいニー ズが 高 まってる 従 来 は Microsoft 製 品 (AD ADFS)との 組 み 合 わせが 必 要 であったが o365もsaml2.0に 対 応 し 単 独 で 認 証 連 携 が 可 能 に 今 後 活 用 事 例 が 増 えそうな o365との 認 証 連 携 をデモを 交 えて 紹 介 5
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 6
o365とは Microsoftが 提 供 する 統 合 的 なクラウドサービス メールサービスのExchange Online ナレッジ 共 有 のSharePoint Online オンライン 会 議 のLync Online Office 365 ProPlus 7 ( 出 所 ) http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
o365とは 8
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 9
従 来 の 連 携 方 式 社 内 にADがある 場 合 社 内 にADがない 場 合 10
従 来 の 連 携 方 式 社 内 にADがある 場 合 ADFS(Active Directoryフェデレーションサービス)をo365 連 携 に 利 用 OpenAMはADを 認 証 先 としてデスクトップSSOを 行 う Outlookなどのメールクライアントを 利 用 する 場 合 はADFS Proxyが 必 要 DMZ ADFS Proxy 社 内 ネットワーク 認 証 認 証 11 AD ADFS 社 内 システム ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
従 来 の 連 携 方 式 社 内 にADがない 場 合 認 証 DBにOpenLDAPやOpenDJなどのLDAP MySQLなどのRDBを 使 用 しているケース OpenAMではオフィシャルには 認 証 連 携 できず (o365 は 正 式 にはSAML2.0に 対 応 せず) 直 接 連 携 できず 社 内 ネットワーク 12 LDAPなど 社 内 システム ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 13
新 しい 連 携 方 式 2014/03/06に 正 式 にSAML2.0の 対 応 が Microsoftよりアナウンスされた マイクロソフトは Office 365 ユーザーを 対 象 に Security Assertion Markup Language (SAML) 2.0 によるフェデレー ションをサポートすることを 発 表 しました これは Active Directory 以 外 のオンプレミスの ID プロバイダーを 利 用 している Office 365 ユーザーに 向 けた 新 機 能 の 1 つで 他 の 機 能 と 併 せて Web ベース の Office アプリケーションで アカウントの 同 期 サインインのフェデレー ション およびシングル サインオンを 可 能 にするパッシブ 認 証 の 利 用 範 囲 の 拡 大 を 実 現 します ( 出 所 ) http://community.office365.com/ja-jp/b/office_365_community_blog/archive/2014/03/0 7/office-365-saml-2-0.aspx 14
新 しい 連 携 方 式 - o365 のSAML2.0 対 応 o365ではazure ADがアカウント 管 理 認 証 に 使 われて いる Azure ADがSPとなり OpenAM(IdP)と 認 証 連 携 (フ ェデレーション)を 行 う ここにOpenAM を 使 用 することが 正 式 に 可 能 に 15 ( 出 所 ) http://community.office365.com/ja-jp/b/office_365_community_blog/archive/2014/03/07/office-365-saml-2-0.aspx
新 しい 連 携 方 式 ForgeRock 社 も9 月 にo365 連 携 の 設 定 方 法 を 公 開 https://wikis.forgerock.org/confluence/display/openam/micr osoft+office+365+integration 構 成 例 DMZ SAML ECP 利 用 時 に 必 要 ( 後 述 ) Reverse Proxy 社 内 ネットワーク 16 LDAPなど 社 内 システム ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
注 意 点 :SAML 2.0による 連 携 時 の 制 約 Office デスクトップアプリケーションは 対 象 外 Lync デスクトップ クライアントの 使 用 ただし 2014 年 後 半 にSAML 2.0にも 対 応 予 定 との 話 もある メールクライアントを 利 用 する 場 合 はSAML ECPへの 対 応 が 必 要 Outlook デスクトップ クライアントの 使 用 モバイル クライアントから Exchange Online への 接 続 ECPについては 次 のスライドで 補 足 17
SAML ECP(Enhanced Client or Proxy)とは 大 まかに 言 うとブラウザ 以 外 (リダイレクトに 対 応 していない)のクライ アントをSAMLで 認 証 するための 仕 様 o365の 場 合 Outlookなどのメールクライアントが 対 象 o365を 経 由 してOpenAMにSOAPで 認 証 要 求 が 渡 ってくる DMZ Reverse Proxy 社 内 ネットワーク 18 LDAPなど 社 内 システム ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/ ADFS Proxy を 使 用 した 場 合 と 同 じ 動 き
SAML ECPの 注 意 点 OpenAMに 対 してインターネットからアクセス 許 可 が 必 要 何 も 考 えないで 構 築 すると 社 外 からのo365アクセスでメールが 使 えてしまう ので 注 意 社 外 からの 利 用 を 禁 止 する 場 合 は アクセス 元 のIPアドレスにてアクセス 制 限 を 適 切 に 行 う 必 要 がある SSL 証 明 書 が 必 要 o365からのアクセスはsslが 必 須 アクセス 元 はMSなので MSが 対 応 している 認 証 局 が 発 行 した 物 が 必 要 OpenAMではECPに 対 応 しているが 現 状 そのままでは 動 作 しない ECPのモジュール 拡 張 が 必 要 (BASIC 認 証 でアクセス 許 可 するように) ECPに 対 応 しない 場 合 は メール 機 能 はWebメール (OWA:Outlook Web App)の 利 用 に 限 定 させる 必 要 あり 19
o365のsamlメッセージの 要 件 HTTPSが 必 須 サポート 対 象 のバインディング 方 式 ログインはHTTP POST ログアウトはREDIRECT 必 須 属 性 NameID: o365ユーザのimmutableidと 同 じ 値 IDPEmail: o365ユーザのuserprincipalname(upn)と 同 じ 値 Issuer: IdPのURIで o365に 設 定 された 物 と 同 じ 値 NameIDフォーマットURI urn:oasis:names:tc:saml:2.0:nameid-format:persistent http://technet.microsoft.com/ja-jp/library/dn641269.aspx に 詳 細 は 記 載 アカウント 紐 づけ 情 報 をOpenAM 側 で 永 続 化 する 必 要 あり 20
SAML 利 用 時 のアカウントの 紐 づけ LDAPなど uid: demo1 sn: 野 村 givenname: 太 郎 mail: demo1@openamdemo.mydns.jp sun-fm-saml2-nameid-info: https://sso.opena mdemo.mydns.jp:443/openam urn:federation:m icrosoftonline demo1 https://sso.openamdem o.mydns.jp:443/openam urn:oasis:names:tc:sa ML:2.0:nameid-format:persistent null urn:federa <samlp:response > tion:microsoftonline IDPRole false <saml:subject> Account Linking SAML レスポンス <saml:nameid >demo1</saml:nameid> <saml:subject> <saml:attributestatement> <saml:attribute name="idpemail"> <saml:attributevalue > demo1@openamdemo.mydns.jp </saml:attributevalue> </saml:attribute> </saml:attributestatement> </saml:assertion> </samlp:response> UserPrincipalName: demo1@open amdemo.mydns.jp ImmutableID: demo1 LastName: 野 村 FirstName: 太 郎 UsageLocation: JP 21 ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 22
OpenAM - o365 連 携 設 定 のポイント OpenAMの 設 定 o365の 設 定 o365の 設 定 OpenAM の 設 定 DMZ Reverse Proxy 社 内 ネットワーク 23 LDAPなど 社 内 システム ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
OpenAMの 設 定 IDPの 作 成 (CoTの 作 成 ) リモートSPの 登 録 (o365のメタデータのインポート) 属 性 マッピング 設 定 IDPメタデータのエクスポート 接 続 テスト 用 ユーザの 登 録 24
IDPの 作 成 (CoTの 作 成 ) 管 理 画 面 から 設 定 ウィザードを 開 き 作 成 25
リモートSPの 登 録 (o365のメタデータのインポート) o365のメタデータを 下 記 URLから 取 得 https://nexus.microsoftonline-p.com/federationmetadata/sa ml20/federationmetadata.xml 取 得 したXMLから <signature>...</signature>を 削 除 してから OpenAMにインポート 26
属 性 マッピング 設 定 SAMLレスポンスのIDPEmail 属 性 にメールアドレスを 設 定 するようにマッピング 定 義 を 行 う IDPEmail=mail を SP 側 の 属 性 マッパーに 設 定 しておく 27
IDPメタデータのエクスポート OpenAMのメタデータ 出 力 URLにアクセスし 保 存 例 ) https://sso.openamdemo.mydns.jp/openam/saml2/jsp/e xportmetadata.jsp?realm=/&entityid=https://sso.openam demo.mydns.jp:443/openam 青 字 の 部 分 をo365 側 の 設 定 時 に 利 用 する 28 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <EntityDescriptor entityid="https://sso.openamdemo.mydns.jp:443/openam" xmlns="urn:oasis:names:tc:saml:2.0:metadata"> <IDPSSODescriptor WantAuthnRequestsSigned="false" protocolsupportenumeration="urn:oasis:names:tc:saml:2.0:protocol"> <KeyDescriptor use="signing"> <ds:keyinfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:x509data> <ds:x509certificate> MIICQDCCAa == </ds:x509certificate> </ds:x509data> </ds:keyinfo> </KeyDescriptor> <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.openamdemo.mydns.jp:443/openam/IDPSloRedirect/metaAlias/idp" ResponseLocation="https://sso.openamdemo.mydns.jp:443/openam/IDPSloRedirect/metaAlias/idp"/> <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sso.openamdemo.mydns.jp:443/openam/SSOPOST/metaAlias/idp"/> <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://sso.openamdemo.mydns.jp:443/openam/SSOSoap/metaAlias/idp"/> </IDPSSODescriptor> </EntityDescriptor>
接 続 テスト 用 ユーザの 作 成 (OpenAM) o365 側 のアカウントとの 紐 づけのため 下 記 情 報 を 追 加 設 定 o365 側 のUserPrincipalNameと 同 じ 値 (メールアドレス)をmail 属 性 に o365 側 のImmutableIDと 同 じ 値 (デモではuidの 値 を 利 用 )をsun-fmsaml2-nameid-infoに 登 録 uid: demo1 sn: 野 村 givenname: 太 郎 mail: demo1@openamdemo.mydns.jp sun-fm-saml2-nameid-info: https://sso.openamdemo.myd ns.jp:443/openam urn:federation:microsoftonline demo1 htt ps://sso.openamdemo.mydns.jp:443/openam urn:oasis:nam es:tc:saml:2.0:nameid-format:persistent null urn:federatio n:microsoftonline IDPRole false 29
o365 側 の 設 定 ドメインの 追 加 フェデレーションドメインの 設 定 テスト 用 のユーザ 追 加 30
ドメインの 追 加 デフォルトのドメインではフェデレーションの 設 定 ができない ため o365に 独 自 ドメインを 追 加 する 所 有 しているドメインが 必 要 ドメインの 所 有 権 確 認 用 に DNSサーバに 対 してTXTまたはMXレコード の 設 定 が 必 要 デモではフリーのDDNSサービスであるmydns.jpで 取 得 したドメインを 利 用 31
フェデレーションドメインの 設 定 PowerShellで 設 定 Azure AD Module のインストールも 必 要 Connect-MsolService で 接 続 (ログイン) Set-MsolDomainAuthentication で 追 加 したドメインをフェデレーション 用 に 設 定 する 32
フェデレーションドメインの 設 定 設 定 値 にOpenAMのメタデータに 記 載 の 値 を 指 定 ECPの 設 定 は HTTPSでないとエラーになるので 注 意 ECPを 使 用 しない 場 合 は -ActiveLogOnUriの 設 定 なしでコマンドを 実 行 す ればOK $dom = "openamdemo.mydns.jp" $url = "https://sso.openamdemo.mydns.jp/openam/ssopost/metaalias/idp" $ecp="https://sso.openamdemo.mydns.jp/openam/ssosoap/metaalias/idp" $entity = "https://sso.openamdemo.mydns.jp:443/openam" $logout = "https://sso.openamdemo.mydns.jp/openam/idpsloredirect/metaalias/idp" $cert = "MIIC 0Q==" Set-MsolDomainAuthentication -DomainName $dom ` -FederationBrandName $dom ` -Authentication Federated ` -PassiveLogOnUri $url ` -SigningCertificate $cert ` -IssuerUri $entity ` -ActiveLogOnUri $ecp ` -LogOffUri $logout ` -PreferredAuthenticationProtocol SAMLP OpenAMのメタデー タXMLから 該 当 箇 所 をコピー 33
接 続 テスト 用 ユーザの 作 成 (o365) PowerShellの 下 記 コマンドでテスト 用 ユーザを 作 成 この 時 指 定 するUserPrincipalNameとImmutableIdが 重 要 OpenAM 側 のユーザとの 紐 づけに 使 用 される new-msoluser ` -DisplayName " 野 村 太 郎 " ` -UserPrincipalName demo1@openamdemo.mydns.jp ` -UsageLocation JP ` -ImmutableId demo1 作 成 ユーザにライセンス 付 与 34
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 35
動 作 デモ 構 成 AWSを 利 用 しインターネット 上 に 構 築 認 証 データストアにはOpenAMに 付 属 の 組 込 OpenDJを 利 用 SSO 保 護 対 象 アプリケーションとしてWordPressを 構 築 AWS Open AM Word Press Docker My SQL 36
動 作 デモ SP 起 点 でログイン ユーザはSP(o365)にまずアクセス https://login.microsoftonline.com/login.srf IdP(OpenAM)で 認 証 SP(o365)にアクセス IdP 起 点 でログイン ユーザはIdP(OpenAM)にまずアクセス https://sso.openamdemo.mydns.jp/openam/saml2/jsp/idpss OInit.jsp?metaAlias=/idp&spEntityID=urn:federation:Microsoft Online&NameIDFormat=urn:oasis:names:tc:SAML:2.0:nameid -format:persistent IdP(OpenAM)で 認 証 SP(o365)にアクセス 37
動 作 デモ SP 起 点 の 場 合 ログインIDの 入 力 が 必 要 共 通 ログイン 画 面 にてログインIDの 入 力 が 求 められる Office 365は 入 力 されたログインIDのドメイン 名 をもとに IdPへのリダイレク トを 行 う 仕 様 ポータルサイトなどにIdP 起 点 のURLリンクをつけるなどの 対 応 が 必 要 38
Office 365との 認 証 連 携 1. Office 365とは 2. 従 来 の 連 携 方 式 3. 新 しい 連 携 方 式 4. 連 携 設 定 のポイント 5. 動 作 デモ 6. まとめ 39
まとめ AD ADFSがない 環 境 でもOpenAMとo365の 認 証 連 携 が 可 能 に ただし 機 能 制 限 は 現 状 あるので 注 意 ( 今 後 解 消 される 見 込 みはあり) o365との 認 証 連 携 設 定 には 独 自 ドメインの 取 得 が 必 要 実 運 用 を 考 慮 すると o365(azure AD)/OpenAMユ ーザの 自 動 プロビジョニングが 必 要 MSのo365 用 のID 同 期 のツールもあるが 制 限 がある(ADが 必 要 FIMが 必 要 など) Azure AD Graph API(REST API)が 使 用 できるため 自 前 でID 連 携 の コードを 書 くことも 可 能 (OpenAMもREST APIがあります) 運 用 負 荷 や 内 部 統 制 その 他 の 認 証 連 携 先 へのプロビジョニングも 考 慮 す ると OpenIDM 等 の 専 用 のID 管 理 ツールの 導 入 も 合 わせて 検 討 すべき 40
Googleとの 認 証 連 携 (OpenID Connect) 41
Googleとの 認 証 連 携 自 社 サービスをSaaSとして 公 開 する 際 に Googleなどの 外 部 IDと 認 証 連 携 しシングルサインオンする 企 業 も 増 え てきている OpenAMはバージョン10からOAuth2 連 携 に 対 応 バージョン12ではOpenID Connect(OIDC)による 認 証 連 携 にも 対 応 加 えて OAuth2/OIDCの 簡 単 設 定 機 能 が 追 加 Googleを 例 にOIDCによる 連 携 設 定 をデモを 交 えて 紹 介 42
連 携 方 式 OIDC Basic Clientで 認 証 連 携 Google ログイン 認 証 連 携 利 用 SaaS 事 業 者 OIDC Basic Client(Authoriza tion Code Flow) による 直 接 通 信 公 開 サービス(SSO 保 護 対 象 ) 43 ( 出 所 )http://www.microsoft.com/ja-jp/office/365/about/default.aspx/
設 定 の 流 れ Google 側 の 設 定 Google+ APIの 有 効 化 認 証 情 報 の 作 成 OpenAM 側 の 設 定 Googleとの 接 続 情 報 をウィザードで 設 定 44
Google+ APIの 有 効 化 Google Developers Console から Google+ API を 有 効 化 する 45
認 証 情 報 の 作 成 プロジェクト > APIと 認 証 > 認 証 情 報 > OAuthから 作 成 する APIと 認 証 > 同 意 画 面 にてメールアドレスの 選 択 を 忘 れないように 46
OpenAM 側 の 設 定 Googleとの 認 証 連 携 を 行 うウィザードを 起 動 47
OpenAM 側 の 設 定 Googleとの 接 続 情 報 を 設 定 Client ID Client Secret Redirect URL 48
動 作 デモ OIDCによる 認 証 連 携 設 定 Googleアカウントでログイン&JITプロビジョニング 49
まとめ OpenAM12からOIDCによる 認 証 連 携 も 可 能 に ウィザード 機 能 で 初 期 設 定 も 簡 単 に! 50
本 日 のまとめ OpenAMの 最 新 認 証 連 携 として 以 下 を 紹 介 Office 365との 認 証 連 携 Google との 認 証 連 携 社 内 の 認 証 基 盤 自 社 サービスの 認 証 基 盤 の 両 方 に 対 応 可 能 51
OpenStandiaは 攻 めのIT を 支 援 します オープンソースのことなら なんでもご 相 談 ください! お 問 い 合 わせは NRIオープンソースソリューション 推 進 室 へ ossc@nri.co.jp http://openstandia.jp/ 52 本 資 料 に 掲 載 されている 会 社 名 製 品 名 サービス 名 は 各 社 の 登 録 商 標 又 は 商 標 です NRIオープンソースソリューション NRIオープンソースソリューション 推 進 室 推 Copyright 2014 進 室 Copyright 2014 Nomura Nomura Research Research Institute, Institute, Ltd. All Ltd. rights All reserved. rights reserved.