『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

33
OpenID フフフフフフフフフ フフフフ Enterprise Identity WG / フフ TF フフフフ フフ フ フフフフフフフフフフフ () OpenID Connect と SCIM と とととととととととととととととと とと とととと

Transcript of 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Page 1: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

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

Enterprise Identity WG / 技術 TF リーダー

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

OpenID Connect と SCIM のエンタープライズ実装ガイドライン解説

遂に公開!

Page 2: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 2

OIDF-J EIWG って?

OpenID ファウンデーション・ジャパン (OIDF-J) 国内における OpenID 関連技術の普及・啓蒙のための活動を行なっています。

Enterprise Identity WG (EIWG) エンタープライズ IT 市場で OpenID Connect や SCIM などの仕様をベース

とした、 ID フェデレーションや ID プロビジョニングの普及を推進し、新た

なビジネスの創造・展開を図ることを目的に活動を行なっています。

Page 3: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 3

技術 TF の活動テーマ

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

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

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

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

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

Page 4: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 4

今日は、ようやく完成した

『 OpenID Connect と SCIM のエンタープライズ実装ガイドライン』

のお話です。j.mp/eiwg-guides-2016ガイドラインのダウンロードはこちら ➡

Page 5: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 5

ガイドの位置づけ

昨今、企業でのクラウドサービス利用が急速に進んできている。今後

もより多くの企業、より多くの業務へとクラウドサービスの利用が

拡大することが見込まれる。

ID 連携技術である OpenID Connect と SCIM をとりあげ、 OpenID Connect を使った認証連携 (SSO) と、 SCIM を使った

アイデンティティ管理( ID 管理)により、利用企業の認証システ

ムとクラウドサービスを相互接続、相互運用するための、一般的かつ最小

限の実装について解説。

Page 6: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

OpenID Connect と SCIM を使った ID 連携実装

~実装ガイドラインの内容から

Page 7: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 7

OpenID Connect 2014 年 2 月にローンチ

複数の組織やアプリケーション間で

ユーザーの認証結果や属性情報をや

りとりするための技術仕様

OpenID Connect Core 1.0 と、複

数の選択仕様

OpenID Connect 認可コードフローの例

Page 8: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 8

SCIM 2015 年 9 月に SCIM2.0 が RFC

化 RFC 7642, 7643, 7644 アイデンティティデータのプロビ

ジョニングと管理を行なうための技術仕様リソース エンドポイント名 行なえる操作

ユーザー /Users GET, POST, PUT, PATCH, DELETEグループ /Groups GET, POST, PUT, PATCH, DELETE自分自身 /Me GET, POST, PUT, PATCH, DELETEサービスプロバイダー設定

/ServiceProviderConfig

GET

リソースタイプ /ResourceTypes GETスキーマ定義 /Schemas GETバルク操作 /Bulk POST検索 [prefix]/.search POST

属性名 サブ属性名 説明userName   ユーザー名(ユニーク ID )name   名前  formatted フルネーム  familyName 姓  givenName 名  middleName ミドルネーム  honorificPrefix プレフィックス。 Mr. など。  honorificSuffix サフィックス。三世、など。displayName   表示名nickName   ニックネームprofileUrl   プロフィールが参照できる URLtitle   役職userType   職種preferredLanguage

  使用言語locale   地域( "en-US" 形式)timezone   タイムゾーンactive   管理状態( true ならログイン可, false なら不可な

ど)password   パスワード(書き込み専用属性)emails   メールアドレス のリストphoneNumbers   電話番号 のリストims   インスタントメッセージのアドレス のリストphotos   ユーザーの写真の URL のリストaddresses   住所 のリスト  formatted 表示用に整形された住所  streetAddress 番地、建物名など  locality 市区町村  region 都道府県  postalCode 郵便番号  country 国( "US", "JP" などの短縮形式)groups   ユーザーが所属するグループ のリストentitlements   ユーザーが持っている資格・権利 のリストroles   ユーザーのロール のリストx509Certificates   ユーザーの電子証明書 のリスト

