JP6491381B2 - マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス - Google Patents

マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス Download PDF

Info

Publication number
JP6491381B2
JP6491381B2 JP2018064072A JP2018064072A JP6491381B2 JP 6491381 B2 JP6491381 B2 JP 6491381B2 JP 2018064072 A JP2018064072 A JP 2018064072A JP 2018064072 A JP2018064072 A JP 2018064072A JP 6491381 B2 JP6491381 B2 JP 6491381B2
Authority
JP
Japan
Prior art keywords
service
user
idcs
microservice
cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018064072A
Other languages
English (en)
Other versions
JP2018142333A (ja
Inventor
ランダー,バディム
カッル,ダミエン
コール,ゲイリー・ピィ
ソンディ,アジャイ
ウィルソン,グレッグ
ナッペク,トーマス
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=61387621&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP6491381(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US15/450,550 external-priority patent/US9838377B1/en
Priority claimed from US15/450,512 external-priority patent/US9838376B1/en
Priority claimed from US15/469,718 external-priority patent/US10341410B2/en
Priority claimed from US15/485,532 external-priority patent/US9781122B1/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2018142333A publication Critical patent/JP2018142333A/ja
Application granted granted Critical
Publication of JP6491381B2 publication Critical patent/JP6491381B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/084Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

関連出願の相互参照
本願は、2016年5月11日出願の米国仮特許出願第62/334,645号、2016年8月5日出願の米国仮特許出願第62/371,336号、2016年8月17日出願の米国仮特許出願第62/376,069号、2016年9月16日出願の米国仮特許出願第62/395,463号、2016年9月16日出願の米国仮特許出願第62/395,479号、2016年9月16日出願の米国仮特許出願第62/395,501号、2016年12月15日出願の米国仮特許出願第62/434,501号、2017年3月6日出願の米国特許出願第15/450,512号、2017年3月6日出願の米国特許出願第15/450,550号、2017年3月27日出願の米国特許出願第15/469,718号、および2017年4月12日出願の米国特許出願第第15/485,532号に基づく優先権を主張する。上記出願各々の開示を本明細書に引用により援用する。
分野
一実施形態は、概してアイデンティティ管理に関し、特にクラウドシステムにおけるアイデンティ管理に関する。
背景情報
一般的に、多様なデバイス(たとえばデスクトップおよびモバイルデバイス)および多様なユーザ(たとえば被雇用者、パートナー、顧客など)からアクセスされる、クラウドベースのアプリケーション(たとえば企業パブリッククラウドアプリケーション、第三者クラウドアプリケーションなど)の使用が、急激に増加している。クラウドベースのアプリケーションは、その多様性およびアクセシビリティが高いので、アイデンティティの管理およびアクセスのセキュリティが中心的な関心事になっている。クラウド環境における典型的なセキュリティの問題は、不正アクセス、アカウントのハイジャック、悪意のあるインサイダーなどである。したがって、クラウドベースのアプリケーションであっても、どこに存在するアプリケーションであっても、アプリケーションにアクセスするデバイスの種類またはユーザの種類にかかわらず、安全なアクセスが必要とされている。
概要
一実施形態は、クラウドベースのアイデンティティおよびアクセス管理を提供するシステムである。システムは、アイデンティティ管理サービスを求める要求をクライアントから受信し、要求を認証し、要求に基づいてマイクロサービスにアクセスする。システムは、要求に基づいて、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーを判断する。システムは、要求を処理するのに必要なデータを、判断したテナンシーから取出す。このデータは、マイクロサービスにより、データベースへの接続を提供する接続プールを用いて取出される。システムは次に、受けた要求の処理を担当する適切なマイクロサービスにより、アイデンティティ管理サービスを実行する。
クラウドベースのアイデンティティ管理を提供する実施形態の一例のブロック図である。 クラウドベースのアイデンティティ管理を提供する実施形態の一例のブロック図である。 クラウドベースのアイデンティティ管理を提供する実施形態の一例のブロック図である。 クラウドベースのアイデンティティ管理を提供する実施形態の一例のブロック図である。 クラウドベースのアイデンティティ管理を提供する実施形態の一例のブロック図である。 ある実施形態のシステムビューを提供するブロック図である。 ある実施形態の機能ビューを提供するブロック図である。 クラウドゲートを実現する実施形態のブロック図である。 一実施形態における複数のテナンシーを実現するシステムの一例を示す。 ある実施形態のネットワークビューのブロック図である。 一実施形態におけるシングル・サイン・オン(single sign on:「SSO」)機能のシステムアーキテクチャビューのブロック図である。 一実施形態におけるSSO機能のメッセージシーケンスフローを示す図である。 一実施形態における分散型データグリッドの一例を示す。 ある実施形態に従うアイデンティティおよびアクセス管理機能のフロー図である。 ある実施形態に従うアイデンティティおよびアクセス管理機能のフロー図である。 ある実施形態に従うアイデンティティおよびアクセス管理機能のフロー図である。 ある実施形態に従うアイデンティティおよびアクセス管理機能のフロー図である。
詳細な説明
実施形態が提供するアイデンティティクラウドサービスは、マイクロサービスベースのアーキテクチャを実現するとともに、マルチテナントアイデンティティおよびデータセキュリティの管理ならびにクラウドベースのアプリケーションへの安全なアクセスを提供する。実施形態は、ハイブリッドクラウドのデプロイメント(すなわちパブリッククラウドとプライベートクラウドとを組合わせたものを含むクラウドのデプロイメント)について安全なアクセスをサポートする。実施形態は、クラウド内およびオンプレミス双方におけるアプリケーションおよびデータを保護する。実施形態は、ウェブ、モバイル機器、およびアプリケーションプログラミングインターフェイス(application programming interface:「API」)を介したマルチチャネルアクセスをサポートする。実施形態は、顧客
、パートナー、および被雇用者など、さまざまなユーザのアクセスを管理する。実施形態は、クラウドを通じたアクセスおよびオンプレミスのアクセス双方を管理、制御、および監査する。実施形態は、新たなおよび既存のアプリケーションおよびアイデンティと統合される。実施形態は横方向にスケーラブルである。
一実施形態は、ステートレスな中間層環境において多数のマイクロサービスを実現することによりクラウドベースのマルチテナントアイデンティティおよびアクセス管理サービスを提供するシステムである。一実施形態において、要求された各アイデンティティ管理サービスは、リアルタイムタスクとニア・リアルタイムタスクとに分割される。リアルタイムタスクは中間層のマイクロサービスによって処理されるのに対し、ニア・リアルタイムタスクはメッセージキューにオフロードされる。実施形態は、ルーティング層および中間層によって消費されるアクセストークンを実現することにより、マイクロサービスにア
クセスするためのセキュリティモデルを強化する。したがって、実施形態は、マルチテナントのマイクロサービスアーキテクチャに基づいてクラウドスケールのアイデンティティおよびアクセス管理(Identity and Access Management(「IAM」)プラットフォームを提供する。
一実施形態は、組織が、その新たなビジネス構想のために高速で信頼性が高くかつ安全なサービスを迅速に開発できるようにするアイデンティティクラウドサービスを提供する。一実施形態において、アイデンティティクラウドサービスは多数のコアサービスを提供する。各コアサービスは、多くの企業が直面する固有の課題を解決する。一実施形態において、アイデンティティクラウドサービスは、たとえば、最初にユーザのオンボード/インポートを行なうとき、ユーザメンバとともにグループをインポートするとき、ユーザを作成/更新/ディスエーブル/イネーブル/削除するとき、ユーザをグループに割当てる/グループへのユーザ割当てを解除するとき、グループを作成/更新/削除するとき、パスワードをリセットするとき、ポリシーを管理するとき、アクティベーションを送信するときなどの、アドミニストレータをサポートする。
統一されたアクセスセキュリティ
一実施形態は、クラウド環境およびオンプレミス環境双方におけるアプリケーションおよびデータを保護する。本実施形態は、どのデバイスからの誰によるどのアプリケーションへのアクセスも安全にする。本実施形態は、これらの環境双方にわたる保護を提供する。なぜなら、これら2つの環境の間でセキュリティに矛盾があればリスクが高くなる可能性があるからである。たとえば、このような矛盾があった場合、販売員は、離反して競合他社に移った後であっても、その顧客関係管理(Customer Relationship Management:「CRM」)アカウントへのアクセス権を有し続ける場合がある。したがって、実施形態は、オンプレミス環境においてプロビジョニングされたセキュリティ制御をクラウド環境に拡張する。たとえば、ある人物が会社を辞めた場合、実施形態は、そのアカウントがオンプレミスおよびクラウド双方においてディスエーブルされることを保証する。
一般的に、ユーザは、ウェブブラウザ、デスクトップ、携帯電話、タブレット、スマートウォッチ、その他のウェアラブル機器などの多種多様なチャネルを通してアプリケーションおよび/またはデータにアクセスし得る。したがって、一実施形態は、これらすべてのチャネルについて、これらを通るアクセスを安全なものにする。たとえば、ユーザは、その携帯電話を用いて、自身のデスクトップ上で開始したトランザクションを完了させることができる。
一実施形態はさらに、顧客、パートナー、被雇用者など、さまざまなユーザのアクセスを管理する。一般的に、アプリケーションおよび/またはデータは、被雇用者だけでなく、顧客または第三者によってもアクセスされる場合がある。既知の多くのシステムは、被雇用者のオンボード時に安全対策を講じるが、この安全対策は通常、顧客、第三者、パートナーなどにアクセス権を付与するときの安全対策と同じレベルではないので、結果として、適切に管理されていない者によってセキュリティが破られる可能性がある。しかしながら、実施形態は、被雇用者だけでなく各タイプのユーザのアクセスについて十分な安全対策が提供されることを保証する。
アイデンティティクラウドサービス
実施形態は、マルチテナントでクラウドスケールのIAMプラットフォームであるアイデンティティクラウドサービス(Identity Cloud Service:「IDCS」)を提供する。
IDCSは、認証、認可、監査、および連携(federation)を提供する。IDCSは、パブリッククラウドおよびオンプレミスシステム上で実行されているカスタムアプリケーションおよびサービスへのアクセスを管理する。これに代わるまたはこれに加えられる実施
形態において、IDCSは、パブリッククラウドサービスへのアクセスも管理し得る。たとえば、IDCSを用いて、このような多様なサービス/アプリケーション/システムにわたってシングル・サイン・オン(「SSO」)機能を提供することができる。
実施形態は、クラウドスケールのソフトウェアサービスを設計、構築、および配信するためのマルチテナントマイクロサービスアーキテクチャに基づく。マルチテナンシーとは、あるサービスを物理的に実現したものがありこのサービスが当該サービスを購入した複数の顧客を安全にサポートするサービスであることを言う。サービスは、異なるクライアントが異なる目的のために再使用できるソフトウェア機能またはソフトウェア機能のセット(指定された情報を取出すことまたは一組の動作を実行することなど)に、(たとえばサービスを要求しているクライアントのアイデンティティに基づく)その使用を管理するポリシーを合わせたものである。一実施形態において、サービスは、1つ以上の機能へのアクセスを可能にするメカニズムであり、このアクセスは、所定のインターフェイスを用いて提供され、サービスの記述によって明記された制約およびポリシーに従って実行される。
一実施形態において、マイクロサービスは独立してデプロイ可能なサービスである。一実施形態において、マイクロサービスという用語は、言語に依存しないAPIを用いて相互に通信する小さな独立したプロセスから複雑なアプリケーションが構成されている、ソフトウェアアーキテクチャ設計パターンを意図している。一実施形態において、マイクロサービスは、細かく分離された小さなサービスであり、各サービスは、小さなタスクの実行に集中し得る。一実施形態において、マイクロサービスアーキテクチャスタイルは、単一のアプリケーションを小さなサービス一式として開発する手法であり、各サービスは、自身のプロセスにおいて実行され、軽量のメカニズム(たとえばHTTPリソースAPI)と通信する。一実施形態において、マイクロサービスは、同一機能すべてをまたは同一機能のうちの多くを実行するモノリシックサービスと比較すると、交換がより簡単である。加えて、マイクロサービスは各々、その他のマイクロサービスに悪影響を与えることなく更新し得る。これに対し、モノリシックサービスの一部を更新すると、当該モノリシックサービスの他の部分に望ましくないまたは意図せぬ悪影響が及ぶ可能性がある。一実施形態において、マイクロサービスはその機能を中心として有益に編成し得る。一実施形態において、マイクロサービスのコレクションのうち各マイクロサービスのスタートアップ時間は、これらのマイクロサービスのうちのすべてのサービスをまとめて実行する単一のアプリケーションのスタートアップ時間よりも遥かに短い。いくつかの実施形態において、このようなマイクロサービス各々のスタートアップ時間は約1秒以下であるのに対し、このような単一のアプリケーションのスタートアップ時間は約1分、数分、またはそれよりも長い場合がある。
一実施形態において、マイクロサービスアーキテクチャとは、フレキシブルで、独立してデプロイ可能なソフトウェアシステムを構築するための、サービス指向アーキテクチャ(service oriented architecture(「SOA」))の専門化(すなわちシステム内にお
けるタスクの分離)および実現の手法のことである。マイクロサービスアーキテクチャにおけるサービスは、目的を達成するためにネットワークを通して相互に通信するプロセスである。一実施形態において、これらのサービスは、技術に依存しないプロトコルを使用する。一実施形態において、サービスは、細分性が小さく軽量であるプロトコルを使用する。一実施形態において、サービスは独立してデプロイ可能である。システムの機能を異なる小さなサービスに分散させることにより、システムの結束性は向上し、システムのカップリングは減少する。それにより、システム変更が容易になり、任意の時点でシステムに機能および品質を追加することが容易になる。また、それによって、個々のサービスのアーキテクチャが、絶え間ないリファクタリングを通して出現することが可能になり、したがって、大規模な事前の設計の必要性は低下しソフトウェアを早期に連続してリリース
することが可能になる。
一実施形態において、マイクロサービスアーキテクチャでは、アプリケーションがサービスのコレクションとして開発され、各サービスはそれぞれのプロセスを実行し軽量のプロトコルを用いて通信する(たとえばマイクロサービスごとの固有API)。マイクロサービスアーキテクチャにおいて、1つのソフトウェアを個々のサービス/機能に分解することは、提供するサービスに応じて異なるレベルの粒度で行なうことができる。サービスはランタイムコンポーネント/プロセスである。各マイクロサービスは、他のモジュール/マイクロサービスに対してトークすることができる内蔵モジュールである。各マイクロサービスは、他からコンタクトできる無名ユニバーサルポートを有する。一実施形態において、マイクロサービスの無名ユニバーサルポートは、従来マイクロサービスがエクスポーズする標準通信チャネルであり(たとえば従来のハイパーテキスト転送プロトコル(「HTTP」)ポートのような)、同一サービス内の他のモジュール/マイクロサービスがそれに対してトークできるようにする標準通信チャネルである。マイクロサービスまたはその他の内蔵機能モジュールを包括的に「サービス」と呼ぶことができる。
実施形態は、マルチテナントアイデンティティ管理サービスを提供する。実施形態は、さまざまなアプリケーションとの容易な統合を保証するオープン標準に基づいており、標準ベースのサービスを通してIAM機能を提供する。
実施形態は、アイデンティティがアクセスできる対象、このようなアクセスを付与できる者、このようなアクセスを管理できる者などを判断し施行することを伴うユーザアイデンティティのライフサイクルを管理する。実施形態は、クラウド内でアイデンティティ管理ワークロードを実行し、このクラウド内に存在するとは限らないアプリケーションのセキュリティ機能をサポートする。これらの実施形態が提供するアイデンティティ管理サービスはクラウドから購入されてもよい。たとえば、企業は、このようなサービスをクラウドから購入してその被雇用者の当該企業のアプリケーションに対するアクセスを管理してもよい。
実施形態は、システムセキュリティ、大規模なスケーラビリティ、エンドユーザのユーザビリティ、およびアプリケーションのインターオペラビリティを提供する。実施形態は、クラウドの成長と、顧客によるアイデンティティサービスの使用とを扱っている。マイクロサービスに基づく基礎は、横方向のスケーラビリティ条件を扱うのに対し、サービスの綿密な調整は機能条件を扱う。これらの目標双方を達成するには、ビジネスロジックを(可能な限り)分解することにより、最終的には一貫性のあるステートレスを達成する一方で、リアルタイム処理を受けない動作論理のほとんどが、配信と処理が保証されたスケーラビリティが高い非同期イベント管理システムに、オフロードされることにより、ニア・リアルタイムにシフトする。実施形態は、コスト効率を実現しシステム管理を容易にするために、ウェブ層からデータまで完全にマルチテナントである。
実施形態は、さまざまなアプリケーションと統合し易くするために、業界の標準(たとえば、OpenID Connect、OAuth2、セキュリティ・アサーション・マークアップ言語(Security Assertion Markup Language)2(「SAML2」)、クロス
ドメインアイデンティティ管理用システム(System for Cross-domain Identity Management:「SCIM」)、レプレゼンテーショナル・ステート・トランスファー(Representational State Transfer:「REST」)など)に従う。一実施形態は、クラウドスケールAPIプラットフォームを提供し、エラスティックスケーラビリティのために横方向にスケーラブルなマイクロサービスを実現する。本実施形態は、クラウド原理を強化し、テナントごとにデータを分離したマルチテナントアーキテクチャを提供する。本実施形態はさらに、テナントセルフサービスを介してテナントごとのカスタマイズを提供する。本実施
形態は、他のアイデンティサービスとのオンデマンドの統合の際にはAPIを介して利用することができ、連続したフィーチャーリリースを提供する。
一実施形態は、インターオペラビリティを提供し、クラウドおよびオンプレミスにおけるアイデンティティ管理(identity management:「IDM」)機能への投資を強化する
。本実施形態は、オンプレミスの軽量ディレクトリアクセスプロトコル(Lightweight Directory Access Protocol:「LDAP」)データからクラウドデータへの、およびその
逆の、自動化されたアイデンティティ同期化を提供する。本実施形態は、クラウドと企業との間にSCIMアイデンティティバスを提供し、ハイブリッドクラウドのデプロイの各種オプションを可能にする(たとえば、アイデンティティ連携および/または同期化、SSOエージェント、ユーザプロビジョニングコネクタなど)。
したがって、一実施形態は、ステートレスな中間層において多数のマイクロサービスを実現することによりクラウドベースのマルチテナントアイデンティティおよびアクセス管理サービスを提供するシステムである。一実施形態において、要求された各アイデンティティ管理サービスは、リアルタイムタスクとニア・リアルタイムタスクとに分割される。リアルタイムタスクは中間層のマイクロサービスによって処理されるのに対し、ニア・リアルタイムタスクはメッセージキューにオフロードされる。実施形態は、ルーティング層によって消費されて、マイクロサービスにアクセスするためのセキュリティモデルを実施するトークンを実現する。したがって、実施形態は、マルチテナントのマイクロサービスアーキテクチャに基づくクラウドスケールのIAMプラットフォームを提供する。
一般的に、周知のシステムは、たとえば、企業クラウドアプリケーション、パートナークラウドアプリケーション、第三者クラウドアプリケーション、および顧客アプリケーションなど、各種環境によって提供されるアプリケーションに対するサイロ化されたアクセスを提供する。このようなサイロ化されたアクセスは、複数のパスワード、異なるパスワードポリシー、異なるアカウントプロビジョニングおよびデプロビジョニング手法、異種の監査などを必要とする場合がある。しかしながら、一実施形態は、IDCSを実現することにより、このようなアプリケーションに対し統一されたIAM機能を提供する。図1は、ユーザおよびアプリケーションをオンボードするための統一されたアイデンティティプラットフォーム126を提供する、IDCS118を用いる実施形態の一例のブロック図100である。本実施形態は、企業クラウドアプリケーション102、パートナークラウドアプリケーション104、第三者クラウドアプリケーション110、および顧客アプリケーション112などのさまざまなアプリケーションにまたがるシームレスなユーザ体験を提供する。アプリケーション102、104、110、112は、異なるチャネルを通してアクセスされてもよく、たとえば、携帯電話ユーザ108が携帯電話106を介して、デスクトップコンピュータのユーザ116がブラウザ114を介して、アクセスしてもよい。ウェブブラウザ(一般的にブラウザと呼ばれる)は、ワールドワイドウェブ上で情報リソースを取得、提示、およびトラバースするためのソフトウェアアプリケーションである。ウェブブラウザの例としては、Mozilla(登録商標) Firefox(登録商標)、Google Chrome(登録商標)、Microsoft(登録商標) Internet Explorer(登録商標)、お
よびApple(登録商標) Safari(登録商標)が挙げられる。
IDCS118は、ユーザのアプリケーションの統一されたビュー124、(アイデンティティプラットフォーム126を介する)デバイスおよびアプリケーションにまたがる統一された安全なクレデンシャル、および(管理コンソール122を介する)統一された管理方法を、提供する。IDCSサービスは、IDCS API142にコールすることによって取得されてもよい。このようなサービスは、たとえば、ログイン/SSOサービス128(たとえばOpenID Connect)、連携サービス130(たとえばSAML)、トークンサービス132(たとえばOAuth)、ディレクトリサービス13
4(たとえばSCIM)、プロビジョニングサービス136(たとえばSCIMまたはAny Transport over Multiprotocol(「AToM」))、イベントサービス138(たとえばREST)、およびロールベースアクセス制御(role-based access control:「RB
AC」)サービス140(たとえばSCIM)を含み得る。IDCS118はさらに、提供されるサービスに関するレポートおよびダッシュボード120を提供し得る。
統合ツール
通常、大企業では、そのオンプレミスのアプリケーションへの安全なアクセスのために、IAMシステムを適所に設けるのが一般的である。ビジネス手法は通常オラクル社の「Oracle IAM Suite」などのインハウスIAMシステムを中心として成熟し標準化される。小〜中規模組織でも、通常は、そのビジネスプロセスを、Microsoft Active Directory(「AD」)などの単純なディレクトリソリューションを通してユーザアクセスを管理することを中心として設計されている。オンプレミス統合を可能にするために、実施形態は、顧客がそのアプリケーションをIDCSと統合できるようにするツールを提供する。
図2は、オンプレミス206のAD204との統合を提供する、クラウド環境208内のIDCS202を用いる実施形態の一例のブロック図200である。本実施形態は、たとえば、クラウドサービス210、クラウドアプリケーション212、パートナーアプリケーション214、および顧客アプリケーション216などのクラウド208内のさまざまなアプリケーション/サービスならびにオンプレミスアプリケーション218などのオンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがる、シームレスなユーザ体験を提供する。クラウドアプリケーション212は、たとえば、ヒューマン・キャピタル・マネージメント(Human Capital Management:「HCM」)、CRM、タレント取得(たとえばオラクル社のOracle Taleoクラウドサービス)、構成、価格設定、および見積もり(Configure Price and Quote「CPQ」)な
どを含み得る。クラウドサービス210は、たとえば、サービスとしてのプラットフォーム(Platform as a Service:「PaaS」)、Java(登録商標)、データベース、
ビジネスインテリジェンス(business intelligence:「BI」)、文書などを含み得る
アプリケーション210、212、214、216、218は、異なるチャネルを通してアクセスされてもよく、たとえば、携帯電話ユーザ220が携帯電話222を介して、デスクトップコンピュータのユーザ224がブラウザ226を介して、アクセスしてもよい。本実施形態は、クラウド208と企業206との間のSCIMアイデンティティバス234を介して、オンプレミスのADデータからクラウドデータに、アイデンティティの同期化を自動的に行なう。本実施形態はさらに、クラウド208からオンプレミスAD204への、(たとえばパスワード232を用いて)認証を連携させるためのSAMLバス228を提供する。
一般的に、アイデンティティバスは、アイデンティティ関連サービスのためのサービスバスである。サービスバスは、メッセージをあるシステムから別のシステムに伝えるためのプラットフォームを提供する。これは、たとえばサービス指向アーキテクチャ(service oriented architecture:「SOA」)において、信頼されているシステム間で情報を
交換するための制御されたメカニズムである。アイデンティティバスは、ウェブサービス、ウェブサーバプロキシなどの標準的なHTTPベースのメカニズムに従って構築された論理バスである。アイデンティティバスにおける通信は、各プロトコル(たとえばSCIM、SAML、OpenID Connectなど)に従って実行されてもよい。たとえば、SAMLバスは、SAMLサービスに関するメッセージを伝えるための、2つのシステム間のHTTPベースの接続である。同様に、SCIMバスを用い、SCIMプロトコルに従って、SCIMメッセージを伝える。
図2の実施形態は、顧客のAD204とともにオンプレミス206でダウンロードおよびインストールすることができる小バイナリ(たとえば大きさが1MB)のアイデンティティ(「ID」)ブリッジ230を実現する。IDブリッジ230は、顧客によって選択された組織ユニット(organizational unit:「OU」)のユーザおよびグループ(たと
えばユーザのグループ)をリッスンし、これらのユーザをクラウド208に対して同期させる。一実施形態において、ユーザのパスワード232はクラウド208に対して同期されていない。顧客は、IDCSユーザのグループを、IDCS208において管理されているクラウドアプリケーションにマッピングすることにより、ユーザのアプリケーションアクセスを管理することができる。ユーザのグループメンバーシップがオンプレミス206で変更されるたびに、対応するクラウドアプリケーションアクセスは自動的に変更される。
たとえば、技術部門から販売部門に異動した被雇用者は、販売クラウドへのアクセスをほぼ瞬間的に取得することができ、開発者クラウドへのアクセスは失う。この変化がオンプレミスAD204に反映されると、クラウドアプリケーションのアクセスの変更がニア・リアルタイムで実現される。同様に、IDCS208で管理されているクラウドアプリケーションへの、この企業から去るユーザのアクセスは、取消される。完全自動化のために、顧客は、たとえばAD連携サービス(「AD/FS」またはSAML連携を実現するその他の何らかのメカニズム)を通して、オンプレミスAD204とIDCS208との間のSSOをセットアップして、エンドユーザが、単一の企業パスワード332を用いて、クラウドアプリケーション210、212、214、216およびオンプレミスアプリケーション218にアクセスできるようにしてもよい。
図3は、図2と同一のコンポーネント202、206、208、210、212、214、216、218、220、222、224、226、228、234を含む実施形態の一例のブロック図300である。しかしながら、図3の実施形態において、IDCS202は、オラクルIDMのようなオンプレミスIDM304との統合を提供する。オラクルIDM304は、IAM機能を提供するための、オラクル社のソフトウェアスイートである。本実施形態は、オンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがるシームレスなユーザ体験を提供する。本実施形態は、クラウド202と企業206との間のSCIMアイデンティティバス234を介したオンプレミスIDM304からIDCS208へのユーザアイデンティティをプロビジョニングする。本実施形態はさらに、クラウド208からオンプレミス206への認証の連携のためのSAMLバス228(またはOpenID Connectバス)を提供する。
図3の実施形態において、オラクル社のオラクルアイデンティティマネージャ(Oracle
Identity Manager:「OIM」)コネクタ302およびオラクル社のオラクルアクセス
マネージャ(Oracle Access Manager:「OAM」)連携モジュール306は、オラクル
IDM304の拡張モジュールとして実現される。コネクタは、システムに話しかける方法について物理的な認識があるモジュールである。OIMは、ユーザアイデンティティを管理するように構成されたアプリケーションである(たとえば、ユーザがアクセス権を持つべき対象とアクセス権を持つべきでない対象に基づいて異なるシステムのユーザアカウントを管理する)。OAMは、ウェブSSO、アイデンティコンテキスト、認証および認可、ポリシー管理、テスト、ロギング、監査などのアクセス管理機能を提供するセキュリティアプリケーションである。OAMはSAMLに対するビルトイン(built-in)サポートを有する。ユーザがIDCS202のアカウントを有する場合、OIMコネクタ302およびOAM連携306をオラクルIDM304とともに使用することにより、このアカウントを作成/削除し、このアカントからのアクセスを管理することができる。
図4は、図2および図3と同一のコンポーネント202、206、208、210、212、214、216、218、220、222、224、226、234を含む実施形態の一例のブロック図400である。しかしながら、図4の実施形態において、IDCS202は、クラウドアイデンティをオンプレミスアプリケーション218に拡張するための機能を提供する。本実施形態は、オンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがるアイデンティティのシームレスなビューを提供する。図4の実施形態において、SCIMアイデンティティバス234を用いることにより、IDCS202のデータを「クラウドキャッシュ」402と呼ばれるオンプレミスLDAPデータと同期させる。クラウドキャッシュ402は以下でより詳細に開示される。
一般的に、LDAPに基づいて通信するように構成されたアプリケーションは、LDAP接続を必要とする。このようなアプリケーションはLDAP接続をURLを用いて構築しないかもしれない(たとえばGoogle(登録商標)に接続する「www.google.com」とは違って)。なぜなら、LDAPはローカルネットワーク上になければならないからである。図4の実施形態において、LDAPベースのアプリケーション218は、クラウドキャッシュ402に接続し、クラウドキャッシュ402は、IDCS202に接続してから、要求されているデータをIDCS202から引出す。IDCS202とクラウドキャッシュ402との間の通信は、SCIMプロトコルに従って実現されてもよい。たとえば、クラウドキャッシュ402はSCIMバス234を用いてSCIM要求をIDCS202に送信し、それに対応するデータを受信してもよい。
一般的に、あるアプリケーションの完全な実現は、コンシューマポータルを構築することと、外部ユーザ集団に対してマーケティングキャンペーンを実行することと、ウェブおよびモバイルチャネルをサポートすることと、ユーザ認証、セッション、ユーザプロファイル、ユーザグループ、アプリケーションロール、パスワードポリシー、セルフサービス/登録、社会的統合、アイデンティ連携などを処理することとを含む。一般的に、アプリケーションの開発者はアイデンティティ/セキュリティの専門家ではない。このため、オンデマンドのアイデンティティ管理サービスが望ましいのである。
図5は、図2〜図4と同一のコンポーネント202、220、222、224、226、234、402を含む実施形態の一例のブロック図500である。しかしながら、図5の実施形態において、IDCS202は、オンデマンドで安全なアイデンティティ管理を提供する。本実施形態は、オンデマンドの、IDCS202のアイデンティサービスとの統合を提供する(たとえばOpenID Connect、OAuth2、SAML2、またはSCIMなどの標準に基づいて)。(オンプレミスであってもパブリッククラウド内またはプライベートクラウド内にあってもよい)アプリケーション505は、IDCS202のアイデンティティサービスAPI504をコールしてもよい。IDCS202が提供するサービスは、たとえば、セルフサービス登録506、パスワード管理508、ユーザプロファイル管理510、ユーザ認証512、トークン管理514、社会的統合516などを含み得る。
本実施形態において、SCIMアイデンティティバス234を用いることにより、IDCS202内のデータを、オンプレミスのLDAPクラウドキャッシュ402内のデータと同期させる。さらに、ウェブサーバ/プロキシ(たとえばNGINX、Apache等)上で実行している「クラウドゲート」502を、アプリケーション505が用いて、IDCS202からユーザウェブSSOおよびREST APIセキュリティを取得してもよい。クラウドゲート502は、クライアントアプリケーションが有効なアクセストークンを提供すること、および/またはユーザがSSOセッション構築のために正常に認証すること
を保証することによって、マルチテナントIDCSマイクロサービスへのアクセスを安全なものするコンポーネントである。クラウドゲート502は以下でさらに開示される。クラウドゲート502(webgate/webagentと同様の実施ポイント)は、サポートされてい
るウェブサーバの背後で実行されているアプリケーションがSSOに参加することを可能にする。
一実施形態は、SSOおよびクラウドSSO機能を提供する。多くの組織において、オンプレミスIAMおよびIDCSいずれにおいても一般的なエントリポイントはSSOである。クラウドSSOは、ユーザが、一回のユーザサイン・インで複数のクラウドリソースにアクセスできるようにする。組織はそのオンプレミスアイデンティティの連携を希望することが多い。したがって、実施形態は、オープン標準を利用することで、既存のSSOとの統合を実現することにより、投資の節約と拡大を可能にする(たとえば、アイデンティティクラウドサービス手法への最終的な完全移行まで)。
一実施形態は以下の機能を提供し得る。
・アイデンティティストアを維持することにより、既に認可されているユーザアカウント、所有権、アクセス、および許可を追跡する。
・ワークフローとの統合により、アプリケーションのアクセスに必要なさまざまな承認(たとえば管理、IT、人的資源、法律、およびコンプライアンス)を簡単にする。
・選択的装置(たとえばモバイルおよびパーソナルコンピュータ(「PC」))に対するSaaSユーザアカウントをプロビジョニングする。ユーザポータルへのアクセスは、多数のプライベートおよびパブリッククラウドリソースを含む。
・規則および現在の職責へのコンプライアンスのための定期的な管理立証を容易にする。
これらの機能に加えて、実施形態はさらに、
・クラウドアプリケーションにおけるアカウントライフサイクルの管理のためのクラウドアカウントのプロビジョニング、
・よりロバストなマルチファクタ認証(multifactor authentication:「MFA」)の統合、
・拡張モバイルセキュリティ機能、および
・動的認証オプション
を提供し得る。
一実施形態は、適応認証およびMFAを提供する。一般的に、パスワードおよび確認のための質問は、不十分でありフィッシングなどのよくある攻撃に晒され易いとみなされてきた。現代の大半の企業体は、リスクを下げるために何らかの形態のMFAに注目している。しかしながら、ソリューションが首尾よくデプロイされるためには、ソリューションをエンドユーザが簡単にプロビジョニング、維持、および理解する必要がある。なぜなら、エンドユーザは通常、そのデジタル体験を妨害するものに対し、それが何であろうと抵抗するからである。企業は、MFAを、シームレスなユーザアクセス体験のほぼトランスペアレントなコンポーネントにしつつ、私物の業務利用(bring your own device:「B
YOD」)、社会的アイデンティティ、遠隔ユーザ、顧客、および契約者を安全に組込む方法を探している。MFAのデプロイにおいて、OAuthおよびOpenID Connectなどの産業標準は、既存のマルチファクタソリューションの統合と、より新しい適応認証技術の導入とを保証するのに不可欠である。したがって、実施形態は、動的(または適応)認証を、利用できる情報(すなわちIPアドレス、場所、時刻、およびバイオメトリクス)の評価として定義することにより、ユーザセッション開始後のアイデンティを証明する。適切な標準(たとえばオープン認証(open authentication:「OATH」
)および高速オンライン認証(fast identity online:「FIDO」)の統合と、拡張可能なアイデンティティ管理フレームワークとを用いて、実施形態は、エンド・ツー・エン
ドの安全なIAMデプロイの一部としてIT組織内で簡単に採用、アップグレード、および統合できるMFAソリューションを提供する。MFAおよび適応ポリシーを検討する場合、組織は、ハイブリッドのIDCSおよびオンプレミスIAM環境においてシステム間の統合を必要とするオンプレミスリソースおよびクラウドリソースにわたって一貫したポリシーを実現しなければならない。
一実施形態は、ユーザプロビジョニングおよび証明を提供する。一般的に、IAMソリューションの基本機能は、ユーザプロビジョニングライフサイクル全体を可能にしかつサポートすることである。これは、ユーザに対し、組織内におけるそのアイデンティティおよびロール(role)に適したアプリケーションアクセスを与えること(たとえば、ユーザのロールまたはそのロールの中で使用されるタスクもしくはアプリケーションは時間の経過に伴って変化するので)と、ユーザが組織から脱退するときに必要な、素早いユーザデプロビジョニングとを含む。これは、さまざまなコンプライアンス条件を満たすために重要であるだけでなく、不適切なインサイダーアクセスがセキュリティ侵害および攻撃の主要な原因であるので、重要である。アイデンティティクラウドソリューションにおける、自動化されたユーザプロビジョニング機能は、それ自身の権利において重要になり得るだけでなく、ハイブリッドIAMソリューションの一部としても重要であり、したがって、IDCSプロビジョニングは、企業が縮小、拡大、合併する、または既存のシステムをIaaS/PaaS/SaaS環境と統合しようとする場合、移行時において、オンプレミスソリューションよりも高い柔軟性を提供し得る。IDCS手法は、一度限りのアップグレードにおいて時間と労力を節約することができ、必要な部門、事業部、およびシステムの適切な統合を保証する。企業ではこの技術をスケーリングする必要性が密かに発生することが多く、企業体系全体にスケーラブルなIDCS機能を迅速に提供することは、柔軟性、コスト、および制御の点で利益をもたらし得る。
一般的に、被雇用者は、長年にわたり、職種の変化に応じて追加の権限が付与される(すなわち「権限のクリープ」)。規制が緩やかな企業は一般的に「立証」プロセスが欠落している。このプロセスは、企業の被雇用者の権限(たとえばネットワーク、サーバ、アプリケーション、およびデータへのアクセス権)を定期的に監査して、過剰な権限が付与されたアカウントの原因となる権限のクリープを止めるまたは減速させる管理者を必要とする。したがって、一実施形態は、定期的に実施される(少なくとも1年に一度)立証プロセスを提供し得る。さらに、合併および買収に伴い、これらのツールおよびサービスの必要性は急激に増す。ユーザが、SaaSシステムに存在する、オンプレミス上に存在する、異なる部門にまたがっている、および/またはデプロビジョニングされているもしくは再度割当てられているからである。クラウドへの移動はこの状況をさらに混乱させる可能性があり、物事は、既存の手動管理されることが多い証明方法を超えて急速にエスカレートする可能性がある。したがって、一実施形態は、これらの機能を自動化し、高度な分析を、ユーザプロファイル、アクセス履歴、プロビジョニング/デプロビジョニング、および細分化された権利に適用する。
一実施形態はアイデンティティ分析を提供する。一般的に、アイデンティティ分析を、包括的な証明および立証のためにIAMエンジンと統合する機能は、組織のリスクプロファイルを安全にするためには不可欠となる可能性がある。適切にデプロイされたアイデンティティ分析は、内部ポリシー全体の施行を要求する可能性がある。クラウドおよびオンプレミス全体で統一された単一管理ビューを提供するアイデンティティ分析は、予防的ガバナンス、リスク、およびコンプライアンス(governance, risk, and compliance:「GRC」)企業環境における必要性が高く、リスクを低減しコンプライアンス規則を満たすための閉ループプロセスを提供するのに役立ち得る。したがって、一実施形態はアイデンティティ分析を提供する。アイデンティティ分析は、管理者、幹部職員、および監査役が必要とするレポートおよび分析のために、クライアントが簡単にカスタマイズすることで
特定の産業条件および政府規則に適合する。
一実施形態は、セルフサービスおよびアクセス要求機能を提供することにより、エンドユーザの体験および効率を改善するとともに、ヘルプデスクコールに要するコストを低減する。一般的に、多数の企業はその従業員のためにオンプレミスのセルフサービスアクセス要求をデプロイするが、多くは、これらのシステムを正式な企業の壁の外側まで適切に拡張していない。従業員の用途の範囲外の、ポジティブなデジタル顧客体験が、ビジネスの信頼性を高め最終的には収入の増加に貢献し、企業は、顧客ヘルプデスクコールを減じるだけでなく顧客の満足度を高める。したがって、一実施形態は、オープン標準に基づいておりかつ必要に応じて既存のアクセス制御ソフトウェアおよびMFAメカニズムとシームレスに統合される、アイデンティティクラウドサービス環境を提供する。SaaS配信モデルは、以前はシステムのアップグレードおよびメンテナンスに費やされていた時間と労力を省き、IT専門スタッフを解放してより中心的なビジネスアプリケーションに集中できるようにする。
一実施形態は、特権アカウント管理(privileged account management:「PAM」)
を提供する。一般的に、すべての組織は、SaaS、PaaS、IaaSまたはオンプレミスアプリケーションいずれを使用しても、システムアドミニストレータ、幹部職員、人事担当役員、契約者、システムインテグレータなどのスーパーユーザのアクセスクレデンシャルを用いたインサイダーによる特権アカウントの不正使用に弱い。加えて、外部の脅威は一般的に、先ず低レベルユーザアカウントを侵害し、最終的には企業システム内の特権ユーザアクセス制御に到達してこれを利用する。したがって、一実施形態は、PAMを提供することにより、このような不正なインサイダーによるアカウントの使用を防止する。PAMソリューションの主要コンポーネントはパスワードボールト(password vault)であり、これはさまざまなやり方で供給し得る。たとえば、企業サーバ上にインストールされるソフトウェアとして、これも企業サーバ上の仮想アプライアンスとして、パッケージングされたハードウェア/ソフトウェアアプライアンスとして、または、クラウドサービスの一部として、さまざまなやり方で供給し得る。PAM機能は、エンベロープ内で保持されサイン・インおよびサイン・アウトのためのマニフェストで定期的に変更されるパスワードを格納するために使用される物理的な安全場所と同様である。一実施形態は、パスワードのチェックアウトだけでなく、タイムリミットの設定、強制的な期間変更、自動的なチェックアウトの追跡、およびすべてのアクティビティに関する報告を、可能にする。一実施形態は、要求されたリソースに、ユーザがパスワードを知らない状態で、直接接続する方法を提供する。この機能はまた、セッション管理およびその他の機能の方法に道を開く。
一般的に、ほとんどのクラウドサービスは、APIおよび管理インターフェイスを利用している。これらは、侵入者がセキュリティを迂回する機会を与える。したがって、一実施形態は、PAMの実施におけるこれらの欠陥を埋める。クラウドへの移行によってPAMに新たな課題が発生するからである。小規模から中規模の多くのビジネスは現在自身のSaaSシステム(たとえばOffice 365)を管理しているが、大企業は自身のSaaSおよびIaaSサービスの回転数を上げる個々のビジネス単位を持つことが増えている。これらの顧客は、PAM機能がアイデンティティクラウドサービスソリューションに含まれるかまたはそのIaaS/PaaSプロバイダから得られるが、この責務を扱った経験がほとんどない。加えて、場合によっては、多くの異なる地理的に分散したビジネス単位が、同じSaaSアプリケーションの管理責任を分離しようとする。したがって、一実施形態は、こういった状況にある顧客が、既存のPAMをアイデンティティクラウドサービスの全体的なアイデンティティフレームワークの中にリンクさせ、より高い安全性とコンプライアンスに向けて、ビジネスニーズが要求するクラウドロード条件に合わせて確実に調整することを、可能にする。
APIプラットフォーム
実施形態が提供するAPIプラットフォームは、機能のコレクションをサービスとしてエクスポーズする。APIはマイクロサービスに集約され、各マイクロサービスは、1つ以上のAPIをエクスポーズすることによって1つ以上の機能を提供する。すなわち、各マイクロサービスは異なる種類のAPIをエクスポーズし得る。一実施形態において、各マイクロサービスはそのAPIを通してしか通信しない。一実施形態において、各APIはマイクロサービスであってもよい。一実施形態において、複数のAPIが1つのサービスに、このサービスが提供するターゲット機能に基づいて集約される(たとえばOAuth、SAML、Adminなど)。結果として、同様のAPIは別々のランタイムプロセスとしてエクスポーズされない。APIは、IDCSが提供するサービスを使用するためにサービス顧客が利用できるようにされるものである。
一般的に、IDCSのウェブ環境において、URLは、3つの部分として、ホストと、マイクロサービスと、リソースとを含む(たとえばホスト/マイクロサービス/リソース)。一実施形態において、マイクロサービスは、特定のURLプレフィックスを有することを特徴とし(たとえば「host/oauth/v1」)、実際のマイクロサービスは「oauth/v1」
である。「oauth/v1」の下で複数のAPIが存在し、たとえば、トークン(token)を要
求するためのAPI:「host/oauth/v1/token」、ユーザを認証する(authorize)ためのAPI:「host/oauth/v1/authorize」などである。すなわち、URLはマイクロサービ
スを実現し、URLのリソース部分はAPIを実現する。したがって、同じマイクロサービスの下で複数のAPIが集約され、各要求は、アイデンティティ管理サービスを特定するAPIへのコール(たとえばトークンを要求する、ユーザを認証するなど)と、当該アイデンティティ管理サービスを実行するように構成されたマイクロサービス(たとえばOAuth)とを含む。
一実施形態において、URLのホスト部分はテナントを特定する(たとえばhttps://tenant3.identity.oraclecloud.com:/oauth/v1/token)。一実施形態において、URLのホスト部分は、要求に関連するリソースのテナンシーを特定する。
必要なエンドポイントを有する外部サービスと統合するアプリケーションを構成し当該構成を最新状態に保つことは、一般的に難題である。この難題を克服するために、実施形態は、パブリックディスカバリAPIを周知の場所にエクスポーズし、そこから、アプリケーションは、ADCS APIを消費するために必要なIDCSに関する情報を発見する(discover)ことができる。一実施形態において、2つのディスカバリ文献がサポートされ、それらは、IDCS構成(たとえば、<IDCS-URL>/.well-known/idcs-configurationのIDCS、SAML、SCIM、OAuth、およびOpenID Connect
構成を含む)と、(たとえば<IDCS-URL>/.well-known/openid-configurationの)産業標
準OpenID Connect構成とである。アプリケーションは、単一のIDCS URLで構成されることにより、ディスカバリ文献を取出すことができる。
図6は、一実施形態におけるIDCSのシステムビュー600を提供するブロック部である。図6において、さまざまなアプリケーション/サービス602のうちのいずれも、IDCS APIに対してHTTPコールを行なうことにより、IDCSサービスを使用することができる。このようなアプリケーション/サービス602の例は、ウェブアプリケーション、ネイティブアプリケーション(たとえばWindows(登録商標)アプリケーシ
ョン、iOS(登録商標)アプリケーション、アンドロイド(登録商標)アプリケーションなど、特定のオペレーティングシステム上で走るように構築されたアプリケーション)、ウェブサービス、顧客アプリケーション、パートナーアプリケーション、または、サービスとしてのソフトウェア(Software as a Service:「SaaS」)、PaaS、およ
びサービスとしてのインフラストラクチャ(Infrastructure as a Service:「IaaS
」)など、パブリッククラウドによって提供されるサービスである。
一実施形態において、IDCSサービスを要求するアプリケーション/サービス602のHTTP要求は、オラクルパブリッククラウドBIG−IPアプライアンス604およびIDCS BIG−IPアプライアンス606(またはロードバランサなどの同様の技術、または、適切なセキュリティルールを実現してトラフィックを保護するサービスとしてのクラウドロードバランサ(Cloud Load Balancer as a Service:「LBaaS」)と呼ばれているコンポーネント)を通る。しかしながら、この要求はどのようなやり方で受信されてもよい。IDCS BIG−IPアプライアンス606(または、適用できる場合は、ロードバランサまたはクラウドLBaaSなどの同様の技術)において、クラウドプロビジョニングエンジン608は、テナントおよびサービスの調整を実行する。一実施形態において、クラウドプロビジョニングエンジン608は、クラウドにオンボードされている新たなテナントに対応付けられた内部セキュリティアーティファクト、または、顧客が購入した新たなサービスインスタンスを管理する。
このHTTP要求は次にIDCSウェブルーティング層610によって受信される。このルーティング層は、セキュリティゲート(すなわちクラウドゲート)を実現し、サービスルーティングならびにマイクロサービス登録および発見612を提供する。要求されるサービスに応じて、HTTP要求は、IDCS中間層614のIDCSマイクロサービスに転送される。IDCSマイクロサービスは、外部および内部HTTP要求を処理する。IDCSマイクロサービスは、プラットフォームサービスおよびインフラストラクチャサービスを実現する。IDCSプラットフォームサービスは、IDCSのビジネスを実現する、別々にデプロイされたJavaベースのランタイムサービスである。IDCSインフラストラクチャサービスは、IDCSに対してインフラストラクチャサポートを提供する、別々にデプロイされたランタイムサービスである。IDCSはさらに、IDCSサービスによって使用される共有ライブラリとしてパッケージングされた共通コードであるインフラストラクチャライブラリと、共有ライブラリとを含む。インフラストラクチャサービスおよびライブラリは、プラットフォームサービスがその機能を実現するために要求するサポート機能を提供する。
プラットフォームサービス
一実施形態において、IDCSは標準認証プロトコルをサポートし、したがって、IDCSマイクロサービスは、OpenID Connect、OAuth、SAML2、クロスドメインアイデンティティ管理のためのシステム(System for Cross-domain Identity Management++:「SCIM++」)などのプラットフォームサービスを含む。
OpenID Connectプラットフォームサービスは、標準OpenID Connectログイン/ログアウトフローを実現する。対話型のウェブベースおよびネイティブアプリケーションは、標準のブラウザベースのOpenID Connectフローを推進することによりユーザ認証を要求し、ユーザの認証されたアイデンティティを伝達するJavaScript(登録商標)オブジェクト表記(JavaScript Object Notation(「JSON」)ウェブトークン(Web Token「JWT」)である標準アイデンティティトークンを
受信する。内部において、ランタイム認証モデルはステートレスであり、ユーザの認証/セッション状態をホストHTTPクッキー(JWTアイデンティティトークンを含む)の形態で維持する。OpenID Connectプロトコルを介して開始された認証対話は、ローカルおよび連携ログインのためにユーザのログイン/ログアウトセレモニーを実現する信頼できるSSOサービスに委任される。この機能のさらなる詳細は以下において図10および図11を参照しながら開示される。一実施形態において、OpenID Connect機能は、たとえばOpenID Foundation標準に従って実現さ
れる。
OAuth2プラットフォームサービスは、トークン認可サービスを提供する。これは、ユーザの権利を伝達するアクセストークンを作成し検証してAPIコールを行なうためのリッチなAPIインフラストラクチャを提供する。これは、ある範囲の有用なトークン付与タイプをサポートし、顧客がクライアントをそのサービスに安全に接続することを可能にする。これは、標準の2者間および3者間OAuth2トークン付与タイプを実現する。OpenID Connect(「OIDC」)をサポートすることにより、コンプライアントなアプリケーション(OIDCリレーパーティ(「RP」))が、アイデンティティプロバイダとしてのIDCSと統合されることを可能にする(OIDC OpenIDプロバイダ(「OP」)。同様に、OIDC RPとしてのIDCSをソーシャルOIDC OP(たとえばFacebook(登録商標)、Google(登録商標)など)と統合することにより、顧客は、アプリケーションに対する社会的アイデンティのポリシーベースアクセスを可能にする。一実施形態において、OAuth機能は、たとえば、インターネットエンジニアリングタスクフォース(Internet Engineering Task Force:「IETF」)
、コメント要求(Request for Comments:「RFC」)6749に従って実現される。
SAML2プラットフォームサービスは、アイデンティティ連携サービスを提供する。これは、顧客が、SAMLアイデンティティプロバイダ(identity provider:「IDP
」)およびSAMLサービスプロバイダ(service provider:「SP」)関係モデルに基づいて、そのパートナーとの連携合意を設定することを可能にする。一実施形態において、SAML2プラットフォームサービスは、標準SAML2ブラウザポストログインおよびログアウトプロファイルを実現する。一実施形態において、SAML機能は、たとえばIETF、RFC7522に従って実現される。
SCIMは、ユーザアイデンティ情報を、たとえばIETF、RFC 7642、7643、7644によって提供される、アイデンティティドメインまたは情報技術(「IT」)システム間でのユーザアイデンティティ情報の交換を自動化するためのオープン標準である。SCIM++プラットフォームサービスは、アイデンティティ管理サービスを提供し、顧客がIDCSのIDPフィーチャー(feature)にアクセスすることを可能にす
る。管理サービスは、アイデンティティライフサイクル、パスワード管理、グループ管理などをカバーするステートレスなRESTインターフェイス(すなわちAPI)のセットをエクスポーズし、ウェブアクセス可能なリソースのようなアーティファクトをエクスポーズする。
すべてのIDCS構成アーティファクトはリソースであり、管理サービスのAPIは、IDCSリソース(たとえばユーザ、ロール、パスワードポリシー、アプリケーション、SAML/OIDCアイデンティティプロバイダ、SAMLサービスプロバイダ、キー、証明、通知テンプレートなど)の管理を可能にする。管理サービスは、SCIM標準を強化および拡張することにより、すべてのIDCSリソースに対する作成(Create)、読取り(Read)、更新(Update)、削除(Delete)、および問合せ(Query)(「CRUDQ
」)動作のためにスキーマベースのREST APIを実現する。加えて、IDCS自体の管理および構成に使用されるIDCSのすべての内部リソースは、SCIMベースのREST APIとしてエクスポーズされる。アイデンティティストア618へのアクセスはSCIM++APIに分離される。
一実施形態において、たとえば、SCIM標準は、SCIM規格によって規定されるユーザおよびグループリソースを管理するように実現されるのに対し、SCIM++は、SCIM規格によって規定される言語を用いてさらに他のIDCS内部リソース(たとえばパスワードポリシー、ロール、設定など)をサポートするように構成される。
管理サービスは、SCIM2.0標準エンドポイントを、標準SCIM2.0コアスキーマと、必要に応じてスキーマ拡張とを用いてサポートする。加えて、管理サービスは、いくつかのSCIM2.0準拠エンドポイント拡張をサポートすることにより、その他のIDCリソースを、たとえばユーザ、グループ、アプリケーション、設定などを、管理する。管理サービスはまた、CRUDQ動作は実行しないがその代わりに機能サービスを、たとえば「UserPasswordGenerator」、「UserPasswordValidator」などを提供する、リモートプロシージャコールスタイル(remote procedure call-style:「RPCスタイル」
)RESTインターフェイスのセットをサポートする。
IDCS管理APIは、OAuth2プロトコルを認証および認可に使用する。IDCSは、ウェブサーバ、モバイル、およびJavaScriptアプリケーションのためのシナリオといった共通のOAuth2シナリオをサポートする。IDCS APIへのアクセスはアクセストークンによって保護される。IDCS管理APIにアクセスするために、アプリケーションは、IDCS管理コンソールを通してOAuth2クライアントとしてまたはIDCSアプリケーションとして(この場合OAuth2クライアントは自動的に作成される)登録される必要があり、また、所望のIDCS管理ロールを与えられる必要がある。IDCS管理APIコールを行なうとき、アプリケーションは先ず、IDCS OAuth2サービスにアクセストークンを要求する。このトークンを取得した後に、このアプリケーションはアクセストークンを、そこにHTTP認可ヘッダを含めて送信する。アプリケーションは、IDCS管理REST APIを直接使用することができる、または、IDCSJavaクライアントAPIライブラリを使用することができる。
インフラストラクチャサービス
IDCSインフラストラクチャサービスは、IDCSプラットフォームサービスの機能をサポートする。これらのランタイムサービスは、(ユーザ通知、アプリケーション申込、およびデータベースに対する監査を非同期的に処理するための)イベント処理サービスと、(ジョブをスケジューリングして実行するため、たとえば、ユーザの介入が不要な長時間実行タスクを直ちに実行するまたは設定時間に実行するための)ジョブスケジューラサービスと、キャッシュ管理サービスと、(パブリッククラウドストレージサービスと統合するための)ストレージ管理サービスと、(レポートおよびダッシュボードを生成するための)レポートサービスと、(内部ユーザ認証およびSSOを管理するための)SSOサービスと、(異なる種類のユーザインターフェイス(user interface:「UI」)クライアントをホストするための)ユーザインターフェイス(「UI」)サービスと、サービスマネージャサービスとを含む。サービスマネージャは、オラクルパブリッククラウドとIDCSとの間の内部インターフェイスである。サービスマネージャは、オラクルパブリッククラウドによって発行されたコマンドを管理し、このコマンドはIDCSによって実現される必要がある。たとえば、顧客が、何かを購入できる状態になる前にクラウドストア内のアカウントに対してサインアップした場合、クラウドは、テナントを作成することを依頼するための要求をIDCSに送信する。この場合、サービスマネージャは、IDCSがサポートするとクラウドが予測するクラウド固有の動作を実現する。
IDCSマイクロサービスは、ネットワークインターフェイスを通して別のIDCSマイクロサービスをコールしてもよい(すなわちHTTP要求)。
一実施形態において、IDCSはまた、データベーススキーマを使用できるようにするスキーマサービス(またはパーシステンス(persistence)サービス)を提供し得る。ス
キーマサービスは、データベーススキーマを管理する責任をIDCSに委任することを可能にする。したがって、IDCSのユーザはデータベースを管理する必要がない。なぜなら、この機能を提供するIDCSサービスが存在するからである。たとえば、ユーザは、
データベースを用いてテナントごとにスキーマをパーシストしてもよく、データベース内にスペースがなくなったときにはスキーマサービスが、ユーザがデータベースを自身で管理しなくてもよいように、別のデータベースを取得し上記空間を拡大するという機能を管理する。
IDCSはさらに、IDCSが必要とする/生成するデータリポジトリであるデータストアを含む。これは、(ユーザ、グループなどを格納する)アイデンティティストア618、(IDCSが自身を構成するために使用する構成データを格納する)グローバルデータベース620、(テナントごとにスキーマを分離し顧客ごとに顧客データを格納する)オペレーショナルスキーマ622、(監査データを格納する)監査スキーマ624、(キャッシュされたオブジェクトを格納することにより実施速度を高める)キャッシングクラスタ626などを含む。内部および外部のすべてのIDCSコンシューマは、標準ベースのプロトコルに従ってアイデンティティサービスと統合される。これにより、ドメインネームシステム(domain name system:「DNS」)を用いて、どこに要求をルーティングすべきかを決定することができ、アプリケーションを消費することをアイデンティティサービスの内部実現を理解することから切離す。
リアルタイムおよびニア・リアルタイムタスク
IDCSは、要求されたサービスのタスクを、同期リアルタイムタスクと非同期ニア・リアルタイムタスクとに分離する。リアルタイムタスクは、ユーザが進むのに必要なオペレーションのみを含む。一実施形態において、リアルタイムタスクは、最少の遅延で実行されるタスクであり、ニア・リアルタイムタスクは、バックグラウンドにおいて、ユーザが待つことなく実行されるタスクである。一実施形態において、リアルタイムタスクは、実質的に遅延なしでまたはごくわずかな遅延で実行されるタスクであり、ユーザには、ほぼ瞬時に実行されているように見えるタスクである。
リアルタイムタスクは、特定のアイデンティティサービスの主要なビジネス機能を実行する。たとえば、ログインサービスを要求するとき、アプリケーションは、メッセージを送信してユーザのクレデンシャルを認証しそれに対するセッションクッキーを取得する。ユーザが体験するのは、システムへのログインである。しかしながら、ユーザのログインに関しては、ユーザが誰であるかの検証、監査、通知の送信など、その他いくつかのタスクが実行されるであろう。したがって、クレデンシャルの検証は、ユーザがHTTPクッキーを与えられてセッションを開始するように、リアルタイムで実行されるタスクであるが、通知(たとえば電子メールを送信してアカウント作成を通知すること)、監査(たとえば追跡/記録)などに関連するタスクは、ユーザが最少の遅延で進むことができるよう非同期的で実行することができるニア・リアルタイムタスクである。
マイクロサービスを求めるHTTP要求が受信されると、対応するリアルタイムタスクが中間層のマイクロサービスによって実行され、必ずしもリアルタイム処理を受けない演算ロジック/イベントなどの残りのニア・リアルタイムタスクは、メッセージキュー628にオフロードされる。メッセージキュー628は、配信および処理が保証された状態でスケーラビリティが高い非同期イベント管理システム630をサポートする。したがって、特定の挙動は、フロントエンドからバックエンドにプッシュされることにより、IDCSが、応答時間のレイテンシを少なくすることにより、ハイレベルサービスを顧客に提供することを、可能にする。たとえば、ログインプロセスは、クレデンシャルの検証、ログレポートの提出、最後のログイン時間の更新などを含み得るが、これらのタスクは、メッセージキューにオフロードして、リアルタイムではなくニア・リアルタイムで実行することができる。
一例において、システムが新たなユーザを登録または作成する必要がある場合がある。
システムは、IDCS SCIM APIをコールしてユーザを作成する。最終結果として、ユーザがアイデンティティストア618において作成されたときにこのユーザがそのパスワードをリセットするためのリンクを含む通知電子メールを得る。IDCSが、新たなユーザを登録または作成することを求める要求を受けると、対応するマイクロサービスは、オペレーショナルデータベース(図6のグローバルデータベース620内に位置する)にある構成データに注目し、「ユーザ作成」という動作が「ユーザ作成」イベントでマーキングされていると判断する。この動作は、構成データにおいて非同期動作であることが識別される。マイクロサービスは、クライアントに戻り、ユーザの作成が正常に行なわれたことを示すが、通知電子メールの実際の送信は延期されバックエンドにプッシュされる。そうするために、マイクロサービスは、メッセージングAPI616を用いてこのメッセージを、ストアであるキュー628に入れる。
キュー628から出すために、インフラストラクチャマイクロサービスであるメッセージングマイクロサービスは、バックグラウンドにおいて継続的に実行され、キュー628の中にあるイベントを探してキュー628をスキャンする。キュー628の中にあるイベントは、監査、ユーザ通知、アプリケーション申込、データ解析などのイベントサブスクライバ630によって処理される。イベントによって示されるタスクに応じて、イベントサブスクライバ630は、たとえば、監査スキーマ624、ユーザ通知サービス634、アイデンティティイベントサブスクライバ632などと通信し得る。たとえば、メッセージングマイクロサービスは、キュー628の中に「ユーザ作成」イベントを発見した場合、対応する通知ロジックを実行し対応する電子メールをユーザに送信する。
一実施形態において、キュー628は、マイクロサービス614によってパブリッシュされたオペレーショナルイベントと、IDCSリソースを管理するAPI616によってパブリッシュされたリソースイベントとをキューの中に入れる。
IDCSは、リアルタイムキャッシング構造を用いてシステムパフォーマンスおよびユーザ体験を向上させる。キャッシュそのものは、マイクロサービスとしても提供される。IDCSは、IDCSによってサポートされている顧客の数の増加に伴って増大するエラスティック・キャッシュクラスタ626を実現する。キャッシュクラスタ626は、以下でより詳細に開示される分散型データグリッドで実現されてもよい。一実施形態において、書込専用リソースがキャッシュをバイパスする。
一実施形態において、IDCSランタイムコンポーネントは、ヘルスおよびオペレーショナルメトリクスを、オラクル社のオラクルパブリッククラウドなどのパブリッククラウドのこのようなメトリクスを収集するパブリッククラウドモニタリングモジュール636に対してパブリッシュする。
一実施形態において、IDCSを用いてユーザを作成してもよい。たとえば、クライアントアプリケーション602は、REST APIコールを発行してユーザを作成してもよい。管理サービス(614のプラットフォームサービス)は、このコールをユーザマネージャ(614のインフラストラクチャライブラリ/サービス)に委任する。そうすると、ユーザマネージャは、このユーザを、IDストア618内の特定テナント用IDストアストライプにおいて作成する。「ユーザ作成成功(User Create Success)」の場合、ユ
ーザマネージャは、オペレーションを検査することにより検査スキーマ624内のテーブルを検査し、メッセージキュー628に対して「identity.user.create.success」をパブリッシュする。アイデンティティサブスクライバ632は、このイベントをピックアップし、新たに作成されたログイン詳細を含む「ウェルカム」電子メールを、新たに作成されたユーザに送信する。
一実施形態において、IDCSを用いてロールをユーザに与えて、その結果ユーザがアクションをプロビジョニングしてもよい。たとえば、クライアントアプリケーション602は、REST APIコールを発行してユーザにロールを付与してもよい。管理サービス(614のプラットフォームサービス)は、このコールをロールマネージャ(614のインフラストラクチャライブラリ/サービス)に委任してもよい。このロールマネージャは、IDストア618内の特定テナント用IDストアストライプにおけるロールを付与する。「ロール付与成功(Role Grant Success)」の場合、ロールマネージャは、監査スキーマ624における監査テーブルに対するオペレーションを監査し、メッセージキュー628に対して「identity.user.role.grant.success」をパブリッシュする。アイデンティティサブスクライバ632は、このイベントをピックアップしプロビジョニング付与ポリシーを評価する。付与されているロールに対するアクティブなアプリケーション付与があった場合、プロビジョニングサブスクライバは、何らかの検証を実行し、アカウント作成を開始し、ターゲットシステムをコールアウトし、ターゲットシステムにアカウントを作成し、アカウント作成が成功したとマーキングする。これらの機能各々の結果として、「prov.account.create.initiate」、「prov.target.create.initiate」、「prov.target.create.success」または「prov.account.create.success」などの対応するイベントがパブリッシュされることになり得る。これらのイベントは、直近N日間でターゲットシステムにおいて作成されたアカウントの数を合計する自身のビジネスメトリクスを有し得る。
一実施形態において、IDCSはユーザのログインのために使用することができる。たとえば、クライアントアプリケーション602は、サポートされている認証フローのうちの1つを用いてユーザのログインを要求してもよい。IDCSは、ユーザを認証し、成功すると、監査スキーマ624における監査テーブルに対するオペレーションを監査する。失敗すると、IDCSは、監査スキーマ624における失敗を監査し、メッセージキュー628の「login.user.login.failure」イベントをパブリッシュする。ログインサブスクライバは、このイベントをピックアップし、ユーザに対するそのメトリクスを更新し、ユーザのアクセス履歴についての追加分析を実行する必要があるか否かを判断する。
したがって、「制御の反転」機能を実現する(たとえば実行の流れを変更することにより、後の時点におけるオペレーションの実行を、当該オペレーションが別のシステムの支配下になるように、スケジュールする)ことにより、実施形態は、その他のイベントキューおよびサブスクライバを動的に追加して、小さなユーザサンプルに対する新たな特徴を、より広いユーザベースにデプロイする前にテストする、または、特定の内部または外部の顧客のための特定のイベントを処理することができる。
ステートレス機能
IDCSマイクロサービスはステートレスである。これは、マイクロサービスそのものはステートを保持しないことを意味する。「ステート」とは、アプリケーションがその機能を果たすために使用するデータのことを言う。IDCSは、マルチテナント機能を、すべてのステートを、IDCSデータ層内の特定テナント向けリポジトリにパーシストすることによって提供する。中間層(すなわち要求を処理するコード)は、アプリケーションコードと同じ場所に格納されているデータを有しない。したがって、IDCSは横方向および縦方向双方においてスケーラビリティが高い。
縦方向のスケーリング(またはスケールアップ/ダウン)は、システム内の1つのノードにリソースを追加する(またはこのノードからリソースを削除する)ことを意味し、1つのコンピュータにCPUまたはメモリを追加することを伴うのが一般的である。縦方向のスケーラビリティによって、アプリケーションはそのハードウェアの限界までスケールアップすることができる。横方向のスケーリング(またはスケールアウト/イン)は、新たなコンピュータを分散型ソフトウェアアプリケーションに追加するといったように、よ
り多くのノードをシステムに追加する(またはシステムからノードを削除する)ことを意味する。横方向のスケーラビリティにより、アプリケーションはほぼ無限にスケーリング可能であり、ネットワークによって提供される帯域幅の量のみの制約を受ける。
IDCSの中間層がステートレスであることにより、CPUをさらに追加するだけで横方向にスケーラブルになり、アプリケーションの仕事を実行するIDCSコンポーネントは、特定なアプリケーションが走っている指定された物理的インフラストラクチャを持つ必要がない。IDCSの中間層がステートレスであることにより、非常に多くの顧客/テナントにアイデンティティサービスを提供しているときであっても、IDCSの可用性が高くなる。IDCSアプリケーション/サービスを通る各パスは、専らアプリケーショントランザクションを実行するためにCPU用途に集中するが、データの格納にハードウェアを使用しない。スケーリングは、必要に応じてより多くのコピーを追加できるパーシステンス層にトランザクション用のデータが格納される一方で、アプリケーションが走っているときにより多くのスライスを追加することによって実現される。
IDCSウェブ層、中間層、およびデータ層は各々独立してかつ別々にスケーリング可能である。ウェブ層をスケーリングすることにより、より多くのHTTP要求を扱うことができる。中間層をスケーリングすることにより、より多くのサービス機能をサポートすることができる。データ層をスケーリングすることにより、より多くのテナントをサポートすることができる。
IDCS機能ビュー
図6Aは、一実施形態におけるIDCSの機能ビューのブロック図の一例600bである。ブロック図600bにおいて、IDCS機能スタックは、サービスと、共有ライブラリと、データストアとを含む。サービスは、IDCSプラットフォームサービス640bと、IDCSプレミアムサービス650bと、IDCSインフラストラクチャサービス662bとを含む。一実施形態において、IDCSプラットフォームサービス640bおよびIDCSプレミアムサービス650bは、別々にデプロイされたJavaベースのランタイムサービスであり、IDCSのビジネスを実現する。IDCSインフラストラクチャサービス662bは、別々にデプロイされたランタイムサービスであり、IDCSに対するインフラストラクチャサポートを提供する。共有ライブラリは、IDCSサービスによって使用される共有ライブラリとしてパッケージングされた共通コードであるIDCSインフラストラクチャライブラリ680bと、共有ライブラリとを含む。データストアは、IDCSが必要とする/生成するデータリポジトリであり、アイデンティティストア698b、グローバル構成700b、メッセージストア702b、グローバルテナント704b、パーソナライゼーション設定706b、リソース708b、ユーザ一時データ710b、システム一時データ712b、テナントごとのスキーマ(管理されたExaData)714b、オペレーショナルストア(図示せず)、キャッシングストア(図示せず)などを含む。
一実施形態において、IDCSプラットフォームサービス640bは、たとえばOpenID Connectサービス642b、OAuth2サービス644b、SAML2サービス646b、およびSCIM++サービス648bを含む。一実施形態において、IDCSプレミアムサービスは、たとえば、クラウドSSOおよびガバナンス652b、企業ガバナンス654b、AuthNブローカー656b、連携ブローカー658b、およびプライベートアカウント管理660bを含む。
IDCSインフラストラクチャサービス662bおよびIDCSインフラストラクチャライブラリ680bは、IDCSプラットフォームサービス640bがその仕事を実行するのに必要とする機能のサポートを提供する。一実施形態において、IDCSインフラス
トラクチャサービス662bは、ジョブスケジューラ664b、UI666b、SSO668b、レポート670b、キャッシュ672b、ストレージ674b、サービスマネージャ676b(パブリッククラウド制御)、およびイベントプロセッサ678b(ユーザ通知、アプリケーション申込、監査、データ解析)を含む。一実施形態において、IDCSインフラストラクチャライブラリ680bは、データマネージャAPI682b、イベントAPI684b、ストレージAPI686b、認証API688b、認可API690b、クッキーAPI692b、キーAPI694b、およびクレデンシャルAPI696bを含む。一実施形態において、クラウド計算サービス602b(内部Nimbula)は、
IDCSインフラストラクチャサービス662bおよびIDCSインフラストラクチャライブラリ680bの機能をサポートする。
一実施形態において、IDCSは、顧客エンドユーザUI604b、顧客管理UI606b、DevOps管理UI608b、およびログインUI610bなど、IDCSサービスのコンシューマのためのさまざまなUI602bを提供する。一実施形態において、IDCSは、アプリケーション(たとえば顧客アプリケーション614b、パートナーアプリケーション616b、およびクラウドアプリケーション618b)の統合612bならびにファームウェア統合620bを可能にする。一実施形態において、さまざまな環境がIDCSと統合されてそのアクセス制御のニーズをサポートしてもよい。このような統合は、たとえば、アイデンティティブリッジ622b(AD統合、WNA、およびSCIMコネクタを提供)、アパッチエージェント624b、またはMSFTエージェント626bによって提供される。
一実施形態において、内部および外部のIDCSコンシューマは、OpenID Connect630b、OAuth2 632b、SAML2 634b、SCIM636b、およびREST/HTTP638bなどの標準ベースのプロトコル628bに対するIDCSのアイデンティティサービスと統合される。これにより、ドメインネームシステム(domain name system:「DNS」)を用いて、要求をどこにルーティングするかを判断することができ、アプリケーションの消費を、アイデンティティサービスの内部実現を理解することから切離す。
図6AのIDCS機能ビューはさらに、IDCSが、ユーザ通知(クラウド通知サービス718b)、ファイルストレージ(クラウドストレージサービス716b)、およびDevOPsのためのメトリクス/警告(クラウドモニタサービス(EM)722bおよびクラウドメトリクスサービス(グラファイト)720b)のために依存する共通機能を提供する、パブリッククラウドインフラストラクチャサービスを含む。
クラウドゲート
一実施形態において、IDCSはウェブ層において「クラウドゲート」を実現する。クラウドゲートは、ウェブアプリケーションがユーザSSOをアイデンティティ管理システム(たとえばIDCS)に外部化することを可能にするウェブサーバプラグインであり、これは、企業IDMスタックと協力するWebGateまたはWebAgent技術と同様である。クラウドゲートは、IDCS APIに対するアクセスを安全にするセキュリティゲートキーパの役割を果たす。一実施形態において、クラウドゲートは、OAuthに基づいてHTTPリソースを保護するためにウェブポリシー施行点(Policy Enforcement Point:「PEP」)を提供するウェブ/プロキシサーバプラグインによって実現される。
図7は、クラウドゲート702を実現する実施形態のブロック図700である。クラウドゲート702は、ウェブサーバ712内で実行され、ポリシー施行点(「PEP」)の役割を果たす。ポリシー施行点は、オープン標準(たとえばOAth2、OpenID
Connectなど)を用いるIDCSポリシー決定点(Policy Decision Point:「P
DP」)と統合され、一方でウェブブラウザおよびアプリケーションのREST APIリソース714へのアクセスを安全にするように構成されている。いくつかの実施形態において、PDPは、OAuthおよび/またはOpenID Connectマイクロサービス704で実現される。たとえば、ユーザブラウザ706がユーザ710のログインを求める要求をIDCSに送信すると、対応するIDCS PDPは、クレデンシャルを検証した後に、このクレデンシャルが十分であるか否か(たとえば第2のパスワードなどのその他のクレデンシャルを要求するか否か)を判断する。図7の実施形態において、クラウドゲート702は、ローカルポリシーを有するので、PEPとしてもPDPとしてもその役割を果たし得る。
ワンタイム・デプロイメントの一部として、クラウドゲート702には、OAuth2クライアントとしてのIDCSが登録され、これが、IDCSに対してOIDCおよびOAuth2オペレーションを要求することを可能にする。その後、これは、要求マッチングルール(URLをたとえばワイルドカード、通常表現などに対して如何にしてマッチングするか)の適用を受ける、アプリケーションの保護されたリソースおよび保護されていないリソースに関する構成情報を保持する。クラウドゲート702をデプロイすることにより、異なるセキュリティポリシーを有する異なるアプリケーションを保護することができ、保護されるアプリケーションはマルチテナントであってもよい。
ウェブブラウザベースのユーザアクセス中、クラウドゲート702は、ユーザ認証フローを開始するOIDC RP718として機能する。ユーザ710が有効なローカルユーザセッションを有していない場合、クラウドゲート702は、ユーザをSSOマイクロサービスにリダイレクトし、SSOマイクロサービスとともにOIDC「認証コード」フローに参加する。このフローは、アイデンティティトークンとしてのJWTの配信で終了する。クラウドゲート708は、JWTを検証し(たとえば署名、満了、宛先/オーディエンスなどに注目し)、ユーザ710に関するローカルセッションクッキーを発行する。これは、保護されているリソースへのウェブブラウザのアクセスを安全にしかつローカルセッションクッキーを発行、更新、および検証するセッションマネージャ716として機能する。これはまた、そのローカルセッションクッキーの削除のためのログアウトURLを提供する。
クラウドゲート702はまた、HTTPベーシックAuth認証者の役割を果たし、IDCSに対するHTTPベーシックAuthクレデンシャルを検証する。この行動は、セッションレスおよびセッションベースの(ローカルセッションクッキー)モードでサポートされる。この場合、サーバ側IDCSセッションは生成されない。
REST APIクライアント708によるプログラムアクセス中、クラウドゲート702は、アプリケーションの保護されているREST API714のためのOAuth2リソースサーバ/フィラー720の役割を果たし得る。これは、認証ヘッダおよびアクセストークンに対して要求が存在するか否かを検査する。クライアント708(たとえばモバイル、ウェブアプリケーション、JavaScriptなど)が(IDCSによって発行された)アクセストークンを、保護されているREST API714とともに使用するために示すと、クラウドゲート702は、APIへのアクセスを許可する前にアクセストークンを検証する(たとえば署名、満了、オーディエンスなど)。元のアクセストークンは修正無しで送られる。
一般的に、OAuthを用いてクライアントアイデンティティ伝播トークン(たとえばクライアントが誰であるかを示す)またはユーザアイデンティティ伝播トークン(たとえばユーザが誰であるかを示す)を生成する。本実施形態において、クラウドゲートにおけ
るOAuthの実現は、たとえばIETF、RFC7519によって提供されるようなウェブトークンのフォーマットを定めるJWTに基づく。
ユーザがログインすると、JWTが発行される。JWTは、IDCSによって署名され、IDCSにおけるマルチテナント機能をサポートする。クラウドゲートは、IDCSが発行したJWTを検証することにより、IDCSにおけるマルチテナント機能を可能にする。したがって、IDCSは、物理構造においても、セキュリティモデルを支持する論理ビジネスプロセスにおいてもマルチテナンシーを提供する。
テナンシーの種類
IDCSは3種類のテナンシーとして、顧客テナンシー、クライアントテナンシー、およびユーザテナンシーを特定する。顧客またはリソーステナンシーは、IDCSの顧客が誰であるか(すなわち作業が誰に対して実行されているか)を特定する。クライアントテナンシーは、どのクライアントアプリケーションがデータにアクセスしようとしているか(すなわちどのアプリケーションが作業を実行しているか)を特定する。ユーザテナンシーは、どのユーザがアプリケーションを用いてデータにアクセスしているか(すなわち誰によって作業が実行されているか)を特定する。たとえば、専門サービス企業が大型ディスカウントショップを対象とするシステム統合機能を提供しこの大型ディスカウントショップのシステムのアイデンティティ管理を提供するためにIDCSを使用するとき、ユーザテナンシーは、この専門サービス企業に相当し、クライアントテナンシーはシステム統合機能を提供するために使用されるアプリケーションに相当し、顧客テナンシーは大型ディスカウントショップである。
これら3つのテナンシーを分離および統合することによってクラウドベースのサービスにおけるマルチテナント機能が可能になる。一般的に、オンプレミスの物理的なマシンにインストールされているオンプレミスソフトウェアの場合、これら3つのテナンシーを特定する必要はない。なぜなら、ユーザはログインするのに物理的にマシン上にいなければならないからである。しかしながら、クラウドベースのサービス構造の場合、実施形態は、トークンを持いて、誰がどのアプリケーションを使用してどのリソースにアクセスするかを判断する。3つのテナンシーは、トークンによってコーディファイ(codify)され、クラウドゲートによって施行され、中間層のビジネスサービスによって使用される。一実施形態において、OAuthサーバがトークンを生成する。さまざまな実施形態において、このトークンは、OAuth以外のセキュリティプロトコルとともに使用されてもよい。
ユーザ、クライアント、およびリソーステナンシーを分離することにより、IDCSが提供するサービスのユーザには実質的なビジネス上の利点が与えられる。たとえば、そうすることにより、ビジネス(たとえば健康ビジネス)のニーズおよびそのアイデンティティ管理の問題を理解するサービスプロバイダは、IDCSが提供するサービスを購入し、IDCSのサービスを消費する自身のバックエンドアプリケーションを開発し、このバックエンドアプリケーションをターゲットビジネスに提供することができる。したがって、サービスプロバイダは、IDCSのサービスを拡張してその所望の機能を提供するとともにそれらを特定のターゲットビジネスに対して差出すことができる。サービスプロバイダは、ソフトウェアを構築し実行してアイデンティサービスを提供する必要はないが、その代わりに、IDCSのサービスを拡張しカスタマイズしてターゲットビジネスのニーズに合うようにすることができる。
周知のシステムの中には、顧客テナンシーである単一のテナンシーしか説明しないものがある。しかしながら、そのようなシステムは、顧客ユーザ、顧客のパートナー、顧客のクライアント、クライアント自身、または、アクセスが顧客から委任されたクライアント
などのユーザの組合わせによるアクセスを処理するときには不十分である。本実施形態において複数のテナンシーを規定し施行することにより、これらの多様なユーザに対して管理機能を特定することが容易になる。
一実施形態において、IDCSの1エンティティは、複数のテナントに同時に属しているのではなく、1つのテナントのみに属し、「テナンシー」はアーティファクトが存在する場所である。一般的に、特定の機能を実現するコンポーネントは複数存在し、これらのコンポーネントは複数のテナントに属することが可能であるまたはインフラストラクチャに属することが可能である。インフラストラクチャは、テナントの代わりに機能する必要があるとき、テナントの代わりにエンティティサービスと対話する。この場合、インフラストラクチャそのものは自身のテナンシーを有し、顧客は自身のテナンシーを有する。要求が出されたとき、この要求に関わる複数のテナンシーが存在する。
たとえば、「テナント1」に属するクライアントが、「テナント3」におけるユーザを指定する「テナント2」のためのトークンを取得することを求める要求を実行する場合がある。別の例として、「テナント1」に存在するユーザが、「テナント2」が所有するアプリケーションにおけるアクションを実行する必要がある場合がある。よって、ユーザは、「テナント2」のリソースネームスペースに行きそのためのトークンを要求する必要がある。したがって、権限の委任は、「誰が」「何を」「誰」に対して行なうことができるかを特定することによって実現される。もう1つの例として、第1の組織(「テナント1」)のために働く第1のユーザが、第2の組織(「テナント2」)のために働く第2のユーザが第3の組織(「テナント3」)がホストする文書にアクセスすることを、許可してもよい。
一例において、「テナント1」のクライアントは、「テナント3」のアプリケーションにアクセスするために「テナント2」のユーザのためのアクセストークンを要求してもよい。クライアントは、「http://tenant3/oauth/token」に行きこのトークンを求めるOAuth要求を呼出すことによって当該トークンを要求してもよい。クライアントは、「クライアントアサーション」を要求に含めることにより、自身が「テナント1」に存在するクライアントであることを明らかにする。このクライアントアサーションは、クライアントID(たとえば「クライアント1」)とクライアントテナンシー(「テナント1」)とを含む。「テナント1」の「クライアント1」として、クライアントは、「テナント3」に対するトークンを求める要求を呼出す権利を有し、「テナント2」のユーザのためのトークンを所望する。したがって、「ユーザアサーション」も同じHTTP要求の一部として送られて「テナント2」がこのユーザのテナンシーであることを明らかにし、この要求のヘッダは「テナント3」がリソース/アプリケーションのテナンシーであることを明らかにする。結果として、要求は、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーを特定する。生成されるアクセストークンは、アプリケーションテナンシー(「テナント3」)であるターゲットテナンシーのコンテキストにおいて発行され、ユーザテナンシー(「テナント2」)を含む。したがって、アクセストークンは、リソース/アプリケーションのテナンシーを特定するとともにユーザのテナンシーを特定する。
一実施形態において、データ層における各テナントは、独立したストライプとして実現される。データ管理の観点からすると、アーティファクトはテナントに存在する。サービスの観点からすると、サービスは、異種のテナントとどのようにして協力するかを知っており、複数のテナンシーは、サービスのビジネス機能における異なるディメンションである。図8は、ある実施形態において複数のテナンシーを実現するシステムの一例800を示す。システム800はクライアント802を含み、クライアント802は、如何にしてデータベース806のデータ用いて作業するかを理解しているマイクロサービス804が
提供するサービスを要求する。データベース806は複数のテナント808を含み、各テナントは対応するテナンシーのアーティファクトを含む。一実施形態において、マイクロサービス804は、「テナント3」のアプリケーションにアクセスするために「テナント2」のユーザのためのトークンを得ようとして「テナント1」のクライアントがhttps://tenant3/oauth/tokenを通して要求するOAuthマイクロサービスである。データベー
ス806は、クライアントのテナンシー(「テナント1」)、ユーザのテナンシー(「テナント2」)、およびリソース/アプリケーションのテナンシー(「テナント3」)のデータを格納する。OAuthマイクロサービスの機能が、マイクロサービス804において、データベース806からのデータを用いて実行されることにより、クライアント802の要求が正当であるか否かが検証され、正当である場合は、異なるテナンシー808からのデータが使用されてトークンが構成される。したがって、システム800は、各テナンシーに与えられるサービスをサポートするだけでなく各種テナントに代わって機能し得るサービスをサポートすることによりクロステナント環境において作業できるという点において、マルチテナントである。
システム800は好都合である。理由は次の通りである。マイクロサービス804はデータベース806のデータから物理的に切離されており、クライアントにより近い場所を通ってデータを複製することにより、マイクロサービス804をクライアントに対するローカルサービスとして提供することができ、システム800はサービスのアベイラビリティを管理しそれをグローバルに提供することができる。
一実施形態において、マイクロサービス804はステートレスである。これは、マイクロサービス804を走らせるマシンが、特定のテナントに対するサービスを示すマーカを保持していないことを意味する。その代わりに、テナンシーは、たとえば、入ってくる要求のURLのホスト部分にマーキングされてもよい。このテナンシーはデータベース806のテナント808のうちの1つを示す。多数のテナント(たとえば何百万ものテナント)をサポートする場合、マイクロサービス804は、データベース806への同数の接続を有することはできない。マイクロサービス804はその代わりに、データベースユーザというコンテキストにおいてデータベース806への実際の物理接続を提供する接続プール810を使用する。
一般的に、接続は、基礎をなすドライバまたはプロバイダに接続ストリングを提供することによって構築される。接続ストリングは、特定のデータベースまたはサーバをアドレス指定するために、かつ、インスタンスおよびユーザ認証クレデンシャルを与えるために使用される(たとえば「Server=sql_box;Database=Common;User ID=uid;Pwd=password;」)。接続は、一旦構築されると、開閉が可能であり、プロパティ(たとえばコマンドタイムアウト長さ、または存在するのであればトランザクション)を設定することができる。接続ストリングは、データプロバイダのデータアクセスインターフェイスによって指示されるキーと値とのペアのセットを含む。接続プールは、データベースに対する未来の要求が必要なときに接続を再使用できるように保持されるデータベース接続のキャッシュである。接続プーリングにおいて、接続は、作成後にプールに置かれ、新たな接続を確立しなくてもよいように、再使用される。たとえば、マイクロサービス804とデータベース808との間に10の接続が必要な場合、接続プール810には、すべてデータベースユーザというコンテキストにおいて(たとえば特定のデータベースユーザに関連して、たとえば、誰がこの接続の所有者か、誰のクレデンシャルが検証中なのか、それはデータベースユーザか、それはシステムクレデンシャルかなどに関連して)開いている10の接続があるであろう。
接続プール810内の接続は、何にでもアクセスできるシステムユーザのために作成される。したがって、テナントに代わって要求を処理するマイクロサービス804による監
査および特権を正しく扱うために、データベース動作は、特定のテナントに割当てられたスキーマ所有者に関連する「プロキシユーザ」812というコンテキストで実行される。このスキーマ所有者は、このスキーマ作成の目的であったテナンシーにのみアクセスでき、このテナンシーの値はこのスキーマ所有者の値である。データベース806内のデータを求める要求がなされると、マイクロサービス804は、接続プール810内の接続を用いてこのデータを提供する。したがって、マルチテナンシーは、リソーステナンシーに対応付けられたデータストアプロキシユーザというコンテキストにおいて(たとえばそれに関連して)作成されたデータ接続のトップにある要求ごとに構築された特定テナント向けデータストアバインディングというコンテキストにおいて(たとえばそれに関連して)入ってくる要求を処理するステートレスでエラスティックな中間層サービスを持つことによって得られ、データベースは、サービスとは無関係にスケーリングできる。
以下は、プロキシユーザ812を実現するための機能の例を提供する。
この機能において、マイクロサービス804は、接続プール810内のデータベース接続を使用する一方で、接続プール810から引出された接続に対する「プロキシユーザ(Proxy User)」設定を、「テナント(Tenant)」にセットし、テナントというコンテキストにおいてデータオペレーションを実行する。
すべてのテーブルをストライピングすることにより同じデータベースにおいて異なるテナント用に異なるコラムを構成するとき、1つのテーブルは、混合されたすべてのテナントのデータを含み得る。これに対し、一実施形態は、テナント駆動のデータ層を提供する。本実施形態は、異なるテナント用に同一データベースをストライピングするのではなく、テナントごとに異なる物理データベースを提供する。たとえば、マルチテナンシーは、プラガブルデータベース(たとえばオラクル社のOracle Database12c)を用いて実現
されてもよく、この場合、各テナントには別々のパーティションが割当てられる。データ層では、リソースマネージャが要求を処理し、その後、その要求のデータソースを求める(メタデータとは別)。本実施形態は、要求ごとに各データソース/ストアへのランタイムスイッチを実行する。各テナントのデータをその他のテナントから分離することにより、本実施形態は改善されたデータセキュリティを提供する。
一実施形態において、互いに異なるトークンは、異なるテナンシーをコーディファイする。URLトークンは、サービスを要求するアプリケーションのテナンシーを特定し得る。アイデンティティトークンは、認証すべきユーザのアイデンティティをコーディファイし得る。アクセストークンは複数のテナンシーを特定し得る。たとえば、アクセストークンは、このようなアクセスのターゲットであるテナンシー(たとえばアプリケーションテナンシー)と、アクセス権が付与されたユーザのユーザテナンシーとをコーディファイし得る。クライアントアサーショントークンは、クライアントIDおよびクライアントテナンシーを特定し得る。ユーザアサーショントークンは、ユーザおよびユーザテナンシーを特定し得る。
一実施形態において、アイデンティティトークンは、ユーザテナント名(すなわちユーザがどこに存在しているか)を示す少なくとも「クレーム(claim)」[セキュリティ分
野の当業者が使用する]を含む。認可トークンに関連する「クレーム」は、ある主体が自身についてまたは別の主体について述べるステートメントである。ステートメントは、たとえば、名称、アイデンティ、キー、グループ、特権、または機能に関するものであってもよい。クレームは、プロバイダによって発行され、1つ以上の値が与えられた後に、セキュリティトークンサービス(security token service:「STS」)として一般に知られている発行者によって発行されたセキュリティトークンにパッケージングされる。
一実施形態において、アクセストークンは、少なくとも、アクセストークンを求める要求がなされた時点のリソーステナント名(たとえば顧客)を示すクレーム/ステートメントと、ユーザテナント名を示すクレーム/ステートメントと、要求しているOAuthクライアントの名を示すクレームと、クライアントテナント名を示すクレーム/ステートメントとを含む。一実施形態において、アクセストークンは、以下のJSON機能に従って実現されてもよい。
一実施形態において、クライアントアサーショントークンは、少なくとも、クライアントテナント名を示すクレーム/ステートメントと、要求を出しているOAuthクライアントの名前を示すクレーム/ステートメントとを含む。
本明細書に記載のトークンおよび/または複数のテナンシーは、IDCS以外のマルチテナントのクラウドベースのサービスによって実現されてもよい。たとえば、本明細書に記載のトークンおよび/または複数のテナンシーは、SaaSまたは企業リソースプランニング(Enterprise Resource Planning:「ERP」)サービスにおいて実現されてもよい。
図9は、一実施形態におけるIDCSのネットワークビュー900のブロック図である。図9は、一実施形態においてアプリケーション「ゾーン」904間で行なわれるネットワーク対話を示す。アプリケーションは、要求される保護レベルと、その他さまざまなシステムへの接続の実現に基づいてゾーンに分割される(たとえばSSLゾーン、no SSLゾーンなど)。アプリケーションゾーンのうち、いくつかはIDCS内部からのアクセスを要するサービスを提供するアプリケーションゾーンであり、いくつかはIDCS外部からのアクセスを要するサービスを提供するアプリケーションゾーンであり、いくつかはオープンアクセスである。したがって、各保護レベルは各ゾーンに対して強化される。
図9の実施形態において、サービス間の通信は、HTTP要求を用いて行なわれる。一実施形態において、IDCSは、本明細書に記載のアクセストークンを用いて、サービス
を提供するだけでなく、IDCSへのアクセスおよびIDCS自身の内部におけるアクセスを安全なものにする。一実施形態において、IDCSマイクロサービスは、RESTfulインターフェイスを通してエクスポーズされ、本明細書に記載のトークンによって安全なものにされる。
図9の実施形態において、さまざまなアプリケーション/サービス902のうちのいずれか1つが、IDCS APIに対してHTTPコールすることにより、IDCSサービスを使用してもよい。一実施形態において、アプリケーション/サービス902のHTTP要求は、オラクルパブリッククラウドロードバランシング外部仮想IPアドレス(「VIP」)906(またはその他同様の技術)、パブリッククラウドウェブルーティング層908、およびIDCSロードバランシング内部VIPアプライアンス910(またはその他同様の技術)を通って、IDCSウェブルーティング層912により受信されてもよい。IDCSウェブルーティング層912は、IDCSの外部または内部からの要求を受信し、IDCSプラットフォームサービス層914またはIDCSインフラストラクチャサービス層916を通してルーティングする。IDCSプラットフォームサービス層914は、OpenID Connect、OAuth、SAML,SCIMなどのIDCSの外部から呼出されたIDCSマイクロサービスを含む。IDCSインフラストラクチャサービス層916は、その他のIDCSマイクロサービスの機能をサポートするためにIDCSの内部から呼出されたサポートマイクロサービスを含む。IDCSインフラストラクチャマイクロサービスの例は、UI、SSO、レポート、キャッシュ、ジョブスケジューラ、サービスマネージャ、キーを作るための機能などである。IDCSキャッシュ層926は、IDCSプラットフォームサービス層914およびIDCSインフラストラクチャサービス層916のためのキャッシング機能をサポートする。
IDCSへの外部アクセスおよびIDCS内部アクセス双方のセキュリティを強化することにより、IDCSの顧客に、それが実行するアプリケーションのための傑出したセキュリティコンプライアンスを与えることができる。
図9の実施形態において、構造化照会言語(Structured Query Language:「SQL」
)に基づいて通信するデータ層918およびLDAPに基づいて通信するIDストア層920以外については、OAuthプロトコルを使用することにより、IDCS内のIDCSコンポーネント(たとえばマイクロサービス)間の通信を保護し、IDCS外部からのアクセスを安全なものにするために使用される同じトークンをIDCS内のセキュリティのためにも使用する。すなわち、ウェブルーティング層912は、要求がIDCSの外部から受けたものであろうとIDCSの内部から受けたものであろうと、受信した要求を処理するための同じトークンおよびプロトコルを使用する。したがって、IDCSは、システム全体を保護するために1つの一貫したセキュリティモデルを提供することにより、傑出したセキュリティコンプライアンスを可能にする。なぜなら、システム内に実現されるセキュリティモデルが少ないほど、システムの安全性は高くなるからである。
IDCSクラウド環境において、アプリケーションは、ネットワークコールを行なうことによって通信する。ネットワークコールは、HTTP、伝送制御プロトコル(Transmission Control Protocol:「TCP」)、ユーザデータグラムプロトコル(User Datagram
Protocol:「UDP」)などの適用可能なネットワークプロトコルに基づいていればよ
い。たとえば、アプリケーション「X」は、アプリケーション「Y」と、HTTPに基づいて、アプリケーション「Y」をHTTPユニフォーム・リソース・ロケータ(Uniform Resource Locator:「URL」)としてエクスポーズすることにより、通信し得る。一実施形態において、「Y」は、各々がある機能に対応する多数のリソースをエクスポーズするIDCSマイクロサービスである。「X」(たとえば別のIDCSマイクロサービス)は、「Y」をコールする必要があるとき、「Y」と、呼出す必要があるリソース/機能と
を含むURLを構成し(たとえばhttps:/host/Y/resource)、ウェブルーティング層912を通って「Y」に導かれる対応するRESTコールを行なう。
一実施形態において、IDCS外部の呼出元は、「Y」がどこにあるかを知る必要がない場合があるが、ウェブルーティング層912はアプリケーション「Y」がどこで走っているかを知る必要がある。一実施形態において、IDCSは、発見機能を実現する(OAuthサービスによって実現される)ことにより、各アプリケーションがどこで走っているかを判断し、スタティックなルーティング情報の可用性が必要ではなくなるようにする。
一実施形態において、企業マネージャ(enterprise manager:「EM」)922は、オンプレミスおよびクラウドベース管理をIDCSに拡張する「一枚のガラス」を提供する。一実施形態において、Chef Software社の構成管理ツールである「シェフ(Chef)」サ
ーバ924は、さまざまなIDCS層のための構成管理機能を提供する。一実施形態において、サービスデプロイメントインフラストラクチャおよび/または永続格納モジュール928は、テナントライフサイクル管理動作、パブリッククラウドライフサイクル管理動作、またはその他の動作のために、OAuth2 HTTPメッセージをIDCSウェブルーティング層912に送信してもよい。一実施形態において、IDCSインフラストラクチャサービス層916は、ID/パスワードHTTPメッセージを、パブリッククラウド通知サービス930またはパブリッククラウドストレージサービス932に送信してもよい。
クラウドアクセス制御‐SSO
一実施形態は、クラウドスケールSSOサービスを実現するために軽量クラウド標準をサポートする。軽量クラウド標準の例としては、HTTP、REST、および、ブラウザを通してアクセスを提供する標準(ウェブブラウザは軽量であるため)が挙げられる。逆に、SOAPは、クライアントを構築するためにより多くの管理、構成、およびツールを必要とする重いクラウド標準の一例である。本実施形態は、アプリケーションのためにOpenID Connectセマンティクスを使用することにより、IDCSに対してユーザ認証を要求する。本実施形態は、軽量HTTPクッキーベースのユーザセッション追跡を用いて、ステートフルなサーバ側セッションサポートなしで、IDCSにおけるユーザのアクティブなセッションを追跡する。本実施形態は、使用するアプリケーションに対して、認証されたアイデンティティを自身のローカルセッションに戻すマッピングを行なうときに、JWTベースのアイデンティティトークンを使用する。本実施形態は、連携されているアイデンティティ管理システムとの統合をサポートし、IDCSに対してユーザ認証を要求するために企業デプロイメントのSAML IDPサポートをエクスポーズする。
図10は、一実施形態におけるIDCS内のSSO機能のシステムアーキテクチャビューのブロック図1000である。本実施形態は、クライアントアプリケーションが標準ベースのウェブプロトコルを推進してユーザ認証フローを開始することを可能にする。クラウドシステムとSSOの統合を要求するアプリケーションは、企業データセンターにあってもよく、遠隔パートナーデータセンターにあってもよく、またはオンプレミスの顧客によって操作されてもよい。一実施形態において、異なるIDCSプラットフォームサービスが、接続されているネイティブなアプリケーション(すなわちIDCSと統合するためにOpenID接続を利用するアプリケーション)からのログイン/ログアウト要求を処理するためのOpenID Connect、接続されているアプリケーションからのブラウザベースのログイン/ログアウト要求を処理するためのSAML IDPサービス、外部SAML IDPに対してユーザ認証を調整するためのSAML SPサービス、および、ローカルなまたは連携されたログインフローを含みIDCSホストセッションクッ
キーを管理するためのエンドユーザログインセレモニーを調整するための内部IDCS SSOサービスなどの、SSOのビジネスを実現する。一般的に、HTTPは、フォームありでまたはフォームなしで機能する。フォームありで機能するとき、このフォームはブラウザ内で見えるフォームである。フォームなしで機能するとき、これはクライアントからサーバへの通信として機能する。OpenID ConnectもSAMLも、フォームをレンダリングする能力を必要とするが、これは、ブラウザの存在によって実現される、または、ブラウザが存在しているかのように機能するアプリケーションによって仮想的に実行される。一実施形態において、ユーザ認証/SSOをIDCSを通して実現するアプリケーションクライアントは、IDCSにおいて、OAuth2クライアントとして登録される必要があり、クライアント識別子およびクレデンシャル(たとえばID/パスワード、ID/証明書など)を取得する必要がある。
図10の実施形態の例は、2つのプラットフォームマイクロサービスとしてのOAuth2 1004およびSAML2 1006と、1つのインフラストラクチャマイクロサービスとしてのSSO1008とを含む、ログイン機能をまとめて提供する3つのコンポーネント/マイクロサービスを含む。図10の実施形態において、IDCSは「アイデンティティメタシステム」を提供する。このメタシステムにおいて、SSOサービス1008は、異なる種類のアプリケーションに対して提供される。これらのアプリケーションは、3者間OAuthフローを必要としOpenID Connectリレーパーティ(relaying party:「RP」、そのユーザ認証機能をIDPにアウトソーシングするアプリケーション)として機能するブラウザベースのウェブまたはネイティブアプリケーション1010、2者間OAuthフローを必要としOpenID Connect RPとして機能するネイティブアプリケーション1011、およびSAML SPとして機能するウェブアプリケーション1012などである。
一般的に、アイデンティティメタシステムは、デジタルアイデンティティのための相互運用可能なアーキテクチャであり、複数の基礎となる技術、実装、およびプロバイダの集合体を用いることを可能にする。LDAP、SAML、およびOAuthは、アイデンティティ機能を提供する異なるセキュリティ標準の例であり、アプリケーションを構築するための基礎となることが可能であり、アイデンティティメタシステムは、このようなアプリケーションに対して統一されたセキュリティシステムを提供するように構成されてもよい。LDAPセキュリティモデルは、アイデンティティを扱うための特定のメカニズムを指定し、システムを通るすべてのパスは厳密に保護されねばならない。SAMLは、一組のアプリケーションが、異なるセキュリティドメインの異なる組織に属する別の一組のアプリケーションとの間で安全に情報を交換できるようにするために開発されたものである。これら2つのアプリケーションの間に信頼はないので、SAMLは、一方のアプリケーションが、同じ組織に属していない別のアプリケーションを認証できるように開発された。OAuthは、ウェブベースの認証を実行するための軽量プロトコルであるOpenID Connectを提供する。
図10の実施形態において、OpenIDアプリケーション1010がIDCS内のOpenIDサーバに接続すると、その「チャネル」はSSOサービスを要求する。同様に、SAMLアプリケーション1012がIDCS内のSAMLサーバに接続すると、その「チャネル」もSSOサービスを要求する。IDCSにおいて、各マイクロサービス(たとえばOpenIDマイクロサービス1004およびSAMLマイクロサービス1006)はアプリケーション各々を処理し、これらのマイクロサービスはSSOマイクロサービス1008からのSSO機能を要求する。プロトコルごとにマイクロサービスを追加してからSSO機能のためにSSOマイクロサービス1008を用いることにより、このアーキテクチャを拡張して任意の数のその他のセキュリティプロトコルをサポートすることができる。SSOマイクロサービス1008は、セッションを発行し(すなわちSSOクッ
キー1014が提供される)、このアーキテクチャにおいてセッションを発行する権限を有する唯一のシステムである。IDCSセッションは、ブラウザ1002がSSOクッキー1014を使用することによって実現される。ブラウザ1002はまた、ローカルセッションクッキー1016を用いてそのローカルセッションを管理する。
一実施形態において、たとえば、ブラウザ内で、ユーザは、SAMLに基づいて第1のアプリケーションを使用してログインし、その後、OAuthなどの異なるプロトコルを用いて構築された第2のアプリケーションを使用してもよい。ユーザには、同じブラウザ内の第2のアプリケーション上のSSOが与えられる。したがって、ブラウザは、ステートまたはユーザエージェントであり、クッキーを管理する。
一実施形態において、SSOマイクロサービス1008は、ログインセレモニー1018、ID/パスワードリカバリ1020、第1回ログインフロー1022、認証マネージャ1024、HTTPクッキーマネージャ1026、およびイベントマネージャ1028を提供する。ログインセレモニー1018は、顧客設定および/またはアプリケーションコンテキストに基づいてSSO機能を実現し、ローカルフォーム(たとえばベーシックAuth)、外部SAML IDP、外部OIDC IDPなどに従って構成されてもよい。ID/パスワードリカバリ1020は、ユーザのIDおよび/またはパスワードの回復のために使用される。第1回ログインフロー1022は、ユーザが1回目にログインしたときに実現される(すなわちSSOセッションはまだ存在しない)。認証マネージャ1024は、認証に成功すると認証トークンを発行する。HTTPクッキーマネージャ1026は認証トークンをSSOクッキーに保存する。イベントマネージャ1028はSSO機能に関連するイベントをパブリッシュする。
一実施形態において、OAuthマイクロサービス1004とSSOマイクロサービス1008との間の対話は、ブラウザリダイレクトに基づいており、SSOマイクロサービス1008は、HTMLフォームを用いてユーザにチャレンジし、クレデンシャルを検証し、セッションクッキーを発行する。
一実施形態において、たとえば、OAuthマイクロサービス1004は、ブラウザ1002から認証要求を受け、3者間OAuthフローに従ってアプリケーションのユーザを認証する。よって、OAuthマイクロサービス1004は、OIDCプロバイダ1030として機能し、ブラウザ1002をSSOマイクロサービス1008にリダイレクトし、アプリケーションコンテキストに沿って進む。ユーザが有効なSSOセッションを有するか否かに応じて、SSOマイクロサービス1008は、既存のセッションを検証するかまたはログインセレモニーを実行する。認証または検証に成功すると、SSOマイクロサービス1008は、認証コンテキストをOAuthマイクロサービス1004に返す。そうすると、OAuthマイクロサービス1004はブラウザ1002を認証(「AZ」コードを有するコールバックURLにリダイレクトする。ブラウザ1002は、AZコードをOAuthマイクロサービス1004に送信し、必要なトークン1032を要求する。また、ブラウザ1002は、HTTP認証ヘッダにおいてそのクライアントクレデンシャル(IDCSをOAuth2クライアントとして登録したときに取得)を含む。これに対し、OAuthマイクロサービス1004は、要求されたトークン1032をブラウザ1002に与える。一実施形態において、ブラウザ1002に与えられるトークン1032は、JWアイデンティティと、IDCS OAuth2サーバによって署名されたアクセストークンとを含む。この機能のさらなる詳細は、以下で図11を参照しながら開示される。
一実施形態において、たとえば、OAuthマイクロサービス1004は、ネイティブアプリケーション1011から認可要求を受け、2者間OAuthフローに従ってユーザ
を認証する。この場合、OAuthマイクロサービス1004の認証マネージャ1034は対応する認証を(たとえばクライアント1011から受けたID/パスワードに基づいて)実行し、トークンマネージャ1036は、認証に成功すると、対応するアクセストークンを発行する。
一実施形態において、たとえば、SAMLマイクロサービス1006は、ブラウザからSSO POST要求を受け、SAML SPとして機能するウェブアプリケーション1012のユーザを認証する。SAMLマイクロサービス1006は次に、SAML IDP1038として機能し、ブラウザ1002をSSOマイクロサービス1008にリダイレクトし、アプリケーションコンテキストに沿って進む。ユーザが有効なSSOセッションを有しているか否かに応じて、SSOマイクロサービス1008は、既存のセッションを検証するか、またはログインセレモニーを実行する。認証または検証に成功すると、SSOマイクロサービス1008は、認証コンテキストをSAMLマイクロサービス1006に返す。そうすると、SAMLマイクロサービスは、必要なトークンでSPにリダイレクトする。
一実施形態において、たとえば、SAMLマイクロサービス1006は、SAML SP1040として機能してもよく、遠隔SAML IDP1042(たとえばアクティブディレクトリ連携サービス(active directory federation service:「ADFS」)に
進んでもよい。一実施形態は、標準SAML/ADフローを実現する。一実施形態において、SAMLマイクロサービス1006とSSOマイクロサービス1008との間の対話は、ブラウザのリダイレクトに基づいており、SSOマイクロサービス1008は、HTMLフォームを用いてユーザにチャレンジし、クレデンシャルを検証し、セッションクッキーを発行する。
一実施形態において、IDCS内部のコンポーネント(たとえば1004、1006、1008)と、IDCS外部のコンポーネント(たとえば1002、1011、1042)との間の対話は、ファイアウォール1044を通して行なわれる。
ログイン/ログアウトフロー
図11は、一実施形態における、IDCSによって提供されるSSO機能のメッセージシーケンスフロー1100である。ユーザがブラウザ1102を用いてクライアント1106(たとえばブラウザベースのアプリケーションまたはモバイル/ネイティブアプリケーション)にアクセスするとき、クラウドゲート1104は、アプリケーション施行点として機能し、ローカルポリシーテキストファイルに規定されているポリシーを施行する。クラウドゲート1104は、ユーザがローカルアプリケーションセッションを有していないことを検出した場合、ユーザの認証を要求する。そうするために、クラウドゲート1104は、ブラウザ1102をOAuth2マイクロサービス1110にリダイレクトすることにより、OAuth2マイクロサービス1110に対するOpenID Connectログインフローを開始する(3者間AZ Grantフローであり、範囲=「openid
profile」)。
ブラウザ1102の要求は、IDCSルーティング層ウェブサービス1108およびクラウドゲート1104を横断してOAuth2マイクロサービス1110に到達する。OAuth2マイクロサービス1110は、アプリケーションコンテキスト(すなわちアプリケーションを記述するメタデータ、たとえば接続するアプリケーションのアイデンティティ、クライアントID、構成、アプリケーションは何ができるかなど)を構成し、ブラウザ1102をログインのためにSSOマイクロサービス1112にリダイレクトする。
ユーザが有効なSSOセッションを有する場合、SSOマイクロサービス1112は、
ログインセレモニーを開始することなく既存のセッションを検証する。ユーザが有効なSSOセッションを有していない場合(すなわちセッションクッキーが存在しない)、SSOマイクロサービス1112は、顧客のログインプリファレンスに従ってユーザログインセレモニーを開始する(たとえば商標付ログインページを表示する)。そうするために、SSOマイクロサービス1112は、ブラウザ1102を、JavaScriptで実現されるログインアプリケーションサービス1114にリダイレクトする。ログインアプリケーションサービス1114はブラウザ1102にログインページを提供する。ブラウザ1102はログインクレデンシャルを含むREST POSTをSSOマイクロサービス1112に送信する。SSOマイクロサービス1112は、アクセストークンを生成し、REST POSTのクラウドゲート1104に送信する。クラウドゲート1104は、認証情報を管理SCIMマイクロサービス1116に送信することによりユーザのパスワードを検証する。管理SCIMマイクロサービス1116は、認証が成功したと判断し、対応するメッセージをSSOマイクロサービス1112に送信する。
一実施形態において、ログインセレモニー中、ログインページは同意ページを表示しない。「ログイン」オペレーションはさらなる同意を要しないからである。代わりに、アプリケーションに対してエクスポーズされている特定のプロファイル属性についてユーザに知らせるプライバシーポリシーが、ログインページ上に記載される。ログインセレモニー中、SSOマイクロサービス1112は顧客のIDPプリファレンスを尊重し、構成され次第、構成されたIDPに対する認証のためにIDPにリダイレクトする。
認証または検証が成功すると、SSOマイクロサービス1112は、ブラウザ1102を、ユーザの認証トークンを含む、新たに作成/更新されたSSOホストHTTPクッキー(たとえば「HOSTURL」が示すホストのコンテキストで作成されたクッキー)を用いて、OAuth2マイクロサービス1110に戻るようにブラウザ1102をリダイレクトする。OAuth2マイクロサービス1110は、AZコード(たとえばOAuthコンセプト)をブラウザ1102に戻しクラウドゲート1104にリダイレクトする。ブラウザ1102はAZコードをクラウドゲート1104に送信し、クラウドゲート1104はREST POSTをOAuth2マイクロサービス1110に送信してアクセストークンおよびアイデンティティトークンを要求する。これらのトークンはどちらも、OAuthマイクロサービス1110にスコーピングされる(オーディエンストークンクレームによって示される)。クラウドゲート1104はこれらのトークンをOAuth2マイクロサービス1110から受ける。
クラウドゲート1104は、アイデンティティトークンを用いて、認証されたユーザのアイデンティティをその内部アカウント表現にマッピングし、これは、このマッピングを自身のHTTPクッキーに保存してもよい。クラウドゲート1104は次に、ブラウザ1102をクライアント1106にリダイレクトする。すると、ブラウザ1102は、クライアント1106に到達し、対応するレスポンスをクライアント1106から受ける。この時点以降、ブラウザ1102は、アプリケーションのローカルクッキーが有効である限り、アプリケーション(すなわちクライアント1106)にシームレスにアクセスすることができる。ローカルクッキーが無効になると、認証プロセスは繰返される。
クラウドゲート1104はさらに、要求に含められたアクセストークンを用いて、「userinfo」をOAuth2マイクロサービス1110からまたはSCIMマイクロサービスから取得する。このアクセストークンは、「プロファイル」スコープによって与えられる属性の「userinfo」リソースにアクセスするには十分である。これは、SCIMマイクロサービスを介して「/me」リソースにアクセスするのにも十分である。一実施形態において、デフォルトで、含まれているアクセストークンは、「プロファイル」スコープの下で与えられるユーザプロファイル属性に対してのみ十分である。他のプロファイル属性へ
のアクセスは、クラウドゲート1104によって発行されたAZグラントログイン要求において提示された追加の(任意の)スコープに基づいて認可される。
ユーザがOAuth2が統合された別のアプリケーションにアクセスする場合、同じプロセスが繰返される。
一実施形態において、SSO統合アーキテクチャは、ブラウザベースのユーザログアウトに対し、同様のOpenID Connectユーザ認証フローを使用する。一実施形態において、既存のアプリケーションセッションを有するユーザは、クラウドゲート1104にアクセスしてログアウトを開始する。その代わりに、ユーザは、IDCS側でログアウトを開始している場合がある。クラウドゲート1104は、特定用途向けのユーザセッションを終了し、OAuth2マイクロサービス1110に対しOAuth2 OpenID プロバイダ(「OP」)ログアウト要求を開始する。OAuth2マイクロサービス1110は、ユーザのホストSSOクッキーを削除するSSOマイクロサービス1112にリダイレクトする。SSOマイクロサービス1112は、ユーザのSSOクッキーにおいて追跡された既知のログアウトエンドポイントに対し一組のリダイレクト(OAuth2 OPおよびSAML IDP)を開始する。
一実施形態において、クラウドゲート1104がSAMLプロトコルを用いてユーザ認証(たとえばログイン)を要求する場合、同様のプロセスが、SAMLマイクロサービスとSSOマイクロサービス1112との間で開始される。
クラウドキャッシュ
一実施形態は、クラウドキャッシュと呼ばれるサービス/機能を提供する。クラウドキャッシュは、IDCSに与えられて、LDAPベースのアプリケーション(たとえば電子メールサーバ、カレンダーサーバー、何らかのビジネスアプリケーションなど)との通信をサポートする。なぜなら、IDCSはLDAPに従って通信するのではないが、このようなアプリケーションはLDAPに基づいてのみ通信するように構成されているからである。典型的には、クラウドディレクトリは、REST APIを介してエクスポーズされ、LDAPプロトコルに従って通信するのではない。一般的に、企業ファイアウォオールを通してLDAP接続を管理するには、セットアップおよび管理が難しい特殊な構成が必要である。
LDAPベースのアプリケーションをサポートするために、クラウドキャッシュは、LDAP通信を、クラウドシステムとの通信に適したプロトコルに変換する。一般的に、LDAPベースのアプリケーションは、LDAPを介してデータベースを使用する。代わりに、アプリケーションは、SQLのような異なるプロトコルを介してデータベースを使用するように構成されてもよい。しかしながら、LDAPはツリー構造のリソースの階層表現を提供するのに対し、SQLはデータをテーブルとフィールドとして表現する。したがって、LDAPは検索機能用であることがより望ましいであろう。一方、SQLはトランザクション機能用であることがより望ましいであろう。
一実施形態において、IDCSが提供するサービスを、LDAPベースのアプリケーションで使用して、たとえば、アプリケーションのユーザを認証する(すなわちアイデンティティサービス)、またはアプリケーションのセキュリティポリシーを施行する(すなわちセキュリティサービス)ことができる。一実施形態において、IDCSとのインターフェイスは、ファイアウォールを通り、HTTP(たとえばREST)に基づく。典型的に、企業ファイアウォールは、内部LDAP通信へのアクセスを、当該通信がセキュア・ソケット・レイヤ(Secure Sockets Layer:「SSL」)を実現する場合であっても許可しない。また、企業ファイアウォールは、TCPポートがファイアウォールを通してエクス
ポーズされることを許可しない。しかしながら、クラウドキャッシュは、LDAPとHTTPとの間の変換を行なって、LDAPベースのアプリケーションが、IDCSが提供するサービスに到達できるようにし、ファイアウォールはHTTPに対してオープンである。
一般的に、LDAPディレクトリは、マーケティングおよび開発などのビジネスライン(line of business)で使用されてもよく、ユーザ、グループ、業務などを規定する。一例において、マーケティングおよび開発ビジネスは、多様な顧客を対象としている場合があり、顧客ごとに、独自のアプリケーション、ユーザ、グループ、業務などを有し得る。LDAPキャッシュディレクトリを実行し得るビジネスラインの別の例は、無線サービスプロバイダである。この場合、無線サービスプロバイダのユーザが行なう各コールは、LDAPディレクトリに対してユーザのデバイスを認証し、LDAPディレクトリ内の対応する情報の一部は課金システムと同期させてもよい。これらの例において、LDAPは、実行時に探索されるコンテンツを物理的に分離するための機能を提供する。
一例において、無線サービスプロバイダは、短期マーケティングキャンペーンを支援するIDCSが提供するサービスを使用する一方で、自身のアイデンティティ管理サービスをそのコアビジネス(たとえば通常のコール)のために扱ってもよい。この場合、クラウドキャッシュは、LDAPを、クラウドに対して実行する一組のユーザおよび一組のグループを有する場合は「平坦にする」。一実施形態において、IDCSにおいて実現されるクラウドキャッシュの数はいくつであってもよい。
分散型データグリッド
一実施形態において、IDCSにおけるキャッシュクラスタは、たとえばその開示を本明細書に引用により援用する米国特許公開第2016/0092540号に開示されている分散型データグリッドに基づいて実現される。分散型データグリッドは、分散環境またはクラスタ環境内で1つ以上のクラスタにおいてコンピュータサーバの集合体が、一緒に作業することにより情報を管理し計算などの関連動作を管理するシステムである。分散型データグリッドを用いることで、サーバ間で共有されるアプリケーションオブジェクトおよびデータを管理することができる。分散型データグリッドは、短いレスポンスタイム、高いスループット、予測可能なスケーラビリティ、継続的なアベイラビリティ、および情報の信頼性を提供する。具体的な例として、たとえばオラクル社のOracle Coherenceのデータグリッドのような分散型データグリッドは、情報をインメモリに格納することによりさらに高いパフォーマンスを達成し、複数のサーバにわたって同期が取られた情報のコピーを保持するにあたって冗長性を用いることにより、サーバ故障イベント時におけるシステムの回復力とデータの継続的なアベイラビリティとを保証する。
一実施形態において、IDCSは、Coherenceなどの分散型データグリッドを実現して
、すべてのマイクロサービスがブロックされることなく共有キャッシュオブジェクトへのアクセスを要求できるようにする。Coherenceは、従来のリレーショナルデータベース管
理システムと比較して、より高い信頼性、スケーラビリティ、およびパフォーマンスが得られるように設計された、所有権を主張できるJavaベースのインメモリデータグリッドである。Coherenceは、ピアトゥピア(すなわち中央マネージャがない)インメモリ分
散型キャッシュを提供する。
図12は、データを格納しデータアクセス権をクライアント1250に与え本発明の実施形態を実現する分散型データグリッド1200の一例を示す。「データグリッドクラスタ」または「分散型データグリッド」は、分散環境またはクラスタ環境内で1つ以上のクラスタ(たとえば1200a、1200b、1200c)において一緒に作業することにより情報を格納し関連する計算などの動作を管理する複数のコンピュータサーバ(たとえ
ば1220a、1220b、1220c、および1220d)を含むシステムである。分散型データグリッド1200は、クラスタ1200aにおいて5つのデータノード1230a、1230b、1230c、1230d、および1230eとともに4つのサーバ1220a、1220b、1220c、1220dを含むものとして示されているが、分散型データグリッド1200は、任意の数のクラスタおよび各クラスタにおける任意の数のサーバおよび/またはノードを含み得る。ある実施形態において、分散型データグリッド1200は本発明を実現する。
図12に示されるように、分散型データグリッドは、一緒に作業する多数のサーバ(たとえば1220a、1220b、1220c、および1220d)にデータを分散させることによってデータ格納および管理機能を提供する。データグリッドクラスタの各サーバは、たとえば、1つから2つのプロセッサソケットと1プロセッサソケット当たり2つから4つのCPUコアとを有する「コモディティ(commodity)x86」サーバハードウェ
アプラットフォームのような、従来のコンピュータシステムであってもよい。各サーバ(たとえば1220a、1220b、1220c、および1220d)は、1つ以上のCPUと、ネットワークインターフェイスカード(Network Interface Card:「NIC」)と、たとえば最小で4GBのRAM最大で64GB以上のRAMを含むメモリとで構成されている。サーバ1220aは、CPU1222aと、メモリ1224aと、NIC1226aとを有するものとして示されている(これらの要素は他のサーバ1220b、1220c、1220d上にもあるが図示されていない)。任意で、各サーバにフラッシュメモリ(たとえばSSD 1228a)を設けることで過剰な記憶容量を提供してもよい。提供時、SSD容量は、好ましくはRAMのサイズの10倍である。データグリッドクラスタ1200aのサーバ(たとえば1220a、1220b、1220c、1220d)は、高帯域幅のNIC(たとえばPCI−XまたはPCIe)を用いて高性能ネットワークスイッチ1220(たとえばギガビット以上のイーサネット(登録商標))に接続されている。
クラスタ1200aは、故障中にデータが失われる可能性を避けるために最小で4つの物理サーバを含むことが好ましいが、典型的な設備はより多くのサーバを有する。各クラスタに存在するサーバが多いほど、フェイルオーバーおよびフェイルバックの効率は高く、サーバの故障がクラスタに与える影響は小さくなる。サーバ間の通信時間を最短にするために、各データグリッドクラスタは、サーバ間の単一ホップ通信を提供する単一のスイッチ1202に限定されることが理想的である。このように、クラスタは、スイッチ1202上のポートの数によって制限される。したがって、典型的なクラスタは4〜96の物理サーバを含む。
分散型データグリッド1200のほとんどの広域ネットワーク(Wide Area Network:
「WAN」)構成において、WAN内の各データセンターは、独立しているが相互に接続されているデータグリッドクラスタ(たとえば1200a、1200b、および1200c)を有する。WANは、たとえば図12に示されるクラスタよりも多くのクラスタを含み得る。加えて、相互接続されているが独立しているクラスタ(たとえば1200a、1200b、1200c)を用いることにより、および/または相互接続されているが独立しているクラスタを、互いに離れているデータセンター内に配置することにより、分散型データグリッドは、自然災害、火災、洪水、長期停電などによって生じる、1つのクラスタのすべてのサーバの同時損失を防止すべく、クライアント1250に対するデータおよびサービスを保証することができる。
1つ以上のノード(たとえば1230a、1230b、1230c、1230dおよび1230e)は、クラスタ1200aの各サーバ(たとえば1220a、1220b、1220c、1220d)上で動作する。分散型データグリッドにおいて、ノードは、たと
えばソフトウェアアプリケーション、仮想マシンなどであってもよく、サーバは、ノードがその上で動作するオペレーティングシステム、ハイパーバイザなど(図示せず)を含み得る。Oracle Coherenceのデータグリッドでは、各ノードはJava仮想マシン(Java virtual machine:「JVM」)である。CPUの処理能力およびサーバ上で利用できるメモリに応じて、各サーバ上に多数のJVM/ノードを設けてもよい。JVM/ノードは、分散型データグリッドの要求に応じて、追加、起動、停止、および削除されてもよい。Oracle Coherenceを実行するJVMは、起動時に自動的に参加しクラスタ化する。クラスタに加わるJVM/ノードは、クラスタメンバまたはクラスタノードと呼ばれる。
各クライアントまたはサーバは、情報伝達のためにバスまたはその他の通信機構を含み、情報処理のためにバスに結合されたプロセッサを含む。プロセッサは、どのタイプの汎用または専用プロセッサであってもよい。各クライアントまたはサーバはさらに、プロセッサによって実行される命令および情報を格納するためのメモリを含み得る。メモリは、ランダムアクセスメモリ(「RAM」)、読出専用メモリ(「ROM」)、磁気もしくは光ディスクなどのスタティックストレージ、またはその他任意の種類のコンピュータ読取可能媒体を組合わせたもので構成することができる。各クライアントまたはサーバはさらに、ネットワークへのアクセス提供のためにネットワークインターフェイスカードなどの通信デバイスを含み得る。したがって、ユーザは、各クライアントまたはサーバに対して、直接、またはネットワークを通して遠隔から、またはその他任意の手段で、インターフェイスすることができる。
コンピュータ読取可能な媒体は、プロセッサからアクセスすることが可能な利用可能な媒体であればどのようなものでもよく、揮発性媒体および不揮発性媒体、リムーバブルおよび非リムーバブル媒体、ならびに通信媒体を含む。通信媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または、たとえば搬送波もしくはその他の搬送機構などの変調されたデータ信号内のその他のデータを含んでいてもよく、任意の情報伝達媒体を含む。
プロセッサはさらに、液晶ディスプレイ(「LCD」)などのディスプレイにバスを介して結合されてもよい。キーボード、およびコンピュータマウスなどのカーソル制御デバイスが、さらにバスに結合されることにより、ユーザが各クライアントまたはサーバに対してインターフェイスできるようにしてもよい。
一実施形態において、メモリは、プロセッサが実行すると機能を提供するソフトウェアモジュールを格納する。モジュールは、各クライアントまたはサーバにオペレーティングシステム機能を提供するオペレーティングシステムを含む。モジュールはさらに、クラウドアイデンティティ管理機能を提供するためのクラウドアイデンティティ管理モジュールと、本明細書に開示されているその他すべての機能とを含み得る。
クライアントは、クラウドサービスなどのウェブサービスにアクセスし得る。一実施形態において、ウェブサービスは、オラクル社のWebLogicサーバ上で実現されてもよい。他の実施形態ではウェブサービスの他の実装形態を使用してもよい。ウェブサービスは、クラウドデータを格納しているデータベースにアクセスする。
開示されている実施形態は、マイクロサービスベースのアーキテクチャを実現することにより、クラウドベースのマルチテナントIAMサービスを提供する。一実施形態において、要求された各アイデンティティ管理サービスは、中間層のマイクロサービスによって処理されるリアルタイムタスクと、メッセージキューにオフロードされるニア・リアルタイムタスクとに分割される。したがって、実施形態はクラウドスケールのIAMプラットフォームを提供する。
図13は、ある実施形態に従うIAM機能のフロー図1300である。一実施形態において、図13のフロー図の機能は、メモリにまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されているソフトウェアによって実現され、プロセッサによって実行される。その他の実施形態において、この機能は、ハードウェアによって(たとえば特定用途向け集積回路(application specific integrated circuit:「ASIC」)、プ
ログラマブルゲートアレイ(programmable gate array:「PGA」)、フィールドプロ
グラマブルゲートアレイ(field programmable gate array:「FPGA」)などを使用
することにより)実行されてもよく、ハードウェアとソフトウェアとの何らかの組合わせによって実行されてもよい。
1302で、アイデンティティ管理サービスを求める要求をクライアントから受信し、1304で、要求を認証し、1306で、要求に基づいてマイクロサービスにアクセスする。たとえば、一実施形態において、図6に示されるように、さまざまなアプリケーション/サービス602がIDCS APIに対してHTTPコールを行なうことにより、IDCSマイクロサービス614を使用することができる。一実施形態において、マイクロサービスは、その他のモジュール/マイクロサービスと通信可能な自己完結型モジュールであり、各マイクロサービスは、他からコンタクト可能な無名ユニバーサルポートを有する。一実施形態において、要求は、本明細書に記載のクラウドゲートなどのセキュリティゲートによって認証される。一実施形態において、要求は、たとえば図6のウェブルーティング層610および/または図7のクラウドゲート702を参照して認証される。
1308で、たとえば本明細書で「テナンシーの種類」に関して説明したように、要求に基づいて、クライアントのテナンシー、要求に関連するユーザのテナンシー、および要求に関連するリソースのテナンシーを判断する。一実施形態において、要求は、クライアントのテナンシーを特定するクライアントアサーショントークンを含む。一実施形態において、要求は、ユーザのテナンシーを特定するユーザアサーショントークンを含む。一実施形態において要求のヘッダはリソースのテナンシーを示す。一実施形態において、リソースは、リソーステナンシーに存在するアプリケーションまたはデータであり対応するリソーステナントによって所有されている。一実施形態において、クライアントは、ユーザが使用するブラウザである。一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーのうちの少なくとも2つは同じテナンシーである。
一例において、「テナント1」のクライアントは、「テナント3」のアプリケーションにアクセスするために「テナント2」のユーザのためのアクセストークンを要求してもよい。クライアントは、「http://tenant3/oauth/token」に行きこのトークンを求めるOAuth要求を呼出すことによって当該トークンを要求してもよい。クライアントは、「クライアントアサーション」を要求に含めることにより、自身が「テナント1」に存在するクライアントであることを明らかにする。このクライアントアサーションは、クライアントID(たとえば「クライアント1」)とクライアントテナンシー「テナント1」とを含む。「テナント1」の「クライアント1」として、クライアントは、「テナント3」に対するトークンを求める要求を呼出す権利を有し、「テナント2」のユーザのためのトークンを所望する。したがって、「ユーザアサーション」も同じHTTP要求の一部として送られる。生成されたアクセストークンは、アプリケーションテナンシー(「テナント3」)であるターゲットテナンシーのコンテキストにおいて発行され、ユーザテナンシー(「テナント2」)を含むであろう。
1310で、本明細書でたとえば図8のデータベース806から取出されるデータに関連して説明したように、データは、クライアントのテナンシー、ユーザのテナンシー、ま
たはリソースのテナンシーのうちの少なくとも1つから取出される。一実施形態において、本明細書で図8のデータベース806から取出されるデータに関連して説明したように、マイクロサービス804は、データベース806への接続を提供する接続プール810を用いてデータを取出す。一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーは、同一のテナンシーであっても異なるテナンシーであってもよい。たとえば、クライアントは第1のテナントに存在してもよく、ユーザは第1のテナントと異なる第2のテナントに存在してもよい。別の例として、クライアントは第1のテナントに存在してもよく、リソースは第1のテナントと異なる第2のテナントに存在してもよい。別の例として、ユーザは第1のテナントに存在してもよく、リソースは第1のテナントと異なる第2のテナントに存在してもよい。別の例として、クライアントは第1のテナントに存在してもよく、ユーザは第1のテナントと異なる第2のテナントに存在してもよく、リソースは第1および第2のテナントと異なる第3のテナントに存在してもよい。
1312で、本明細書で図6のIDCS「APIプラットフォーム」およびIDCS中間層614におけるマイクロサービスへのアクセスに関連して説明したように、アイデンティティ管理タスクは、サービスがデータを用いて実行する。一実施形態において、アイデンティティ管理タスクは、ユーザがリソースにアクセスするためのアクセストークンを取得することを含む。一実施形態において、このアクセストークンは、リソースのテナンシーとユーザのテナンシーとを特定する。一実施形態において、アイデンティティ管理タスクはユーザの認証を含む。一実施形態において、認証は、3者間または2者間フローを用いるOAuth標準に基づいていてもよい。
一実施形態において、サービスはステートレスである。一実施形態において、マイクロサービス804は、プロキシユーザ812を用いて接続プール810の各接続に接続する。一実施形態において、プロキシユーザ812は、データベース806内のテナント808を代理する。一実施形態において、データベース806およびマイクロサービス804は、互いに独立してスケーリングするように構成される。一実施形態において、データベース806は分散型データグリッドを含む。
図14は、ある実施形態に従うIAM機能のフロー図1400である。一実施形態において、図14のフロー図の機能は、メモリにまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されているソフトウェアによって実現され、プロセッサによって実行される。その他の実施形態において、この機能は、ハードウェアによって(たとえば特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などを使用することにより)実行されてもよく、ハードウェアとソフトウェアとの何らかの組合わせによって実行されてもよい。
1402で、ユーザがリソースにアクセスするためのアクセストークンの取得を求める要求をクライアントから受ける。一実施形態において、この要求はHTTP要求である。たとえば、一実施形態において、図6に示されるように、さまざまなアプリケーション/サービス602がIDCS APIに対してHTTPコールを行なうことにより、IDCSマイクロサービス614を使用することができる。一実施形態において、この要求は、ユーザを認証しアクセストークンを取得するための認可標準を示す。一実施形態において、認可標準はOAuthである。一実施形態において、クライアントはOAuthクライアントである。一実施形態において、トークンはJWTである。一実施形態において、リソースは、リソースのテナンシーに存在し対応するテナントによって所有されるアプリケーションまたはデータである。一実施形態において、クライアントはユーザが使用するブラウザである。一実施形態において、本明細書でたとえば図6のウェブルーティング層6
10および/または図7のクラウドゲート702に関連して説明したように、要求は、クラウドゲートなどのセキュリティゲートによって認証される。
1404で、要求に基づいて、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーを判断する。一実施形態において、要求は、クライアントのテナンシーを特定するクライアントアサーショントークンを含む。一実施形態において、要求は、ユーザのテナンシーを特定するユーザアサーショントークンを含む。一実施形態において要求のヘッダはリソースのテナンシーを示す。一例において、たとえば「テナント1」のクライアントは、「テナント3」のアプリケーションにアクセスするために「テナント2」のユーザのためのアクセストークンを要求してもよい。クライアントは、「http://tenant3/oauth/token」に行きこのトークンを求めるOAuth要求を呼出すことによって当該トークンを要求してもよい。クライアントは、「クライアントアサーション」を要求に含めることにより、自身が「テナント1」に存在するクライアントであることを明らかにする。このクライアントアサーションは、クライアントID(たとえば「クライアント1」)とクライアントテナンシー「テナント1」とを含む。「テナント1」の「クライアント1」として、クライアントは、「テナント3」に対するトークンを求める要求を呼出す権利を有し、「テナント2」のユーザのためのトークンを所望する。したがって、「ユーザアサーション」も同じHTTP要求の一部として送られる。生成されたアクセストークンは、アプリケーションテナンシー(「テナント3」)であるターゲットテナンシーのコンテキストにおいて発行され、ユーザテナンシー(「テナント2」)を含むであろう。
一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーは、同一のテナンシーであっても異なるテナンシーであってもよい。一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーのうちの少なくとも2つは同じテナンシーである。一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーのうちの少なくとも2つは異なるテナンシーである。たとえば、クライアントは第1のテナントに存在していてもよく、ユーザは第1のテナントと異なる第2のテナントに存在していてもよい。別の例として、クライアントは第1のテナントに存在していてもよく、リソースは第1のテナントと異なる第2のテナントに存在していてもよい。別の例として、ユーザは第1のテナントに存在していてもよく、リソースは第1のテナントと異なる第2のテナントに存在していてもよい。別の例として、クライアントは第1のテナントに存在していてもよく、ユーザは第1のテナントと異なる第2のテナントに存在していてもよく、リソースは第1および第2のテナントと異なる第3のテナントに存在していてもよい。
1406で、要求に基づいてマイクロサービスにアクセスする。一実施形態において、マイクロサービスは、その他のモジュール/マイクロサービスに対してトークすることができる自己完結型モジュールであり、各マイクロサービスは他からコンタクト可能な無名ユニバーサルポートを有する。一実施形態において、たとえば本明細書において図6のIDCS「APIプラットフォーム」およびIDCS中間層614のマイクロサービスへのアクセスに関連して説明したように、マイクロサービスがアクセスされる。
1408で、要求に基づいてマイクロサービスがアイデンティティ管理サービスを実行する。一実施形態において、アイデンティティ管理サービスは、リソースのテナントおよびユーザのテナンシーを特定するアクセストークンを生成することを含む。たとえば、一実施形態において、アクセストークンは、少なくとも、アクセストークンを求める要求がなされた時点のリソーステナント名(たとえば顧客)を示すクレームと、ユーザテナント名を示すクレームと、要求しているOAuthクライアントの名を示すクレームと、クライアントテナント名を示すクレームとを含む。一実施形態において、アクセストークンは
、以下のJSON機能に従って実現されてもよい。
一実施形態において、アイデンティティ管理サービスはユーザの認証を含む。一実施形態において、本明細書でたとえば図10を参照しながら説明したように、認証は、3者間または2者間フローを用いるOAuth標準に基づいていてもよい。一実施形態において、要求は、本明細書に記載のクラウドゲートなどのセキュリティゲートによって認証される。
一実施形態において、クライアントのテナンシー、ユーザのテナンシー、およびリソースのテナンシーのデータはデータベースに格納される。一実施形態において、データベースおよびマイクロサービスは、互いに独立してスケーリングするように構成される。一実施形態において、データベースは分散型データグリッドを含む。
図15は、ある実施形態に従うIAM機能のフロー図1500である。一実施形態において、図15のフロー図の機能は、メモリにまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されているソフトウェアによって実現され、プロセッサによって実行される。その他の実施形態において、この機能は、ハードウェアによって(たとえば特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などを使用することにより)実行されてもよく、ハードウェアとソフトウェアとの何らかの組合わせによって実行されてもよい。
1502で、アイデンティティ管理サービスを実行することを求める要求を受信する。一実施形態において、要求は、アイデンティティ管理サービスを特定するAPIへのコールと、当該アイデンティティ管理サービスを実行するように構成されたマイクロサービスとを含む。一実施形態において、マイクロサービスは、その他のモジュール/マイクロサービスと通信可能な自己完結型モジュールであり、各マイクロサービスは、他からコンタクト可能な無名ユニバーサルポートを有する。たとえば、一実施形態において、図6に示されるように、さまざまなアプリケーション/サービス602がIDCS APIに対するHTTPコールを行なうことによりIDCSマイクロサービス614を使用してもよい。一実施形態において、マイクロサービスはランタイムコンポーネント/プロセスである。
一実施形態において、要求はURLを含む。一実施形態において、マイクロサービスはURLのプレフィックスにおいて特定される。一実施形態において、URLのリソース部
分はAPIを特定する。一実施形態において、URLのホスト部分は要求に関連するリソースのテナンシーを特定する。たとえば、IDCSのウェブ環境における「host/microservice/resource」などのURLにおいて、マイクロサービス(microservice)は特定のURLプレフィックスたとえば「host/oauth/v1」を有することを特徴とするが、実際のマ
イクロサービスは「oauth/v1」である。「oauth/v1」の下で複数のAPIが存在し、複数のAPIは、たとえば、トークン(token)を要求するためのAPI「host/oauth/v1/token」、ユーザを認証する(authorize)ためのAPI「host/oauth/v1/authorize」などである。すなわち、URLはマイクロサービスを実現し、URLのリソース部分はAPIを実現する。したがって、同じマイクロサービスの下で複数のAPIが集約される。一実施形態において、URLのホスト部分はテナントを特定する(たとえば、https://tenant3.identity.oraclecloud.com:/oauth/v1/token)。
1504で、要求を認証する。一実施形態において、本明細書においてたとえば図6のウェブルーティング層610および/または図7のクラウドゲート702を参照して説明したように、クラウドゲートなどのセキュリティゲートが要求を認証する。
1506で、たとえば本明細書において図6のIDCS「APIプラットフォーム」およびIDCS中間層614のマイクロサービスへのアクセスに関連して説明したように、マイクロサービスにアクセスする。一実施形態において、マイクロサービスとの通信は、マイクロサービスの無名ユニバーサルポートを通して構成される。一実施形態において、マイクロサービスの無名ユニバーサルポートは、(たとえば従来のHTTPポートとして)マイクロサービスが従来エクスポーズする標準通信チャネルであって同じサービス内の他のモジュール/マイクロサービスがそれに対してトークすることを可能にする標準通信チャネルである。一実施形態において、マイクロサービスは、1つ以上のAPIをエクスポーズすることによって1つ以上の機能を提供する。一実施形態において、マイクロサービスとの通信は、1つ以上のAPIを通してのみ実現される。すなわち、マイクロサービスには、このようなAPIに対してコールすることによってしか到達/コンタクトできない。一実施形態において、マイクロサービスとの通信は、軽量プロトコルに従って構成される。一実施形態において、軽量プロトコルはHTTPとRESTとを含む。一実施形態において、要求はRESTful HTTP APIへのコールを含む。したがって、一実施形態はディスパッチ機能を提供する。各HTTP要求はURIと動詞とを含む。本実施形態は、URIからのエンドポイント(host/service/resource)をパースし、これを
HTTP動詞(たとえばPOST、PUT、PATCHまたはDELETE)と組合わせることにより、適切なモジュールの適切な方法をディスパッチする(または呼出す)。このパターンはRESTに共通でありさまざまなパッケージ(たとえばJersey)によってサポートされる。
1508で、たとえば本明細書で図6のIDCS「APIプラットフォーム」およびIDCS中間層614のマイクロサービスへのアクセスに関連して説明したように、マイクロサービスがアイデンティティ管理サービスを実行する。一実施形態において、マイクロサービスは、ステートレスで、横方向にスケーラブルで、独立してデプロイ可能である。一実施形態において、マイクロサービスの各物理的実装は、複数のテナントを安全にサポートするように構成される。一実施形態において、アイデンティティ管理サービスは、ログインサービス、SSOサービス、連携サービス、トークンサービス、ディレクトリサービス、プロビジョニングサービス、またはRBACサービスを含む。
一実施形態において、マイクロサービスは、データベースに格納されているテナントデータに基づいてアイデンティティ管理サービスを実行する。一実施形態において、データベースおよびマイクロサービスは、互いに独立してスケーリングするように構成される。一実施形態において、データベースは分散型データグリッドを含む。
図16は、ある実施形態に従うIAM機能のフロー図1600である。一実施形態において、図16のフロー図の機能は、メモリにまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されているソフトウェアによって実現され、プロセッサによって実行される。その他の実施形態において、この機能は、ハードウェアによって(たとえば特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などを使用することにより)実行されてもよく、ハードウェアとソフトウェアとの何らかの組合わせによって実行されてもよい。
1602で、アイデンティティ管理サービスを実行することを求める要求を受け、1604でアイデンティティ管理サービスに基づいてマイクロサービスにアクセスする。一実施形態において、マイクロサービスは、その他のモジュール/マイクロサービスと通信可能な自己完結型モジュールであり、各マイクロサービスは、他からコンタクト可能な無名ユニバーサルポートを有する。たとえば、一実施形態において、図6に示されるように、さまざまなアプリケーション/サービス602がIDCS APIに対するHTTPコールを行なうことによりIDCSマイクロサービス614を使用してもよい。一実施形態において、サービスは、ログインサービス、SSOサービス、連携サービス、トークンサービス、ディレクトリサービス、プロビジョニングサービス、またはRBACサービスである。
1606で、たとえば本明細書において「リアルタイムおよびニア・リアルタイムタスク」に関連して説明したように、アイデンティティ管理サービスを完了するために実行する必要がある1つ以上のリアルタイムタスクと1つ以上のニア・リアルタイムタスクとを判断する。一実施形態において、アイデンティティ管理サービスは、ユーザを認証することを含み、1つ以上のリアルタイムタスクは、ユーザのクレデンシャルを検証することと対応するセッションを開始することとを含む。一実施形態において、1つ以上のニア・リアルタイムタスクは、監査または通知のうちの少なくとも一方を含む。一実施形態において、本明細書においてたとえば図6のウェブルーティング層610および/または図7のクラウドゲート702に関連して説明したように、要求は、クラウドゲートなどのセキュリティゲートによって認証される。
1608で、マイクロサービス(図6のマイクロサービス614)が1つ以上のリアルタイムタスクを同期的に実行し、1610で、非同期的に実行する1つ以上のニア・リアルタイムタスクをキュー(図6のメッセージキュー628)に送る。一実施形態において、タスクを同期的に実行するとは、タスクの実行終了を、別のタスクの実行開始まで待つことを意味する。一実施形態において、タスクを非同期的に実行するとは、別のタスクの実行が、前のタスクの実行終了前に開始されてもよいことを意味する(たとえば、スレッドにおける前のタスクの実行中に別のスレッドの別のタスクまたはプロセスを開始すること)。一実施形態において、キューは、配信および処理が保証されたスケーラビリティが高い非同期イベント管理システムを実現するメッセージキュー(たとえば図6のメッセージキュー628)である。一実施形態において、アイデンティティ管理タスクは、ユーザによるリソースへのアクセスを許可することが要求される。一実施形態において、第1の組のサブタスクが完了した時点であって第2の組のサブタスクが完了する前の時点において、ユーザは、リソースにアクセスすることができる。
一実施形態において、要求の一部としてどのタスクを同期的に実行しどのタスクを非同期的に実行するかについての判断は、実行時ではなく設計時に行なわれる。本実施形態は実行時に特定の値を有するコードを実行する(たとえば特定のユーザを作成するまたは特定のユーザの作成を記録するイベントを送信する)が、実行時に、特定のタスクが同期で
あるか非同期であるかを判断するのではない。一実施形態において、たとえば、新たなユーザを登録または作成することを求める要求をIDCSが受けると、対応するマイクロサービスは、オペレーショナルデータベース(図6のグローバルデータベース620に位置する)の構成データに注目し、「ユーザ作成」動作が、構成データにおいて非同期動作として特定されている「ユーザ作成」でマーキングされていると判断する。マイクロサービスは、クライアントに戻り、ユーザの作成が正常に行なわれたことを示すが、実際の通知電子メールの発送は延期されバックエンドにプッシュされる。そうするために、マイクロサービスは、メッセージングAPI616を用いて、ストアであるキュー628にメッセージを入れる。
一実施形態において、マイクロサービスはステートレスである。一実施形態において、マイクロサービスは、データベースに格納されているテナントデータに基づいてアイデンティティ管理サービスを実行する。一実施形態において、データベースおよびマイクロサービスは、互いに独立してスケーリングするように構成されている。一実施形態において、データベースは分散型データグリッドを含む。
本明細書ではいくつかの実施形態が具体的に例示および/または記載されている。しかしながら、開示されている実施形態の修正および変形は、本発明の精神および意図する範囲から逸脱することなく、上記教示によってカバーされ以下の請求項の範囲に含まれることが、理解されるであろう。

Claims (11)

  1. クラウドベースのアイデンティティおよびアクセス管理の方法であって、
    プロセッサが、ログインサービスを含むアイデンティティ管理サービスの実行を求める要求を受信するステップを含み、前記要求に応答することは複数のタスクを含み、
    前記プロセッサが、マイクロサービスに固有のアプリケーションプログラミングインターフェイス(API)を介し前記アイデンティティ管理サービスに基づいて前記マイクロサービスにアクセスするステップと、
    前記プロセッサが、前記アイデンティティ管理サービスを完了するために実行する必要がある前記複数のタスクのうちの1つ以上のリアルタイムタスクと前記複数のタスクのうちの1つ以上のニア・リアルタイムタスクとを判断するステップと、
    前記プロセッサが、前記マイクロサービスにより、前記1つ以上のリアルタイムタスクを同期的に実行してユーザに前記ログインサービスを開始させるステップと、
    前記プロセッサが、前記ユーザが前記ログインサービスを開始した後に、非同期的に実行する前記1つ以上のニア・リアルタイムタスクをキューに送信するステップとを含
    前記マイクロサービスはデータベースに格納されているテナントデータに基づいて前記アイデンティティ管理サービスを実行し、前記データベースおよび前記マイクロサービスは互いに独立してスケーリングするように構成される、方法。
  2. 前記アイデンティティ管理サービスは、ユーザによるリソースへのアクセスを許可することを要求される、請求項1に記載の方法。
  3. 前記ユーザは、前記1つ以上のリアルタイムタスクが完了したときであって前記1つ以上のニア・リアルタイムタスクが完了する前に、前記リソースへのアクセスを許可される、請求項2に記載の方法。
  4. 前記アイデンティティ管理サービスは前記ユーザを認証することを含み、前記1つ以上のリアルタイムタスクは、前記ユーザのクレデンシャルを検証することと、対応するセッションを開始することとを含む、請求項3に記載の方法。
  5. 前記1つ以上のニア・リアルタイムタスクは、監査または通知のうちの少なくとも1つを含む、請求項4に記載の方法。
  6. 前記キューは、配信および処理が保証されたスケーラビリティが高い非同期イベント管理システムを実現するメッセージキューである、請求項1〜5のいずれか1項に記載の方法。
  7. 前記アイデンティティ管理サービスは、シングル・サイン・オン(SSO)サービス、連携サービス、トークンサービス、ディレクトリサービス、プロビジョニングサービス、またはロールベースアクセス制御(RBAC)サービスを含む、請求項1〜6のいずれか1項に記載の方法。
  8. 前記マイクロサービスはステートレスである、請求項1〜7のいずれか1項に記載の方法。
  9. 前記データベースは分散型データグリッドを含む、請求項1〜8のいずれか1項に記載の方法。
  10. クラウドベースのアイデンティおよびアクセス管理を提供するためのシステムであって、前記システムは、
    命令を含む記憶装置に接続されたプロセッサを備え、前記プロセッサは、前記命令を実行してモジュールを実現し、前記モジュールは、
    ログインサービスを含むアイデンティティ管理サービスの実行を求める要求を受信する受信モジュールを含み、前記要求に応答することは複数のタスクを含み、前記モジュールは、
    マイクロサービスに固有のアプリケーションプログラミングインターフェイス(API)を介し前記アイデンティティ管理サービスに基づいて前記マイクロサービスにアクセスするアクセスモジュールと、
    前記アイデンティティ管理サービスを完了するために実行する必要がある前記複数のタスクのうちの1つ以上のリアルタイムタスクと前記複数のタスクのうちの1つ以上のニア・リアルタイムタスクとを判断する判断モジュールと、
    前記マイクロサービスにより、前記1つ以上のリアルタイムタスクを同期的に実行してユーザに前記ログインサービスを開始させる同期実行モジュールと、
    前記ユーザが前記ログインサービスを開始した後に、非同期的に実行する前記1つ以上のニア・リアルタイムタスクをキューに送信する送信モジュールとを備え、
    前記マイクロサービスはデータベースに格納されているテナントデータに基づいて前記アイデンティティ管理サービスを実行し、前記データベースおよび前記マイクロサービスは互いに独立してスケーリングするように構成される、システム。
  11. 請求項1〜9のいずれか1項に記載の方法をプロセッサに実行させるためのコンピュータ読取可能プログラム。
JP2018064072A 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス Active JP6491381B2 (ja)

Applications Claiming Priority (22)

Application Number Priority Date Filing Date Title
US201662334645P 2016-05-11 2016-05-11
US62/334,645 2016-05-11
US201662371336P 2016-08-05 2016-08-05
US62/371,336 2016-08-05
US201662376069P 2016-08-17 2016-08-17
US62/376,069 2016-08-17
US201662395501P 2016-09-16 2016-09-16
US201662395479P 2016-09-16 2016-09-16
US201662395463P 2016-09-16 2016-09-16
US62/395,479 2016-09-16
US62/395,463 2016-09-16
US62/395,501 2016-09-16
US201662434501P 2016-12-15 2016-12-15
US62/434,501 2016-12-15
US15/450,550 US9838377B1 (en) 2016-05-11 2017-03-06 Task segregation in a multi-tenant identity and data security management cloud service
US15/450,512 2017-03-06
US15/450,550 2017-03-06
US15/450,512 US9838376B1 (en) 2016-05-11 2017-03-06 Microservices based multi-tenant identity and data security management cloud service
US15/469,718 US10341410B2 (en) 2016-05-11 2017-03-27 Security tokens for a multi-tenant identity and data security management cloud service
US15/469,718 2017-03-27
US15/485,532 2017-04-12
US15/485,532 US9781122B1 (en) 2016-05-11 2017-04-12 Multi-tenant identity and data security management cloud service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018512197A Division JP6491796B2 (ja) 2016-05-11 2017-05-09 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス

Publications (2)

Publication Number Publication Date
JP2018142333A JP2018142333A (ja) 2018-09-13
JP6491381B2 true JP6491381B2 (ja) 2019-03-27

Family

ID=61387621

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2018512197A Active JP6491796B2 (ja) 2016-05-11 2017-05-09 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP2018064070A Active JP6917331B2 (ja) 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP2018064071A Active JP6491774B2 (ja) 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP2018064072A Active JP6491381B2 (ja) 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2018512197A Active JP6491796B2 (ja) 2016-05-11 2017-05-09 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP2018064070A Active JP6917331B2 (ja) 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP2018064071A Active JP6491774B2 (ja) 2016-05-11 2018-03-29 マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス

Country Status (4)

Country Link
EP (4) EP3311548B1 (ja)
JP (4) JP6491796B2 (ja)
KR (4) KR102041941B1 (ja)
CN (4) CN108322472B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11785082B2 (en) 2021-09-30 2023-10-10 Oracle International Corporation Domain replication across regions

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
CN108416679B (zh) * 2017-06-07 2022-02-08 平安科技(深圳)有限公司 多保险产品出单的装置、方法及计算机可读存储介质
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
JP7391862B2 (ja) 2017-12-08 2023-12-05 ネット-サンダー,エル・エル・シー 自動的に配備される情報技術(it)システム及び方法
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10931656B2 (en) * 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11165634B2 (en) * 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11258775B2 (en) * 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
KR102164040B1 (ko) * 2018-04-16 2020-10-12 (주) 영림원소프트랩 클라우드 기반 전사적 자원 관리 시스템과 외부 시스템 간의 양방향 연동을 위한 마이크로 서비스 아키텍처 기반 open api 허브 시스템
KR102093145B1 (ko) * 2018-06-07 2020-03-25 한밭대학교 산학협력단 생체정보 인식 기반의 데이터 최적화를 위한 오브젝트 스토리지 클라우드 시스템
CN110647575B (zh) * 2018-06-08 2022-03-11 成都信息工程大学 基于分布式的异构处理框架构建方法及系统
US20210342907A1 (en) * 2018-06-15 2021-11-04 Paypal, Inc. Multi-Tenant Dispute Services
US11030329B2 (en) * 2018-06-15 2021-06-08 Paypal, Inc. Unified identity services for multi-tenant architectures
US11012444B2 (en) * 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US10635825B2 (en) * 2018-07-11 2020-04-28 International Business Machines Corporation Data privacy awareness in workload provisioning
CN109033805B (zh) * 2018-09-30 2023-05-19 山东电工电气集团新能科技有限公司 带微服务授权认证功能的智能配电终端及授权认证方法
EP3864795A4 (en) * 2018-10-10 2022-05-11 Alibaba Group Holding Limited AUTHENTICATION AND AUTHORIZATION FOR A CLOUD FILE SYSTEM
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
CN109495559B (zh) * 2018-11-06 2022-02-22 用友网络科技股份有限公司 微服务客户端的服务注册及调用方法、注册及调用系统
WO2020104839A1 (en) * 2018-11-23 2020-05-28 Pratik Sharma Data triggers in microservices architecture
CN109344206B (zh) * 2018-12-03 2021-07-16 天津电气科学研究院有限公司 一种基于查询推理的olap元数据冲突的自动修复方法
US11057434B2 (en) * 2018-12-05 2021-07-06 International Business Machines Corporation High performance access control
CN109714319A (zh) * 2018-12-06 2019-05-03 深圳市中农网有限公司 微服务的管理系统、方法、装置、计算机设备及存储介质
US10963324B2 (en) * 2018-12-12 2021-03-30 Citrix Systems, Inc. Predictive microservice systems and methods
WO2020140126A1 (en) * 2018-12-28 2020-07-02 Paypal, Inc. Multi-tenant dispute services
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
KR102027749B1 (ko) * 2019-02-08 2019-10-02 아콘소프트 주식회사 마이크로서비스 시스템 및 방법
KR102050188B1 (ko) * 2019-02-08 2019-11-28 아콘소프트 주식회사 마이크로서비스 시스템 및 방법
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US10796276B1 (en) * 2019-04-11 2020-10-06 Caastle, Inc. Systems and methods for electronic platform for transactions of wearable items
US20220222363A1 (en) * 2019-05-09 2022-07-14 Schlumberger Technology Corporation Client isolation with native cloud features
JP2022536706A (ja) * 2019-06-11 2022-08-18 ネット-サンダー,エル・エル・シー セキュリティが強化された自動的に配備される情報技術(it)システム及び方法
US10764244B1 (en) * 2019-06-12 2020-09-01 Cisco Technology, Inc. Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
US11516254B2 (en) * 2019-06-20 2022-11-29 Juniper Networks, Inc. Controlling access to microservices within a multi-tenancy framework
CN110535851A (zh) * 2019-08-27 2019-12-03 浪潮云信息技术有限公司 一种基于oauth2协议的用户认证系统
US11748206B2 (en) * 2019-08-28 2023-09-05 International Business Machines Corporation Data recovery modification based on performance data exhibited by a network of data centers and data recovery requirement
US11687378B2 (en) * 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
CN110581897A (zh) * 2019-09-30 2019-12-17 山东浪潮通软信息科技有限公司 一种单向网络环境下实现两个系统之间数据交互的方法
JP7426636B2 (ja) * 2019-10-26 2024-02-02 ミミック・テクノロジー・インコーポレイテッド 分散型エッジクラウドコンピューティングのための方法およびシステム
US10628244B1 (en) * 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
KR102432807B1 (ko) * 2019-11-18 2022-08-16 한국전자통신연구원 마이크로서비스 구조 재구성 방법 및 장치
CN111008015B (zh) * 2019-11-22 2023-07-04 广联达科技股份有限公司 一种基于前端技术实现的微前端应用框架
US11507627B2 (en) * 2019-12-19 2022-11-22 Sap Se Analytics content network for content delivery embedding
CN113127821A (zh) * 2019-12-31 2021-07-16 远景智能国际私人投资有限公司 身份验证方法、装置、电子设备及存储介质
CN111241504B (zh) * 2020-01-16 2024-01-05 远景智能国际私人投资有限公司 身份验证方法、装置、电子设备及存储介质
US11501010B2 (en) * 2020-05-20 2022-11-15 Snowflake Inc. Application-provisioning framework for database platforms
CN111610987B (zh) * 2020-05-25 2021-11-05 北京邮电大学 一种基于微服务的数据处理系统和方法
CN111741079A (zh) * 2020-06-01 2020-10-02 广西电网有限责任公司电力科学研究院 一种基于微服务架构的接口处理方法及系统
CN111694857B (zh) * 2020-06-12 2023-11-07 北京百度网讯科技有限公司 存储资源数据的方法、装置、电子设备及计算机可读介质
CN111831874B (zh) * 2020-07-16 2022-08-19 深圳赛安特技术服务有限公司 网页数据信息获取方法、装置、计算机设备及存储介质
CN111953562B (zh) * 2020-07-29 2022-05-24 新华三信息安全技术有限公司 一种设备状态监控方法及装置
US11470159B2 (en) 2020-08-28 2022-10-11 Cisco Technology, Inc. API key security posture scoring for microservices to determine microservice security risks
CN112087520B (zh) * 2020-09-14 2023-08-22 深圳市欣视景科技股份有限公司 数据处理方法、装置、设备及计算机可读存储介质
CN112149079A (zh) * 2020-10-22 2020-12-29 国网冀北电力有限公司经济技术研究院 基于微服务架构的规划评审管理平台及用户访问授权方法
CN112699411B (zh) * 2021-01-04 2024-04-09 北京金山云网络技术有限公司 操作审计信息的存储方法、装置和计算机可读存储介质
CN112769947A (zh) * 2021-01-20 2021-05-07 浪潮云信息技术股份公司 一种基于租户侧容器集群管理微服务引擎实例的方法
US11757645B2 (en) * 2021-01-26 2023-09-12 Sap Se Single-use authorization codes in self-contained format
CN113014847B (zh) * 2021-01-27 2023-06-06 广州佰锐网络科技有限公司 一种基于混合云架构实现音视频通信的方法及系统
CN113254146A (zh) * 2021-04-25 2021-08-13 西安电子科技大学 云平台服务信任值计算、任务调度与负载均衡系统、方法
CN113296798B (zh) * 2021-05-31 2022-04-15 腾讯科技(深圳)有限公司 一种服务部署方法、装置及可读存储介质
CN113542238B (zh) * 2021-06-29 2023-06-16 上海派拉软件股份有限公司 一种基于零信任的风险判定方法及系统
CN113467891B (zh) * 2021-07-12 2022-03-15 腾讯科技(深圳)有限公司 服务处理方法、装置及存储介质
KR102606911B1 (ko) * 2021-09-13 2023-11-29 주식회사 위버스컴퍼니 Api 서버로 인입되는 트래픽을 조절하는 방법 및 시스템
CN116028938A (zh) * 2021-10-27 2023-04-28 中移(苏州)软件技术有限公司 提供安全服务的方法及装置、电子设备及计算机存储介质
CN114024751B (zh) * 2021-11-05 2023-05-23 抖音视界有限公司 一种应用访问控制方法、装置、计算机设备及存储介质
US11528279B1 (en) 2021-11-12 2022-12-13 Netskope, Inc. Automatic user directory synchronization and troubleshooting
CN114124571A (zh) * 2021-12-09 2022-03-01 上海甄云信息科技有限公司 一种多路对接的单点登录方法及系统
CN114338682A (zh) * 2021-12-24 2022-04-12 北京字节跳动网络技术有限公司 流量身份标识传递方法、装置、电子设备及存储介质
CN114499977B (zh) * 2021-12-28 2023-08-08 天翼云科技有限公司 一种认证方法及装置
WO2023141506A1 (en) * 2022-01-19 2023-07-27 Commscope Technologies Llc System and method of cloud based congestion control for virtualized base station
CN114721845A (zh) * 2022-04-14 2022-07-08 广州有信科技有限公司 一种多租户RestfulAPI接口管理方法及装置
WO2023219773A1 (en) * 2022-05-09 2023-11-16 Oracle International Corporation Remote cloud function invocation service
US20240045980A1 (en) * 2022-08-04 2024-02-08 Getac Technology Corporation Maintaining data security in a multi-tenant microservice environment
US11985058B2 (en) 2022-08-04 2024-05-14 Getac Technology Corporation Interservice communication optimization for microservices
KR102640624B1 (ko) * 2023-05-26 2024-02-23 박만성 자금세탁방지(AML) 서비스를 제공하기 위한 클라우드 기반 SaaS형 자금세탁방지 시스템
CN117176379B (zh) * 2023-06-25 2024-02-09 广东电网有限责任公司佛山供电局 一种基于微服务架构的非结构化数据共享方法及装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302534A (ja) * 2003-03-28 2004-10-28 Nri & Ncc Co Ltd WebサービスシステムとWebサービスシステムのデータ送信処理方法
US20070112574A1 (en) * 2003-08-05 2007-05-17 Greene William S System and method for use of mobile policy agents and local services, within a geographically distributed service grid, to provide greater security via local intelligence and life-cycle management for RFlD tagged items
JP2008027043A (ja) * 2006-07-19 2008-02-07 Gaiax Co Ltd ウェブサイト管理システム、ウェブサイト管理方法、ウェブサイト管理プログラムおよび該プログラムを記録した記録媒体
JP5176301B2 (ja) * 2006-09-25 2013-04-03 大日本印刷株式会社 Webアプリケーション接続管理システム、Webサーバ、Webアプリケーション接続管理方法、プログラム、及び記録媒体
KR101094051B1 (ko) * 2007-08-23 2011-12-19 후지쯔 가부시끼가이샤 생체 인증 시스템 및 컴퓨터 판독 가능한 기록 매체
CN101399813B (zh) * 2007-09-24 2011-08-17 中国移动通信集团公司 身份联合方法
US8417723B1 (en) 2008-09-12 2013-04-09 Salesforce.Com, Inc. System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token
US8271536B2 (en) 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
JP5085605B2 (ja) * 2009-05-08 2012-11-28 ヤフー株式会社 ログインを管理するサーバ、方法、およびプログラム
US8392969B1 (en) 2009-06-17 2013-03-05 Intuit Inc. Method and apparatus for hosting multiple tenants in the same database securely and with a variety of access modes
JP2011141785A (ja) * 2010-01-08 2011-07-21 Girunetto Kk 携帯端末を用いた会員登録システム及び認証システム
WO2011159842A2 (en) * 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
JP2012234354A (ja) * 2011-04-28 2012-11-29 Nippon Telegr & Teleph Corp <Ntt> データベース増設方法、及びデータベース減設方法
JP5930847B2 (ja) 2011-06-29 2016-06-08 キヤノン株式会社 サーバーシステムおよび制御方法およびプログラム
JP5744656B2 (ja) * 2011-07-15 2015-07-08 キヤノン株式会社 シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム
US9578014B2 (en) 2011-09-29 2017-02-21 Oracle International Corporation Service profile-specific token attributes and resource server token attribute overriding
WO2013071087A1 (en) * 2011-11-09 2013-05-16 Unisys Corporation Single sign on for cloud
US9087322B1 (en) 2011-12-22 2015-07-21 Emc Corporation Adapting service provider products for multi-tenancy using tenant-specific service composition functions
JP5773910B2 (ja) * 2012-02-29 2015-09-02 三菱電機株式会社 アクセス制御装置及びアクセス制御方法及びプログラム
US9148429B2 (en) 2012-04-23 2015-09-29 Google Inc. Controlling access by web applications to resources on servers
US9621435B2 (en) * 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9535863B2 (en) * 2012-09-07 2017-01-03 Oracle International Corporation System and method for supporting message pre-processing in a distributed data grid cluster
US9369456B2 (en) * 2012-09-21 2016-06-14 Intuit Inc. Single sign-on in multi-tenant environments
US9542546B2 (en) 2012-09-28 2017-01-10 Volusion, Inc. System and method for implicitly resolving query scope in a multi-client and multi-tenant datastore
CN103780635B (zh) * 2012-10-17 2017-08-18 百度在线网络技术(北京)有限公司 云环境中的分布式异步任务队列执行系统和方法
EP2765529B1 (en) 2013-02-12 2021-11-17 Canon Europa N.V. A method of authenticating a user of a peripheral apparatus, a peripheral apparatus, and a system for authenticating a user of a peripheral apparatus
US9251178B2 (en) * 2013-04-26 2016-02-02 Oracle International Corporation System and method for connection labeling for use with connection pools
US9411973B2 (en) 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
JP6245949B2 (ja) 2013-11-11 2017-12-13 キヤノン株式会社 認可サーバーシステム、その制御方法、およびそのプログラム。
EP3097486A4 (en) 2014-01-20 2018-04-04 Hewlett-Packard Development Company, L.P. Determining a permission of a first tenant with respect to a second tenant
JP2016009299A (ja) * 2014-06-24 2016-01-18 キヤノン株式会社 シングルサインオンシステム、端末装置、制御方法およびコンピュータプログラム
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
WO2016065080A1 (en) * 2014-10-21 2016-04-28 Twilio, Inc. System and method for providing a miro-services communication platform
JP2016085641A (ja) 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US10129078B2 (en) 2014-10-30 2018-11-13 Equinix, Inc. Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange
CN105515759B (zh) * 2015-11-27 2018-11-09 国网信息通信产业集团有限公司 一种微服务注册方法及系统
CN105577665B (zh) * 2015-12-24 2019-06-18 西安电子科技大学 一种云环境下的身份和访问控制管理系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11785082B2 (en) 2021-09-30 2023-10-10 Oracle International Corporation Domain replication across regions

Also Published As

Publication number Publication date
CN108322472B (zh) 2019-06-25
KR20180029073A (ko) 2018-03-19
EP3311548B1 (en) 2019-04-10
CN108322471A (zh) 2018-07-24
JP2018156658A (ja) 2018-10-04
EP3361702B1 (en) 2019-10-23
KR102041941B1 (ko) 2019-11-07
CN108337260B (zh) 2019-04-23
KR20180028520A (ko) 2018-03-16
EP3361700B1 (en) 2021-08-04
CN108322472A (zh) 2018-07-24
KR101874384B1 (ko) 2018-07-04
CN107852417A (zh) 2018-03-27
EP3361702A1 (en) 2018-08-15
CN108337260A (zh) 2018-07-27
JP2018142333A (ja) 2018-09-13
EP3361701A1 (en) 2018-08-15
JP2018534653A (ja) 2018-11-22
CN108322471B (zh) 2019-04-23
KR20180016731A (ko) 2018-02-19
EP3311548A1 (en) 2018-04-25
EP3361701B1 (en) 2021-09-01
KR101873941B1 (ko) 2018-07-03
JP2018142332A (ja) 2018-09-13
EP3361700A1 (en) 2018-08-15
JP6491774B2 (ja) 2019-03-27
KR101871902B1 (ko) 2018-06-27
JP6917331B2 (ja) 2021-08-11
KR20180027597A (ko) 2018-03-14
CN107852417B (zh) 2021-04-20
JP6491796B2 (ja) 2019-03-27

Similar Documents

Publication Publication Date Title
JP6491381B2 (ja) マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP7304449B2 (ja) マルチテナントアイデンティティクラウドサービスのためのデータ管理
JP7281483B2 (ja) マルチテナントアイデンティティクラウドサービスのための宣言型第三者アイデンティティプロバイダの統合
JP7202317B2 (ja) マルチテナントアイデンティティクラウドサービスのためのローカル書込
JP7018437B2 (ja) マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービスのためのテナントおよびサービス管理
US10715564B2 (en) Dynamic client registration for an identity cloud service
US10693861B2 (en) Task segregation in a multi-tenant identity and data security management cloud service
US9838376B1 (en) Microservices based multi-tenant identity and data security management cloud service
JP2019164794A (ja) マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービスのためのシングルサインオンおよびシングルログアウト機能
JP2021516800A (ja) マルチテナントアイデンティティクラウドサービスのための地域間信頼
JP2021517672A (ja) マルチテナントアイデンティティクラウドサービスのためのテナントデータ比較
JP2021517674A (ja) マルチテナントアイデンティクラウドサービスのデータレプリケーション競合の検出および解決
JP2022547359A (ja) オンプレミス認証が統合されたマルチテナントアイデンティティクラウドサービス
WO2017196774A1 (en) Multi-tenant identity and data security management cloud service
JP2022547360A (ja) オンプレミス認証が統合されたブリッジ可用性が高いマルチテナントアイデンティティクラウドサービス

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190228

R150 Certificate of patent or registration of utility model

Ref document number: 6491381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250