ID連携のあるとき~、ないとき~ #エンプラ編

34
OpenID フフフフフフフフフ フフフフ Enterprise Identity WG / フフ TF フフフフ フフ フ フフフフフフフフフフフ () ID 連連連連連連連 連連連連連 ~、~ # 連連連連連 OpenID TechNight Vol.13

Transcript of ID連携のあるとき~、ないとき~ #エンプラ編

Page 1: ID連携のあるとき~、ないとき~ #エンプラ編

OpenID ファウンデーション・ジャパン

Enterprise Identity WG / 技術 TF リーダー

八幡 孝(株式会社オージス総研)

ID 連携のあるとき~、ないとき~# エンプラ編

OpenID TechNight Vol.13

Page 2: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 2

ID とは?

Identifier Identity ← 今日はこっちの話

Page 3: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 3

Identity とは?

主体 (Entity | Subject)人とか PC とかサービスとか、 ...

Identity主体にかかわる属性の集合体

ひとつの主体に、コンテキスト毎の Identity

Page 4: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 4

認証とは?

主体(人)を Identity に紐付けること

アクセスをしている主体は、

サービス・システムが認識している、どの Identity と

紐付いているか、

本人だけが知り得る、所有する情報をもって確認する

Page 5: ID連携のあるとき~、ないとき~ #エンプラ編

エンプラでの ID 管理の変遷

Page 6: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 6

① システム毎に管理をしていた時代

勤務管理システム

経理システム

PC ログオン(Active Directory)

社内に広がったたくさんのシステム

システム毎の担当者が ID を登録管理

システム毎の認証方法でシステムを利用

Identity

Identity

Identity

認証

認証

認証

Page 7: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 7

② 個人情報保護法、 J-SOX への対応

勤務管理システム

経理システム

PC ログオン(Active Directory)

社内に広がったたくさんのシステム

信頼できる源泉情報を使ってID を適正に更新SSO システムで

認証を受けてシステムを利用

シン

グル

サイ

ンオ

ンシ

ステ

ID

管理

シス

テム

認証

結果

の連

Identityの

自動

更新

認証

人事システム

ワークフローシステム

Page 8: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 8

② 個人情報保護法、 J-SOX への対応

ID 管理システムによる ID の一元管理

独自プロトコル or LDAP or CSV シングルサインオンによる認証の一元管理

リバプロ or エージェント

ヘッダー連携 or 代理認証 製品毎、システム毎の独自実装を使った ID 連携

Page 9: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 9

③ クラウドアプリの利用が進む

SSO システムで認証を受けてクラウドアプリを利用

シングルサインオンシステム

認証

ドメインを越えた認証結果の連携企業内ネットワーク

業務にクラウドアプリを利用

Page 10: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13

③ クラウドアプリの利用が進む

シングルサインオンの実現、認証強化が目的

企業が要求する認証方式、認証強度を適用する

SAML を使った認証連携の実装が進む

標準技術を使ったID 連携(認証連携)

10

Page 11: ID連携のあるとき~、ないとき~ #エンプラ編

SAML を使った ID 連携

Page 12: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 12

クラウドアプリへの SSO を SAML で実現する Office365 Salesforce cybozu.com Google Apps for Work …

Page 13: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 13

SAML を使った認証フロー

シングルサインオンシステム

(SAML IdP)

クラウドサービス(SAML SP)

ユーザー

① サービスへアクセス② ブラウザを介して IdP に認証要求③ IdP がユーザーを認証④ ブラウザを介して ID を連携⑤ サービスの利用開始

①②

② ③ ④

④⑤

Page 14: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 14

SAML 認証リクエスト

<?xml version="1.0" encoding="UTF-8"?><samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID=“epennhbfejbampfendcclkjddlpkiinbnhkeeige” Version="2.0" IssueInstant="2015-08-25T12:00:00Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ProviderName=“google.com” IsPassive="false" AssertionConsumerServiceURL="https://www.google.com/a/app.example.jp/acs"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> google.com/a/app.example.jp </saml:Issuer> <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" /></samlp:AuthnRequest>

誰がリクエストしたか

認証結果をどんな方法で返してほしいか

どんな識別子を返してほしいか

Page 15: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 15