SCIM Protocol [RFC 7644]

SCIM Core Schema [RFC 7643] (ユーザーリソース)

Page 9: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 9

技術標準に沿って実装すれば OK? 技術標準

さまざまなユースケースに対応できるよう、広範囲に及

ぶ仕様が決められている。

実装の現場

どの方法でどこまで実装すればつながるの?という悩み。

つなぐ相手によって実装範囲が異なるのもつらい。

Page 10: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 10

一般的な ID 連携のケースを対象に整理

Page 11: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 11

属性に注目したクラウドサービスの分類

シンプルなユーザー情報を要求するクラウド

サービス

多言語対応されたユーザー情報を要求するク

ラウドサービス

日本特有の多階層の組織情報やそれに対応する役職

の情報を要求するクラウドサービス

実装

ガイ

ドが

ター

ゲッ

トと

する

ケー

Page 12: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 12

連携のための初期設定のワークフロー

1. クラウドサービスが設定に必要な基本情報を利用企業へ提供する。

2. 利用企業の ID 管理サーバーで SCIM クライアントとしての設定を

行なう。

3. 利用企業の認証サーバーへクラウドサービスを RP として登録する。

4. クラウドサービスに認証サーバーを OP として登録する。

Page 13: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 13

連携のための初期設定のワークフロー

Page 14: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 14

ユーザー情報のプロビジョニング

具体的なユーザーリソースのスキーマを定義

相互連携に必要な属性を EIWG 拡張リソースとして定義

ユーザー情報の操作方法を定義作成 ➡ HTTP POST更新 ➡ HTTP PUT削除 ➡ HTTP DELETE で対応

Page 15: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 15

ユーザー属性属性 SCIM 属性名 サブ属性名

ID 管理サーバー上の識別子 externalIdサービス利用時のユーザー名

userName

企業 OP でのログイン ID externalUserName (*2)

IDトークンの識別子 idTokenClaims (*2) issuersubject

従業員番号 employeeNumber (*1)

名前(母国語) name formattedfamilyNamegivenName

表示用の名前(母国語) displayName所属(主務・母国語) department (*1)役職(主務・母国語) title地域 localeメールアドレス emails value

primary

属性 SCIM 属性名 サブ属性名

電話番号 phoneNumbers typevalueprimary

有効フラグ active多言語表現の名前 localNames (*2) locale

formattedgivenNamedisplayprimarytype

所属組織と役職 organizationalUnits (*2)

localvaluenamedisplaytitleValuetitleNametitleDisplayprimarytype

(*1) SCIM Core Schema の EnterpriseUserで定義された属性

(*2) EIWG 拡張スキーマとして定義する属性

Page 16: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 16

特別な意味を持つ属性

ID 管理サーバー上の識別子 (externalId) サービス利用時のユーザー名 (userName) 企業 OP でのログイン ID (externalUserName) ID トークンの Issuer と Subject

(idTokenClaims.issuer, idTokenClaims.subject) 有効フラグ (active)

Page 17: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 17

ユーザー認証

ID トークンの形式、含めるクレーム、署名アルゴリズム

3 つの認証フロー クラウドサービス起点のログイン 利用企業起点のログイン 再認証要求

受け取った ID トークンとユーザーの紐付け方式

Page 18: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 18

その他

強制ログアウト処理 (OpenID Connect Back-Channel Logout) ID トークン署名用キーペアの更新

SCIM EP アクセス用パスワードの更新

SCIM EP アクセス時の OAuth を使った認可への対応

Page 19: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 19

具体的な実装内容を解説

実装すべきエンドポイント、その振る舞い

エンドポイントの呼び出し方、そのレスポンスの扱い方

それぞれの視点で具体例を交えて実装方法を解説 クラウドサービス事業者向け

➡ OpenID Connect RP, SCIM Server クラウドサービス利用企業向け

➡ OpenID Connect OP, SCIM Client

Page 20: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 20

OpenID Connect RP (クライアント)の実装認証フローの概要ログイン開始エンドポイントの実装利用企業の認証サーバーへの認証要求

▪通常の認証要求▪再認証のための認証要求

利用企業の認証サーバーからの認証結果の受け取りID トークンの検証認証されたユーザーとクラウドサービスのユーザーと

の紐付けセッションの管理強制ログアウト処理利用企業の認証サーバーの公開鍵の取得

OpenID Connect OP (認証サーバー)の実装認証フローの概要クラウドサービスから認証要求を受け取る

▪通常の認証要求▪再認証のための認証要求

ユーザーを認証するユーザーに認証連携の同意を得るクラウドサービスへ認証結果を返すID トークン

▪ JOSEヘッダ▪ ID トークンに格納するクレーム▪ ID トークンの署名

ユーザーセッションを強制ログアウトする公開鍵の公開( JWK Set エンドポイントの実装)

具体的な実装方法を解説クラウドサービス事業者が実装すること クラウド利用企業が実装すること

Page 21: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 21

具体的な実装方法を解説クラウドサービス事業者が実装すること クラウド利用企業が実装すること

Page 22: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 22

SCIM サーバーの実装User エンドポイントの実装

▪ユーザーの作成 (POST)▪ リクエストの受け取り▪ クラウドサービスのユーザーとして登録▪ 登録結果の応答

▪ユーザーの更新 (PUT)▪ユーザーの削除 (DELETE)

検索エンドポイントの実装▪ユーザーの検索

ユーザーデータの検証エンドポイントアクセス時の認証

利用企業の管理者向け機能の実装OpenID Connect OP (認証サーバー)登録機能SCIM クライアント( ID 管理サーバー)登録機能管理者向け機能利用時の認証方式

SCIM クライアントの実装 ユーザー情報の操作

▪ユーザーの作成▪ユーザーの更新

▪ユーザーリソース識別子 (id) の取得▪ユーザー情報の更新

▪ユーザーの削除▪エラー応答

エンドポイントアクセス時の認証

具体的な実装方法を解説クラウドサービス事業者が実装すること クラウド利用企業が実装すること

Page 23: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

OpenID Connect と SCIM のエンプラ IT での活用

Page 24: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 24

SCIM のクラウドサービスでの実装が進む

Salesforce Microsoft Azure AD SAP HANA Slack …

Page 25: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. ID & IT Management Conference 2015 25

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

クラウド利用時のセキュリティ強化

グループ、グローバルでの情報共有・ IT 相互利用

取引先との情報共有・ IT 相互利用

Page 26: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. ID & IT Management Conference 2015 26

クラウド利用時のセキュリティ強化

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

ID 管理システム

Office 365

Salesforce

cybozu.com

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

認証

企業内ネットワーク

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

ID のプロビジョニング

ID のデプロビジョニング

モバイル・テレワーク

認証

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

パスワード管理が不要

Page 27: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. ID & IT Management Conference 2015 27

グループ、グローバルでの情報共有・ IT 相互利用

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

ID 管理システム

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

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

ID 管理システム

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

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

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

Page 28: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. ID & IT Management Conference 2015 28

取引先との情報共有・ IT 相互利用

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

HUB 企業

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

EDI

SPOKE 企業

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

SPOKE 企業

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

HUB 企業

EDI

SCM

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

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

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

Page 29: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved.

+Demo

Page 30: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 30

デモ構成

OpenAM(OpenID Provider)

OpenDJ(LDAP & SCIM

Server)

App(Relying Party)

SCIM によるユーザー操作アプリ

アクセス

認証・認証連携

ユーザー詳細情報の利用

Page 31: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

まとめ

Page 32: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説

Copyright © 2016 OpenID Foundation Japan. All Rights Reserved. 32

まとめ

これからはエンプラでも ID 連携が重要になる

OpenID Connect と SCIM で ID 連携

実装ガイドに沿った実装で、 ID 連携を広めよう

Page 33: 『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説