SAML 認証レスポンス<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s2c966514cd70b650ab89cc4508e3144ddcf72f675" InResponseTo="epennhbfejbampfendcclkjddlpkiinbnhkeeige" Version="2.0" IssueInstant="2015-08-25T12:00:00Z" Destination="https://www.google.com/a/app.example.jp/acs"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> https://idp.example.jp:443 </saml:Issuer> <samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> <samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Value="urn:oasis:names:tc:SAML:2.0:status:Success"> </samlp:StatusCode> </samlp:Status> <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="s2add3dd35b253a41e21e07cd618dda6ede9e17083" IssueInstant="2015-08-25T12:00:00Z" Version="2.0"> <saml:Issuer> https://idp.example.jp:443 </saml:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#s2add3dd35b253a41e21e07cd618dda6ede9e17083"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>F73al5lkJ4ABW88OnwgMGNn7y5k=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> pSH9 bBo/ tx ... YtRbgvFTQ= </ds:SignatureValue>

<ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> MIICQDCCAa ... gmrW0Y0Q== </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" NameQualifier="https://idp.example.jp:443" SPNameQualifier="google.com/a/app.example.jp"> e1234567 </saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData InResponseTo="epennhbfejbampfendcclkjddlpkiinbnhkeeige" NotOnOrAfter="2015-08-25T12:10:00Z" Recipient="https://www.google.com/a/app.example.jp/acs"/> </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2015-08-25T11:50:00Z" NotOnOrAfter="2015-08-25T12:10:00Z"> <saml:AudienceRestriction> <saml:Audience>google.com/a/app.example.jp</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2015-08-25T12:00:00Z" SessionIndex="s246d5c5763195b88d38bc31528e1c77cb9259e501"> <saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion></samlp:Response>

<saml:Issuer> https://idp.example.jp:443</saml:Issuer>

<ds:Signature ...>...<ds:SignedInfo>

<saml:Subject> <saml:NameID Format=...> e1234567 </saml:NameID> ...</saml:Subject>

<saml:Conditions NotBefore="2015-08-25T11:50:00Z“ NotOnOrAfter="2015-08-25T12:10:00Z"> <saml:AudienceRestriction> <saml:Audience> google.com/a/app.example.jp </saml:Audience> </saml:AudienceRestriction></saml:Conditions>

どの IdP で

誰を

いつどの SP のために

確かに IdP が認証したもの

Page 16: ID連携のあるとき~、ないとき~ #エンプラ編

エンプラでの ID 連携活用

Page 17: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 17

ID 連携とは?

認証連携 + 属性連携 = ID 連携

クラウドアプリへの認証連携は、活用の一側面に

過ぎない

Page 18: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 18

エンプラ ID と IT の特性

異動により Identity が変化

グループウェア、コラボレーションアプリなど、利

用する全ユーザーの Identity が必要なアプリも多

ID 連携には フェデレーション(オンライン)と

プロビジョニング(バッチ)が必要

Page 19: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 19

エンプラ IT を取り巻く状況

クラウドサービスの利用が拡大

ユーザーが使うデバイスが多様化

ネイティブ、 SPA などへの対応

多様なワークスタイルの出現

いつでもどこでも使える IT の提供

Page 20: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. 20OpenID TechNight Vol.13

エンプラ認証基盤の目指す方向性

フェデレーション標準技術への対応

クラウド向けプロビジョニング標準技術への対応

JSON/REST ベースの認証技術への対応

OpenID Connect, SCIM へ対応していく必要がある

Page 21: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 21

エンプラ ID 連携のユースケース

クラウドアプリの活用

グループ、グローバルでの IT 活用

Page 22: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 22

クラウドアプリの活用ID 連携のないとき ...

クラウドサービス毎に異なる認証機能 クラウドサービス毎のパスワード管理 認証強化はユーザー主導、ユーザー依存

Office 365

Salesforce

cybozu.com

強いパスワードMFA の利用

弱いパスワード

Page 23: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 23

クラウドアプリの活用

シングルサインオンシステム

ID 管理システム

Office 365

Salesforce

cybozu.com

多要素認証 リスクベース認証

認証

企業内ネットワーク

認証連携JIT プロビジョニング

ID のプロビジョニング

ID のデプロビジョニング

モバイル・テレワーク

ID 連携のあるとき~!

認証

統一された認証機能の利用 企業の定めた認証ポリシーを適用 クラウドサービスへのパスワード提供、

パスワード管理が不要

Page 24: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 24

グループ、グローバルでの IT 活用

企業内ネットワーク グループ企業・海外拠点

自社システム グループ企業のシステム

ID 連携のないとき ...

ID 体系の統一(片寄せ) 認証基盤の統合(片寄せ)と移行 集中管理、権限委譲のための業務設計 グループ企業ネットワークの敷設

シングルサインオンシステム

ID 管理システム

シングルサインオンシステム

ID 管理システム シングルサインオンシステム

ID 管理システム

Page 25: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 25

グループ、グローバルでの IT 活用

シングルサインオンシステム

ID 管理システム

企業内ネットワーク グループ企業・海外拠点

シングルサインオンシステム

ID 管理システム

自社システム グループ企業のシステム

単一の ID での自社システム、グループ企業システムの相互利用

グループ、拠点毎の自立的管理・運用 M&A での迅速なシステム統合の実現

ID 連携のあるとき~!

Page 26: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 26

エンプラ ID 連携のさらなる可能性

取引先との IT相互利用

企業向けサービスとの連携

Page 27: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 27

取引先との IT相互利用

独自の認証機能

HUB 企業 B

EDI

SPOKE 企業

SCM

SPOKE 企業

独自の認証機能

HUB 企業 A

EDI

SCM

ID 連携のないとき ...

SPOKE 企業向けの ID 管理、パスワード管理、認証強化策の提供。

そのためのヘルプデスク機能も提供 取引先HUB 企業毎に異なる認証方式の受容

証明書認証

OTP の利用

HUB 企業 A 用ID/ パスワード

HUB 企業 A の証明書

HUB 企業 B 用ID/ パスワード

HUB 企業 B のOTP トークン

HUB 企業 A 用ID/ パスワード

HUB 企業 A の証明書

HUB 企業 B 用ID/ パスワード

HUB 企業 B のOTP トークン

Page 28: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 28

取引先との IT相互利用

シングルサインオンシステム

HUB 企業

シングルサインオンシステム

EDI

SPOKE 企業

シングルサインオンシステムSCM

SPOKE 企業

シングルサインオンシステム

HUB 企業

EDI

SCM

ID 連携のあるとき~!

接続してくる SPOKE 企業の ID 管理、パスワード管理からの開放

取引先HUB 企業毎に異なる認証方法、認証強化策からの開放

担当者交代時の手続きの簡略化

Page 29: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 29

企業向けサービスとの連携ID 連携のないとき ...

企業によるサービサーへの従業員情報の一括提供が必要

サービス利用のための会員番号、初期パスワードなどの発行、連絡が必要

企業

福利厚生サービス

○○サービス従業員情報の一括提供

人事・総務担当

利用のための情報と手順の連絡

サービスへの登録サービスの利用

Page 30: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. OpenID TechNight Vol.13 30

企業向けサービスとの連携

シングルサインオンシステム

企業

福利厚生サービス

○○サービス仮名を用いた企業所属の確認

サービスへの登録サービスの利用

ID 連携のあるとき~!

サービサーは、利用者が契約企業に属していること確認してサービスを提供

企業は従業員情報を提供せずに、従業員向けサービスを契約可能

利用者は自分情報を自分で選んでサービサーに提供

初期登録に特別な手続きや情報は不要。いつでもすぐに使い始められる

Page 31: ID連携のあるとき~、ないとき~ #エンプラ編

エンプラでの ID 連携活用に向けて

Page 32: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. 32OpenID TechNight Vol.13

OIDF-J EIWG 技術 TF の活動テーマ

エンタープライズ IT とクラウドサービスを相互連携するた

めの OIDC OP/RPおよび SCIM のサンプル実装を行なう。

実装により明らかとなった課題と解決策をまとめる。

以上の結果を「 OpenID Connect と SCIM のエンタープラ

イズ実装ガイドライン」としてまとめ、発行する。

Page 33: ID連携のあるとき~、ないとき~ #エンプラ編

Copyright © 2015 OpenID Foundation Japan. All Rights Reserved. 33OpenID TechNight Vol.13

実装ガイドが目指すところ

OpenID Connect, SCIM の標準仕様に基づいて

最低限実装すべき事項と、実装方法を提示

クラウド事業者と利用企業がそれぞれ実装

エンプラ分野での ID 連携活用を広める

Page 34: ID連携のあるとき~、ないとき~ #エンプラ編