IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-505418トークンベース認証システムにおけるスコープの制限
<>
  • 特表-トークンベース認証システムにおけるスコープの制限 図1
  • 特表-トークンベース認証システムにおけるスコープの制限 図2
  • 特表-トークンベース認証システムにおけるスコープの制限 図3
  • 特表-トークンベース認証システムにおけるスコープの制限 図4
  • 特表-トークンベース認証システムにおけるスコープの制限 図5
  • 特表-トークンベース認証システムにおけるスコープの制限 図6
  • 特表-トークンベース認証システムにおけるスコープの制限 図7
  • 特表-トークンベース認証システムにおけるスコープの制限 図8
  • 特表-トークンベース認証システムにおけるスコープの制限 図9
  • 特表-トークンベース認証システムにおけるスコープの制限 図10
  • 特表-トークンベース認証システムにおけるスコープの制限 図11
  • 特表-トークンベース認証システムにおけるスコープの制限 図12
  • 特表-トークンベース認証システムにおけるスコープの制限 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-06
(54)【発明の名称】トークンベース認証システムにおけるスコープの制限
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240130BHJP
   G06F 21/33 20130101ALI20240130BHJP
【FI】
G06F21/62
G06F21/33
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023542735
(86)(22)【出願日】2022-01-10
(85)【翻訳文提出日】2023-07-13
(86)【国際出願番号】 EP2022050344
(87)【国際公開番号】W WO2022157024
(87)【国際公開日】2022-07-28
(31)【優先権主張番号】17/152,963
(32)【優先日】2021-01-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】スモルニー、マーティン
(72)【発明者】
【氏名】デュール、トーマス
(72)【発明者】
【氏名】ベック、マイケル
(57)【要約】
アクセストークンのスコープの制限が提供される。スコープのリストを含むクライアントのアクセストークンが、コンピュータの認証アプリケーションプログラミングインターフェースに提示される。スコープのリスト内の各スコープはリソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する。スコープのリストのスコープ数の減少をリクエストする認証アプリケーションプログラミングインターフェースに応答して、スコープエイリアスを使用してスコープ数を減少させた新しいアクセストークンがクライアントに返される。スコープエイリアスは、提示されたアクセストークンに含まれるスコープのリストから複数の指定されたスコープを表す。
【選択図】図1
【特許請求の範囲】
【請求項1】
アクセストークンのスコープの制限のためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
コンピュータによって、スコープのリストを含むクライアントのアクセストークンを前記コンピュータの認証アプリケーションプログラミングインターフェースに提示することであって、前記スコープのリスト内の各スコープはリソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する、提示することと、
前記コンピュータによって、前記スコープのリストのスコープ数の減少をリクエストする前記認証アプリケーションプログラミングインターフェースに応答して、スコープエイリアスを使用してスコープ数の減少を含む新しいアクセストークンを前記クライアントに返すことであって、前記スコープエイリアスは、前記提示されたアクセストークンに含まれる前記スコープのリストから複数の指定されたスコープを表す、返すことと、を含むコンピュータ実装方法。
【請求項2】
前記コンピュータによって、前記クライアントからネットワークを介して、認証コードとクライアント識別子とを有するアクセストークンのリクエストを受信することと、
前記コンピュータによって、前記アクセストークンのリクエストの分析に基づいて、前記アクセストークンのリクエストにスコープが指定されているか否かを判定することと、
前記コンピュータが前記分析に基づいて前記アクセストークンのリクエストにスコープが指定されていると判定したことに応答して、前記コンピュータによって、指定されたスコープのセットを形成するために、前記アクセストークンのリクエストに指定されているスコープのセットを特定することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記コンピュータによって、拡張された指定されたスコープのセットを形成するために、前記指定されたスコープのセットに含まれる各スコープエイリアスを拡張することと、
前記コンピュータによって、拡張された認証されたスコープのセットを形成するために、ストレージから取得した前記クライアント識別子に対応する認証されたスコープに含まれるすべてのスコープエイリアスを拡張することと、をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記コンピュータによって、前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間のインターセクションを生成することと、
前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間の前記インターセクションに基づいて、前記クライアントによる前記アクセストークンのリクエストに対応する有効なスコープの数を前記コンピュータによって特定することと、をさらに含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記コンピュータによって、予め定義されたスコープエイリアスの数を使用して、前記アクセストークンのリクエストに対応する前記有効なスコープの数を減少させることであって、前記予め定義されたスコープエイリアスの数のそれぞれは、2つ以上のクライアント指定の個別スコープの集合を表す、減少させることと、
前記コンピュータによって、前記予め定義されたスコープエイリアスの数と、前記予め定義されたスコープエイリアスの数の少なくとも1つに含まれない前記アクセストークンのリクエストに対応する残りの有効なスコープとを使用して、前記クライアントの前記アクセストークンを生成することと、
前記コンピュータによって、前記ネットワークを介して前記クライアントに前記アクセストークンを送信することと、をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記コンピュータによって、リソースサーバがホストする保護されたリソースへのアクセスを許可するリクエストを、1つ以上のスコープを含む前記クライアントの前記アクセストークンとともに前記リソースサーバから前記ネットワークを介して受信することと、
前記コンピュータによって、拡張されたアクセストークンのスコープのセットを形成するために、前記アクセストークンの前記1つ以上のスコープに含まれる各スコープエイリアスを拡張することと、
前記拡張されたアクセストークンのスコープのセットが、前記保護されたリソースへのアクセスを許可するスコープを含むか否かを、前記コンピュータによって判定することと、をさらに含む、請求項1から5のいずれか1つに記載のコンピュータ実装方法。
【請求項7】
前記拡張されたアクセストークンのスコープのセットが前記保護されたリソースへのアクセスを許可するスコープを含まないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが拒否される旨の指示を前記リソースサーバに送信することをさらに含む請求項6に記載のコンピュータ実装方法。
【請求項8】
前記拡張されたアクセストークンのスコープのセットが前記保護されたリソースへのアクセスを許可するスコープを含むと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースサーバによってホストされる前記保護されたリソースに対応する認証ポリシーのセットを取得することと、
前記コンピュータによって、前記認証ポリシーのセットが、前記クライアントによる前記保護されたリソースへのアクセスを許可するか否かを判定することと、をさらに含む請求項6または7に記載のコンピュータ実装方法。
【請求項9】
前記認証ポリシーのセットが前記クライアントによる前記保護されたリソースへのアクセスを許可しないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが拒否される旨の拒否指示を前記リソースサーバに送信することと、
前記認証ポリシーのセットが前記クライアントによる前記保護されたリソースへのアクセスを許可すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが許可される旨の許可指示を前記リソースサーバに送信することと、をさらに含む、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記コンピュータによって、前記クライアントの既存のアクセストークンに対応するスコープのリストを含むリフレッシュトークンを、制限されたスコープのセットを指定する新しいアクセストークンのリクエストとともに、ネットワークを介して前記クライアントから受信することであって、前記制限されたスコープのセットは、前記クライアントがアクセスしたい保護されたリソースの指定セットに固有である、受信することと、
前記コンピュータによって、拡張されたリフレッシュトークンスコープのセットを形成するために、リフレッシュトークンの前記スコープのリストに含まれる各スコープエイリアスを拡張することと、
前記コンピュータによって、拡張された指定されたスコープのセットを形成するために、前記新しいアクセストークンの前記リクエストで指定された前記制限されたスコープのセットに含まれる各スコープエイリアスを拡張することと、をさらに含む、請求項1から9のいずれか1つに記載のコンピュータ実装方法。
【請求項11】
前記コンピュータによって、前記拡張されたリフレッシュトークンスコープのセットと前記拡張された指定されたスコープのセットとの間のインターセクションを生成することと、
前記拡張されたリフレッシュトークンスコープのセットと前記拡張された指定されたスコープのセットとの間の前記インターセクションに基づいて、前記新しいアクセストークンのリクエストに対応する有効なスコープの数を前記コンピュータによって特定することと、をさらに含む請求項10に記載のコンピュータ実装方法。
【請求項12】
前記コンピュータによって、1つ以上の予め定義されたスコープエイリアスを使用して、前記新しいアクセストークンの前記リクエストに対応する前記有効なスコープの数を減少させることであって、前記1つ以上の予め定義されたスコープエイリアスのそれぞれは、2つ以上のクライアント指定の個別スコープの集合を表す、減少させることと、
前記コンピュータによって、前記1つ以上の予め定義されたスコープエイリアスと、前記1つ以上の予め定義されたスコープエイリアスに含まれない前記新しいアクセストークンの前記リクエストに対応する残りの有効なスコープとを使用して、前記クライアントの前記新しいアクセストークンを生成することと、
前記コンピュータによって、前記新しいアクセストークンを、前記ネットワークを介して前記クライアントに送信することと、をさらに含む請求項11に記載のコンピュータ実装方法。
【請求項13】
アクセストークンのスコープの制限のためのコンピュータシステムであって、前記コンピュータシステムは、
バスシステムと、
前記バスシステムに接続された記憶装置であって、前記記憶装置はプログラム命令を記憶する、記憶装置と、
前記バスシステムに接続されたプロセッサであって、前記プロセッサは、
スコープのリストを含むクライアントのアクセストークンを認証アプリケーションプログラミングインターフェースに提示することであって、前記スコープのリスト内の各スコープはリソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する、提示することと、
前記スコープのリストのスコープ数の減少をリクエストする前記認証アプリケーションプログラミングインターフェースに応答して、スコープエイリアスを使用してスコープ数の減少を含む新しいアクセストークンを前記クライアントに返すことであって、前記スコープエイリアスは、前記提示されたアクセストークンに含まれる前記スコープのリストから複数の指定されたスコープを表す、返すことと、を行う前記プログラム命令を実行する、プロセッサと、を含むコンピュータシステム。
【請求項14】
前記プロセッサは、
前記クライアントからネットワークを介して、認証コードとクライアント識別子とを有するアクセストークンのリクエストを受信することと、
前記アクセストークンのリクエストの分析に基づいて、前記アクセストークンのリクエストにスコープが指定されているか否かを判定することと、
前記分析に基づいて前記アクセストークンのリクエストにスコープが指定されていると判定したことに応答して、指定されたスコープのセットを形成するために、前記アクセストークンのリクエストに指定されているスコープのセットを特定することと、を行う前記プログラム命令をさらに実行する、請求項13に記載のコンピュータシステム。
【請求項15】
前記プロセッサは、
拡張された指定されたスコープのセットを形成するために、前記指定されたスコープのセットに含まれる各スコープエイリアスを拡張することと、
拡張された認証されたスコープのセットを形成するために、ストレージから取得した前記クライアント識別子に対応する認証されたスコープに含まれるすべてのスコープエイリアスを拡張することと、を行う前記プログラム命令をさらに実行する、請求項14に記載のコンピュータシステム。
【請求項16】
前記プロセッサは、
前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間のインターセクションを生成することと、
前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間の前記インターセクションに基づいて、前記クライアントによる前記アクセストークンのリクエストに対応する有効なスコープの数を特定することと、
予め定義されたスコープエイリアスの数を使用して、前記アクセストークンのリクエストに対応する前記有効なスコープの数を減少させることであって、前記予め定義されたスコープエイリアスの数のそれぞれは、2つ以上のクライアント指定の個別スコープの集合を表す、減少させることと、
前記予め定義されたスコープエイリアスの数と、前記予め定義されたスコープエイリアスの数の少なくとも1つに含まれない前記アクセストークンのリクエストに対応する残りの有効なスコープとを使用して、前記クライアントの前記アクセストークンを生成することと、
前記ネットワークを介して前記クライアントに前記アクセストークンを送信することと、を行う前記プログラム命令をさらに実行する、請求項15に記載のコンピュータシステム。
【請求項17】
アクセストークンのスコープの制限のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、前記プログラム命令は、コンピュータによって実行可能であり、前記コンピュータに、
前記コンピュータによって、スコープのリストを含むクライアントのアクセストークンを前記コンピュータの認証アプリケーションプログラミングインターフェースに提示することであって、前記スコープのリスト内の各スコープはリソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する、提示することと、
前記コンピュータによって、前記スコープのリストのスコープ数の減少をリクエストする前記認証アプリケーションプログラミングインターフェースに応答して、スコープエイリアスを使用してスコープ数の減少を含む新しいアクセストークンを前記クライアントに返すことであって、前記スコープエイリアスは、前記提示されたアクセストークンに含まれる前記スコープのリストから複数の指定されたスコープを表す、返すことと、の方法を実行させる、コンピュータプログラム製品。
【請求項18】
前記コンピュータによって、前記クライアントからネットワークを介して、認証コードとクライアント識別子とを有するアクセストークンのリクエストを受信することと、
前記コンピュータによって、前記アクセストークンのリクエストの分析に基づいて、前記アクセストークンのリクエストにスコープが指定されているか否かを判定することと、
前記コンピュータが前記分析に基づいて前記アクセストークンのリクエストにスコープが指定されていると判定したことに応答して、前記コンピュータによって、指定されたスコープのセットを形成するために、前記アクセストークンのリクエストに指定されているスコープのセットを特定することと、をさらに含む、請求項17に記載のコンピュータプログラム製品。
【請求項19】
前記コンピュータによって、拡張された指定されたスコープのセットを形成するために、前記指定されたスコープのセットに含まれる各スコープエイリアスを拡張することと、
前記コンピュータによって、拡張された認証されたスコープのセットを形成するために、ストレージから取得した前記クライアント識別子に対応する認証されたスコープに含まれるすべてのスコープエイリアスを拡張することと、をさらに含む請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記コンピュータによって、前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間のインターセクションを生成することと、
前記拡張された指定されたスコープのセットと前記拡張された認証されたスコープのセットとの間の前記インターセクションに基づいて、前記クライアントによる前記アクセストークンのリクエストに対応する有効なスコープの数を前記コンピュータによって特定することと、をさらに含む、請求項19に記載のコンピュータプログラム製品。
【請求項21】
前記コンピュータによって、予め定義されたスコープエイリアスの数を使用して、前記アクセストークンのリクエストに対応する前記有効なスコープの数を減少させることであって、前記予め定義されたスコープエイリアスの数のそれぞれは、2つ以上のクライアント指定の個別スコープの集合を表す、減少させることと、
前記コンピュータによって、前記予め定義されたスコープエイリアスの数と、前記予め定義されたスコープエイリアスの数の少なくとも1つに含まれない前記アクセストークンのリクエストに対応する残りの有効なスコープとを使用して、前記クライアントの前記アクセストークンを生成することと、
前記コンピュータによって、前記ネットワークを介して前記クライアントに前記アクセストークンを送信することと、をさらに含む、請求項17から20のいずれか1つに記載のコンピュータプログラム製品。
【請求項22】
前記コンピュータによって、リソースサーバがホストする保護されたリソースへのアクセスを許可するリクエストを、1つ以上のスコープを含む前記クライアントの前記アクセストークンとともに前記リソースサーバから前記ネットワークを介して受信することと、
前記コンピュータによって、拡張されたアクセストークンのスコープのセットを形成するために、前記アクセストークンの前記1つ以上のスコープに含まれる各スコープエイリアスを拡張することと、
前記拡張されたアクセストークンのスコープのセットが、前記保護されたリソースへのアクセスを許可するスコープを含むか否かを、前記コンピュータによって判定することと、をさらに含む、請求項17から21のいずれか1つに記載のコンピュータプログラム製品。
【請求項23】
前記拡張されたアクセストークンのスコープのセットが前記保護されたリソースへのアクセスを許可するスコープを含まないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが拒否される旨の指示を前記リソースサーバに送信することをさらに含む請求項22に記載のコンピュータプログラム製品。
【請求項24】
前記拡張されたアクセストークンのスコープのセットが前記保護されたリソースへのアクセスを許可するスコープを含むと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースサーバによってホストされる前記保護されたリソースに対応する認証ポリシーのセットを取得することと、
前記コンピュータによって、前記認証ポリシーのセットが、前記クライアントによる前記保護されたリソースへのアクセスを許可するか否かを判定することと、をさらに含む請求項23に記載のコンピュータプログラム製品。
【請求項25】
前記認証ポリシーのセットが前記クライアントによる前記保護されたリソースへのアクセスを許可しないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが拒否される旨の拒否指示を前記リソースサーバに送信することと、
前記認証ポリシーのセットが前記クライアントによる前記保護されたリソースへのアクセスを許可すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記クライアントによる前記保護されたリソースへのアクセスが許可される旨の許可指示を前記リソースサーバに送信することと、をさらに含む請求項24に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にアクセス管理に関し、より具体的には、アクセストークンのアクセス許可を同じレベルに維持しながら、アクセストークンベース認証システムにおけるスコープ数を制限することに関する。
【背景技術】
【0002】
アイデンティティおよびアクセス管理(IAM)は、デジタル・アイデンティティの管理を容易にする、処理、ポリシー、および技術のフレームワークである。IAMフレームワークは、例えば、企業、ビジネス、会社、組織、機関、代理店などの実体に対応する保護されたリソース(例えば、データ、文書、ファイル、ソフトウェア、ハードウェア、サービスなど)に対するユーザのアクセスを制御できる。IAMシステムは、オンプレミスに展開することも、クラウドベースのサブスクリプションモデルを通じてサードパーティベンダーから提供することも、ハイブリッドモデルで展開することも可能である。IAMに使用される代表的なシステムには、シングルサインオンシステム、二要素認証、多要素認証、特権アクセス管理、トークンベース認証などがある。
【0003】
トークンベース認証(OAuth2.0など)は、エンドユーザやサービスが自分のアイデンティティを確認し、代わりに一意のアクセストークンを受け取ることができるプロトコルである。アクセストークンの有効期間中(すなわち、定義された期間)、エンドユーザとサービスは、アクセストークンが発行されたクラウドサービスなどの保護されたリソースにアクセスできる。まず、エンドユーザやサービスが保護されたリソースへのアクセスをリクエストする。その際、ユーザ名やパスワードなどの認証情報を使ってログインすることがある。認証サーバは、例えば受信した認証情報とエンドユーザまたはサービスに対応する保存された認証情報との比較などによって、エンドユーザまたはサービスがアクセス権を有するか否かを判定する。認証サーバは、認証情報の認証または検証後、アクセストークンとリフレッシュトークンをエンドユーザまたはサービスに発行する。認証サーバは、私有秘密または公開/秘密鍵のいずれかを使用してアクセストークンに署名する。
【0004】
エンドユーザ又はサービスの特定のクライアントウェブアプリケーションがアプリケーションプログラミングインターフェースを使用して特定の保護されたリソースにアクセスする可能性がある前に、クライアントウェブアプリケーションは、その特定のアプリケーションプログラミングインターフェースへのアクセスを許可するアクセストークンを取得しなければならない。アクセストークンは、ネットワークセッションのエンドユーザ又はサービス識別子を含み、スコープを使用して保護されたリソースのアクセス権限を識別する。スコープは、クライアントウェブアプリケーションにアクセス許可を与えるリソースアクセス権限のスペース区切りのリストである。言い換えると、スコープは、アクセストークンが許可するアクセス及び許可しないアクセスの種類を決定する。例えば、クライアントウェブアプリケーションが、正しいスコープ(すなわち、正しい許可)を持たないアクセストークンで保護されたリソースに対するアプリケーションプログラミングインターフェースのリクエストを行おうとした場合、アプリケーションプログラミングインターフェースは保護されたリソースアクセスのリクエストを拒否する。クライアントウェブアプリケーションは、アクセストークンを取得した後、保護されたリソースに対応するアプリケーションプログラミングインターフェースにアクセストークンを送信する。アクセストークンは、アクセストークンのスコープフィールドに記述された操作のセットと保護されたリソースに対してのみ有効である。例えば、アクセストークンがカレンダーアプリケーションプログラミングインターフェースに対して発行された場合、アクセストークンはカレンダーアプリケーションプログラミングインターフェースへのアクセスのみを許可し、例えば、連絡先アプリケーションプログラミングインターフェースや他のタイプのアプリケーションプログラミングインターフェースへのアクセスを許可しない。
【0005】
認証サーバのアプリケーションプログラミングインターフェースの定義に追加できるスコープの数に制限はない。例えば、実体は、その保護されたリソースにアクセスするためのスコープを何百、何千と持つことができる。しかし、アクセストークンに含めることができるスコープの数は、認証ヘッダ(例えば、HTTPプロトコル)で使用される場合のアクセストークンのサイズによって制限される場合がある。さらに、ほとんどの認証サーバは、アクセストークンのサイズ制限(例えば、8~20KB)を強制する。その結果、大きなスコープフィールドを持つアクセストークンは、認証サーバによって拒否されることがある。さらに、大きなアクセストークンは、ネットワーク遅延を増加させ、システム性能を低下させる可能性がある。
【発明の概要】
【0006】
例示的な一実施形態によれば、アクセストークンのスコープの制限のためのコンピュータ実装方法が提供される。コンピュータは、スコープのリストを含むクライアントのアクセストークンをコンピュータの認証アプリケーションプログラミングインターフェースに提示する。スコープのリスト内の各スコープは、リソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する。コンピュータは、スコープのリストのスコープ数の減少をリクエストする認証アプリケーションプログラミングインターフェースに応答して、スコープエイリアスを使用してスコープ数の減少を含む新しいアクセストークンをクライアントに返す。スコープエイリアスは、提示されたアクセストークンに含まれるスコープのリストから複数の指定されたスコープを表す。他の例示的な実施形態によれば、アクセストークンのスコープの制限のためのコンピュータシステムおよびコンピュータプログラム製品が提供される。
【0007】
さらに、例示的な実施形態は、クライアントからネットワークを介して認証コードとクライアント識別子とを有するアクセストークンのリクエストを受信し、アクセストークンのリクエストの分析に基づいてアクセストークンのリクエストにスコープが指定されているか否かを判定し、分析に基づいてアクセストークンのリクエストにスコープが指定されていると判定したことに応答して、指定されたスコープのセットを形成するために、アクセストークンのリクエストに指定されているスコープのセットを特定し、拡張された指定されたスコープのセットを形成するために、指定されたスコープのセットに含まれる各スコープエイリアスを拡張し、拡張された認証されたスコープのセットを形成するために、ストレージから取得したクライアント識別子に対応する認証されたスコープに含まれるすべてのスコープエイリアスを拡張し、拡張された指定されたスコープのセットと拡張された認証されたスコープのセットとの間のインターセクションを生成し、拡張された指定されたスコープのセットと拡張された認証されたスコープのセットとの間のインターセクションに基づいて、クライアントによるアクセストークンのリクエストに対応する有効なスコープの数を特定し、予め定義されたスコープエイリアスの数を使用して、アクセストークンのリクエストに対応する有効なスコープの数を減少させ、予め定義されたスコープエイリアスの数のそれぞれは、2つ以上のクライアント指定の個別スコープの集合を表し、予め定義されたスコープエイリアスの数と、予め定義されたスコープエイリアスの数の少なくとも1つに含まれないアクセストークンのリクエストに対応する残りの有効なスコープとを使用して、クライアントのアクセストークンを生成する。
【0008】
さらに、例示的な実施形態は、クライアントの既存のアクセストークンに対応するスコープのリストを含むリフレッシュトークンを、制限されたスコープのセットを指定する新しいアクセストークンのリクエストとともに、ネットワークを介してクライアントから受信し、制限されたスコープのセットは、クライアントがアクセスしたい保護されたリソースの指定セットに固有であり、拡張されたリフレッシュトークンスコープのセットを形成するために、リフレッシュトークンのスコープのリストに含まれる各スコープエイリアスを拡張し、拡張された指定されたスコープのセットを形成するために、新しいアクセストークンのリクエストで指定された制限されたスコープのセットに含まれる各スコープエイリアスを拡張し、拡張されたリフレッシュトークンスコープのセットと拡張された指定されたスコープのセットとの間のインターセクションを生成し、拡張されたリフレッシュトークンスコープのセットと拡張された指定されたスコープのセットとの間のインターセクションに基づいて、新しいアクセストークンのリクエストに対応する有効なスコープの数を特定し、1つ以上の予め定義されたスコープエイリアスを使用して新しいアクセストークンのリクエストに対応する有効なスコープの数を減少させ、1つ以上の予め定義されたスコープエイリアスはそれぞれ2つ以上のクライアント指定の個別スコープの集合を表し、1つ以上の予め定義されたスコープエイリアスと、1つ以上の予め定義されたスコープエイリアスに含まれない新しいアクセストークンのリクエストに対応する残りの有効なスコープとを使用して、クライアントの新しいアクセストークンを生成する。
【0009】
その結果、例示的な実施形態は、スコープエイリアスが表す複数の個別のスコープと同じレベルの保護されたリソースのアクセス許可をアクセストークンに維持しながら、複数のスコープを表すためにスコープエイリアスを使用してアクセストークンのスコープフィールドのサイズを減少させることによって、保護されたリソースアクセス管理の分野における技術的効果および実用性を提供する。例示的な実施形態によって生成されるアクセストークンのサイズが縮小されることにより、ネットワークの応答時間が増加し、保護されたリソースへのアクセスの高速化およびシステム性能の向上が可能となる。
【図面の簡単な説明】
【0010】
図1】例示的な実施形態が実装され得るデータ処理システムのネットワークを示す図である。
図2】例示的な実施形態が実装され得るデータ処理システムを示す図である。
図3】例示的な実施形態が実装され得るクラウドコンピューティング環境を示す図である。
図4】例示的な実施形態によるクラウドコンピューティング環境の抽象化層の一例を示す図である。
図5】例示的な実施形態によるスコープエイリアスの一例を示す図である。
図6】例示的な実施形態による対応するスコープを有するクライアント識別子の一例を示す図である。
図7】例示的な実施形態によるアクセストークンを取得する処理の一例を示す図である。
図8】例示的な実施形態による既存のアクセストークンのスコープを制限する処理の一例を示す図である。
図9】例示的な実施形態による保護されたリソース処理にアクセスする処理の一例を示す図である。
図10】例示的な実施形態によるアクセストークンを生成する処理を示すフローチャートである。
図11】例示的な実施形態による既存のアクセストークンのスコープの数を制限する処理を示すフローチャートである。
図12】例示的な実施形態によるクライアントによって保護されたリソースへのアクセスを判定する処理を示すフローチャートである。
図13】例示的な実施形態によるアクセストークンのサイズを管理する処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または媒体)を含むことができる。
【0012】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0013】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせを介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0014】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で、あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0015】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0016】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他の装置またはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
【0017】
コンピュータ、他のプログラム可能な装置、または他の装置上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他の装置にロードされ、コンピュータ、他のプログラム可能な装置、または他の装置上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
【0018】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0019】
ここで図を参照し、特に図1-4および図7-9を参照すると、例示的な実施形態が実装され得るデータ処理環境の図が提供される。図1-4および7-9は、例として意図されているだけであり、異なる実施形態が実装され得る環境に関して、いかなる限定も主張または暗示することを意図していないことを理解されたい。示された態様に対する多くの変更がなされ得る。
【0020】
図1は、例示的な実施形態が実装され得るデータ処理システムのネットワークの図を示す。ネットワークデータ処理システム100は、例示的な実施形態が実装され得るコンピュータ、データ処理システム、および他の装置のネットワークである。ネットワークデータ処理システム100は、ネットワークデータ処理システム100内でともに接続されたコンピュータ、データ処理システム、および他の装置の間の通信リンクを提供するために使用される媒体であるネットワーク102を含む。ネットワーク102は、例えば、有線通信リンク、無線通信リンク、光ファイバケーブルなどの接続を含み得る。
【0021】
図示された例では、リソースサーバ104、認証サーバ106、および認証ポリシー決定点サーバ108は、ストレージ110とともにネットワーク102に接続する。リソースサーバ104、認証サーバ106、および認証ポリシー決定点サーバ108は、例えば、ネットワーク102への高速接続を有するサーバコンピュータであってよい。また、リソースサーバ104、認証サーバ106、および認証ポリシー決定点サーバ108はそれぞれ、1つまたは複数の実体によって管理される1つまたは複数のクラウド環境における複数のコンピューティングノードを表すことができることに留意されたい。あるいは、リソースサーバ104、認証サーバ106、および認証ポリシー決定点サーバ108はそれぞれ、1つまたは複数のデータセンター内のサーバの1つまたは複数のクラスタを表すことができる。
【0022】
リソースサーバ104は、保護されたリソースのセットをホストする。保護されたリソースのセットは、例えば、データ、文書、ファイル、ソフトウェア、ハードウェア、サービスなどのうちの1つまたは複数を含み得る。リソースサーバ104は、アクセストークンを使用するクライアント装置からの保護されたリソースアクセスのリクエストを受け付け、それに応答することが可能である。アクセストークンは、ネットワークセッションのエンドユーザまたはサービス識別子を含み、スコープを使用して保護されたリソースのアクセス権限を識別する。スコープは、特定の保護されたリソースにアクセスするための、スペース区切りの許可リストである。リソースオーナーは、保護されたリソースへのアクセスを許可することができる実体である。リソースオーナーが個人である場合、その個人はエンドユーザと呼ばれる。
【0023】
認証サーバ106は、クライアント装置に対応するリソースオーナーの認証に成功した後、クライアント装置に対してアクセストークンを発行する。さらに、認証サーバ106は、スコープエイリアスのセットを利用することによって、アクセストークン内のスコープの数を制限し、各スコープエイリアスは、複数の個々のスコープを表す。スコープエイリアスは、そのスコープエイリアスが表す複数の個々のスコープと同じレベルのアクセス許可をアクセストークンに対して維持する。
【0024】
認証ポリシー決定点サーバ108は、すべての認証ポリシーを記憶する。リソースサーバ104がホストされたリソースを保護することをサポートするために、認証ポリシー決定点サーバ108は、リソースサーバ104によってホストされた各保護されたリソースに対応する認証ポリシーを評価し、認証決定を提供する認証アプリケーションプログラミングインターフェースを含む。認証ポリシー決定点サーバ108がこの例では別のサーバコンピュータとして示されているが、代替の例示的実施形態では、認証ポリシー決定点サーバ108は、認証サーバ106に含まれるか、または認証サーバ106と組み合わせられることができることに留意されたい。
【0025】
クライアント112、クライアント114、およびクライアント116もネットワーク102に接続する。クライアント112、114、および116は、リソースサーバ104のクライアントである。この例では、クライアント112、114、および116は、ネットワーク102への有線通信リンクを有するデスクトップまたはパーソナルコンピュータとして示されている。しかし、クライアント112、114、および116は例示に過ぎず、例えば、ネットワーク102への有線または無線通信リンクを有するネットワークコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、スマートフォン、スマートウォッチ、スマートテレビ、スマート車両、スマートグラス、スマート家電、ゲーム装置、キオスクなどの他のタイプのデータ処理システムを表してもよいことに留意されたい。クライアント112、114、および116のユーザは、クライアント112、114、および116にロードされた特定のウェブアプリケーションを利用して、認証サーバ106から受信した適切なスコープを有するアクセストークンを使用してリソースサーバ104がホストする対応する保護されたリソースにアクセスできる。
【0026】
ストレージ110は、構造化フォーマットまたは非構造化フォーマットで任意のタイプのデータを記憶することができるネットワーク記憶装置である。さらに、ストレージ110は、複数のネットワーク記憶装置を表すことができる。さらに、ストレージ110は、複数のリソースサーバの識別子およびネットワークアドレス、複数の異なるクライアント装置の識別子およびネットワークアドレス、複数の異なるユーザの識別子などを記憶してもよい。さらに、ストレージ110は、例えば、異なるユーザに関連するユーザ名、パスワード、およびバイオメトリックデータを含み得る認証またはクレデンシャルデータなどの、他のタイプのデータを記憶してもよい。
【0027】
さらに、ネットワークデータ処理システム100は、任意の数の追加のサーバ、クライアント、記憶装置、および図示しない他の装置を含むことができることに留意されたい。ネットワークデータ処理システム100に位置するプログラムコードは、コンピュータ可読記憶媒体またはコンピュータ可読記憶媒体のセットに格納され、使用のためにコンピュータまたは他のデータ処理装置にダウンロードされる場合がある。例えば、プログラムコードは、リソースサーバ104上のコンピュータ可読記憶媒体に格納され、クライアント112で使用するためにネットワーク102を介してクライアント112にダウンロードされる場合がある。
【0028】
図示された例では、ネットワークデータ処理システム100は、例えば、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電気通信ネットワーク、またはそれらの任意の組み合わせなどの、多数の異なるタイプの通信ネットワークとして実装され得る。図1は、例示としてのみ意図されており、異なる例示的な実施形態に対する構成上の制限として意図されていない。
【0029】
本明細書において、項目に関して使用される場合、「多数の」は、項目のうちの1つまたは複数を意味する。例えば、「多数の異なるタイプの通信ネットワーク」は、1つまたは複数の異なるタイプの通信ネットワークを意味する。同様に、項目に関して使用される場合、「一組の」は、1つまたは複数の項目を意味する。
【0030】
さらに、用語「少なくとも1つ」は、項目のリストと共に使用される場合、リストされた項目の1つ以上の異なる組み合わせが使用されてもよく、リスト内の各項目の1つだけが必要であってもよいことを意味する。言い換えると、「少なくとも1つ」は、リストから任意の項目の組み合わせと数を使用することができるが、リスト内のすべての項目が必要なわけではないことを意味する。項目は、特定の物体、物、またはカテゴリであってもよい。
【0031】
例えば、限定するものではないが、「項目A、項目B、または項目Cのうちの少なくとも1つ」は、項目A、項目Aおよび項目B、または項目Bを含み得る。この例は、項目A、項目B、項目Cまたは項目Bおよび項目Cも含み得る。もちろん、これらの項目の任意の組み合わせが存在し得る。いくつかの実施例では、「少なくとも1つの」は、例えば、限定されないが、2つの項目A、1つの項目B、および10の項目C、4つの項目Bおよび7つの項目C、または他の適切な組合せであり得る。
【0032】
ここで図2を参照すると、例示的な実施形態によるデータ処理システムの図が示されている。データ処理システム200は、図1の認証サーバ106または認証ポリシー決定点サーバ108などのコンピュータの一例であり、例示的な実施形態のアクセス管理処理を実装するコンピュータ可読プログラムコードまたは命令が配置されることがある。この例では、データ処理システム200は、プロセッサユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力ユニット212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含む。
【0033】
プロセッサユニット204は、メモリ206にロードされ得るソフトウェアアプリケーションおよびプログラムのための命令を実行する役割を果たす。プロセッサユニット204は、特定の実装によって、1つ以上のハードウェアプロセッサ装置のセットであってもよいし、マルチコアプロセッサであってもよい。
【0034】
メモリ206および永続ストレージ208は、記憶装置216の例である。本明細書で使用されるように、コンピュータ可読記憶装置またはコンピュータ可読記憶媒体は、例えば、限定されないが、データ、機能形態のコンピュータ可読プログラムコード、もしくは一過性ベースまたは持続性ベースのいずれかの他の適切な情報またはその組み合わせなどの情報を記憶することができるハードウェアの任意の部分である。さらに、コンピュータ可読記憶装置またはコンピュータ可読記憶媒体は、一過性の信号のような伝送媒体を除外する。さらに、コンピュータ可読記憶装置またはコンピュータ可読記憶媒体は、コンピュータ可読記憶装置のセットまたはコンピュータ可読記憶媒体のセットを表すことがある。メモリ206は、これらの例では、例えば、ランダムアクセスメモリ(RAM)、またはフラッシュメモリなどの任意の他の適切な揮発性または不揮発性の記憶装置であってもよい。永続ストレージ208は、特定の実装によって、様々な形態を取ることができる。例えば、永続ストレージ208は、1つ以上の装置を含むことができる。例えば、永続ストレージ208は、ディスクドライブ、ソリッドステートドライブ、書き換え可能な光ディスク、書き換え可能な磁気テープ、または上記のいくつかの組み合わせであってもよい。永続ストレージ208によって使用される媒体は、取り外し可能であってもよい。例えば、リムーバブルハードドライブが永続ストレージ208に使用されてもよい。
【0035】
この例では、永続ストレージ208は、認証アプリケーションプログラミングインターフェース218を格納する。認証アプリケーションプログラミングインターフェース218は、たとえば図1のリソースサーバ104などのリソースサーバによってホストされる1つ以上の保護されたリソースへのアクセスを認証するためのアプリケーションプログラミングインターフェースである。さらに、認証アプリケーションプログラミングインターフェース218は、複数の異なる認証アプリケーションプログラミングインターフェースを表し得ることに留意されたい。さらに、認証アプリケーションプログラミングインターフェース218は、複数のデータ処理システムに配置される可能性がある。
【0036】
通信ユニット210は、この例では、図1のネットワーク102などのネットワークを介して、他のコンピュータ、データ処理システム、および装置との通信を提供する。通信ユニット210は、物理的通信リンクおよび無線通信リンクの両方の使用を通じて通信を提供することができる。物理的通信リンクは、例えば、データ処理システム200の物理的通信リンクを確立するために、ワイヤ、ケーブル、ユニバーサルシリアルバス、または任意の他の物理技術を利用することができる。無線通信リンクは、例えば、短波、高周波、超高周波、マイクロ波、ワイヤレスフィデリティ(Wi-Fi)、Bluetooth(登録商標)技術、移動通信用グローバルシステム(GSM)、符号分割多重アクセス(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4G Long Term Evolution(LTE)、LTE Advanced、第5世代(5G)、または任意の他の無線通信技術またはスタンダードを利用して、データ処理システム200の無線通信リンクを構築し得る。
【0037】
入力/出力ユニット212は、データ処理システム200に接続され得る他の装置とのデータの入力および出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウス、マイクロフォン、もしくは他の何らかの適切な入力装置またはその組み合わせを介したユーザ入力のための接続を提供し得る。ディスプレイ214は、ユーザに情報を表示する機構を提供し、例えば、ユーザがユーザインターフェースまたは入力データを介して画面上の選択を行うことを可能にするためのタッチスクリーン機能を含むことができる。
【0038】
オペレーティングシステム、アプリケーション、もしくはプログラムまたはその組み合わせのための命令は、通信ファブリック202を介してプロセッサユニット204と通信している記憶装置216に配置されることがある。この実施例においては、命令は、永続ストレージ208上の機能的な形態である。これらの命令は、プロセッサユニット204による実行のためにメモリ206にロードされ得る。異なる実施形態の処理は、メモリ206などのメモリに配置され得るコンピュータ実装命令を使用して、プロセッサユニット204によって実行されてもよい。これらのプログラム命令は、プロセッサユニット204内のプロセッサによって読み取られ実行され得るプログラムコード、コンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードと称される。プログラム命令は、異なる実施形態では、メモリ206または永続ストレージ208などの異なる物理的なコンピュータ可読記憶装置上に実装されることがある。
【0039】
プログラムコード220は、選択的に取り外し可能であり、プロセッサユニット204による実行のためにデータ処理システム200にロードまたは転送され得るコンピュータ可読媒体222上に機能形態で配置される。プログラムコード220およびコンピュータ可読媒体222は、コンピュータプログラム製品224を形成する。一例では、コンピュータ可読媒体222は、コンピュータ可読記憶媒体226またはコンピュータ可読信号媒体228であり得る。
【0040】
これらの実施例においては、コンピュータ可読記憶媒体226は、プログラムコード220を伝播または伝送する媒体ではなく、プログラムコード220を記憶するために使用される物理的または有形の記憶装置である。コンピュータ可読記憶媒体226は、例えば、永続ストレージ208の一部であるハードディスクなどの記憶装置上に転送するために永続ストレージ208の一部であるドライブまたは他の装置に挿入または配置される光ディスクまたは磁気ディスクを含むことができる。コンピュータ可読記憶媒体226はまた、データ処理システム200に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなどの永続ストレージの形態をとることもできる。
【0041】
あるいは、プログラムコード220は、コンピュータ可読信号媒体228を使用してデータ処理システム200に転送されてもよい。コンピュータ可読信号媒体228は、例えば、プログラムコード220を含む伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体228は、電磁信号、光信号、または任意の他の適切なタイプの信号であってもよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、ワイヤ、または任意の他の適切なタイプの通信リンクなどの通信リンクを介して伝送されてもよい。
【0042】
さらに、本明細書で使用する場合、「コンピュータ可読媒体222」は単数または複数であり得る。例えば、プログラムコード220は、単一の記憶装置またはシステムの形態でコンピュータ可読媒体222に配置することができる。他の例では、プログラムコード220は、複数のデータ処理システムに分散されたコンピュータ可読媒体222に配置することができる。言い換えると、プログラムコード220の一部の命令は1つのデータ処理システムに配置され、プログラムコード220の他の命令は1つ以上の他のデータ処理システムに配置されることが可能である。例えば、プログラムコード220の一部は、サーバコンピュータ内のコンピュータ可読媒体222に位置することができ、一方、プログラムコード220の他の一部は、クライアントコンピュータのセットに位置するコンピュータ可読媒体222に位置することができる。
【0043】
データ処理システム200について例示された異なる構成要素は、異なる実施形態が実装され得る方法に対する構造上の制限を提供することを意味しない。いくつかの実施例では、構成要素のうちの1つまたは複数が、別の構成要素に組み込まれるか、さもなければ、その一部を形成することができる。例えば、メモリ206、またはその一部は、いくつかの実施例では、プロセッサユニット204に組み込まれることがある。異なる例示的な実施形態は、データ処理システム200について例示された構成要素に加えて、またはその代わりに、構成要素を含むデータ処理システムで実施することができる。図2に示された他の構成要素は、示された実施例から変化させることができる。異なる実施形態は、プログラムコード220を実行することができる任意のハードウェア装置またはシステムを使用して実装することができる。
【0044】
別の例では、通信ファブリック202を実装するためにバスシステムを使用することができ、システムバスまたは入力/出力バスなどの1つ以上のバスで構成することができる。もちろん、バスシステムは、バスシステムに接続された異なる構成要素または装置間のデータの転送を提供する任意の適切なタイプの構造を使用して実装されてもよい。
【0045】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されないことが理解される。むしろ、例示的な実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0046】
この特性には、例えば、オンデマンド・セルフサービス、ブロード・ネットワークアクセス、リソースプーリング、迅速な柔軟性、および測定されるサービスなどが含まれる場合がある。オンデマンド・セルフサービスは、クラウドの消費者が、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することを可能にする。ブロード・ネットワークアクセスは、ネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできるコンピューティング能力を提供する。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、パーソナルデジタルアシスタント)による利用が促進される。リソースプーリングは、プロバイダのコンピューティングリソースをプールし、マルチテナントモデルを利用して複数の消費者に提供することを可能にし、様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚があるが、消費者は、国、州、データセンターなど、より高い抽象レベルでは場所を特定可能な場合がある。迅速な柔軟性は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインする能力を提供する。消費者にとって、準備に利用可能な能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。測定されるサービスにより、クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0047】
サービスモデルには、例えば、SaaS(サービスとしてのソフトウェア)、PaaS(サービスとしてのプラットフォーム)、及びIaaS(サービスとしてのインフラストラクチャ)が含まれる場合がある。サービスとしてのソフトウェアとは、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用するために消費者に提供される機能である。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインターフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。サービスとしてのプラットフォームは、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)するために消費者に提供される機能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。サービスとしてのインフラストラクチャは、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備するために消費者に提供される機能である。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0048】
展開モデルには、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、及びハイブリッドクラウドが含まれ得る。プライベートクラウドは、特定の組織専用で運用される。このプライベートクラウドは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。コミュニティクラウドは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このコミュニティクラウドは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。パブリッククラウドは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。ハイブリッドクラウドは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を含み、それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0049】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0050】
ここで図3を参照すると、例示的な実施形態が実装され得るクラウドコンピューティング環境を示す図が描かれている。この実施例では、クラウドコンピューティング環境300は、1つ以上のクラウドコンピューティングノード310のセットを含み、これと、例えば、パーソナルデジタルアシスタントまたはスマートフォン320A、デスクトップコンピュータ320B、ラップトップコンピュータ320C、もしくは車両コンピュータシステム320Nまたはその組み合わせなどの、クラウド消費者によって用いられるローカルコンピューティング装置が通信してもよい。クラウドコンピューティングノード310は、例えば、図1のリソースサーバ104、認証サーバ106、および認証ポリシー決定点サーバ108であり得る。ローカルコンピューティング装置320A~320Nは、例えば、図1におけるクライアント112~116であり得る。
【0051】
クラウドコンピューティングノード310は、互いに通信してもよく、物理的または仮想的に、本明細書で説明したようなプライベート、コミュニティ、パブリック、またはハイブリッドクラウド、またはそれらの組み合わせなどの1つ以上のネットワークにグループ化してもよい。これにより、クラウドコンピューティング環境300は、クラウド消費者がローカルコンピューティング装置320A~320Nなどのローカルコンピューティング装置上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、もしくはソフトウェアまたはその組み合わせを提供できる。ローカルコンピューティング装置320A~320Nのタイプは例示のみを意図しており、クラウドコンピューティングノード310およびクラウドコンピューティング環境300は、例えばウェブブラウザを使用して任意のタイプのネットワークもしくはネットワークアドレス可能接続またはその組み合わせを介して任意のタイプのコンピュータ化装置と通信できることが理解される。
【0052】
ここで図4を参照すると、例示的な実施形態による抽象化モデルレイヤを示す図が描かれている。この実施例に示される機能抽象化層のセットは、図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境によって提供され得る。図4に示された構成要素、層、および機能は、例示的であることのみを意図しており、本発明の実施形態は、それに限定されないことを予め理解されたい。描かれているように、以下のレイヤーおよび対応する機能が提供される。
【0053】
クラウドコンピューティング環境抽象化層400は、ハードウェアおよびソフトウェア層402、仮想化層404、管理層406、およびワークロード層408を含む。ハードウェアおよびソフトウェア層402は、クラウドコンピューティング環境のハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素は、例えば、メインフレーム410、RISC(Reduced Instruction Set Computer)アーキテクチャベースサーバ412、サーバ414、ブレードサーバ416、記憶装置418、ならびにネットワークおよびネットワーキング構成要素420を含み得る。いくつかの例示的な実施形態では、ソフトウェア構成要素は、例えば、ネットワークアプリケーションサーバソフトウェア422およびデータベースソフトウェア424を含み得る。
【0054】
仮想化層404は、抽象化層を提供し、そこから例えば仮想サーバ426、仮想ストレージ428、仮想プライベートネットワークを含む仮想ネットワーク430、仮想アプリケーションおよびオペレーティングシステム432、ならびに仮想クライアント434などの仮想実体を提供することができる。
【0055】
一例として、管理層406は、以下に説明する機能を提供し得る。リソースプロビジョニング436は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよびその他のリソースの動的調達を提供する。メータリングおよび価格設定438は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡、およびこれらのリソースの消費に対する課金または請求書作成を行う。一例として、これらのリソースは、アプリケーションソフトウェアライセンスを含む場合がある。セキュリティは、クラウドの消費者とタスクのアイデンティティ確認と、データおよびその他のリソースの保護を提供する。ユーザポータル440は、消費者とシステム管理者のために、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理442は、リクエストされるサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当てと管理を提供する。サービスレベルアグリーメント(SLA)計画および履行444は、SLAに従って、将来のリクエストが予想されるクラウドコンピューティングリソースの事前手配および調達を提供する。
【0056】
ワークロード層408は、クラウドコンピューティング環境が利用され得る機能性の例を提供する。ワークロード層408によって提供され得る例示的なワークロードおよび機能は、マッピングおよびナビゲーション446、ソフトウェア開発およびライフサイクル管理448、仮想教室教育配信450、データ分析処理452、トランザクション処理454、ならびに保護されたリソースアクセス管理456を含み得る。
【0057】
トークンベースの認証システム(OAuth2.0など)は、スコープ(文字やキーワードの任意の文字列)を使って認証を定義する。スコープは、保護されたリソースのセットへのアクセス許可を定義する。スコープは通常標準化されておらず、各認証システムは独自のスコープのセットを定義している。典型的なスコープのセットは、例えば、uaa.read、uaa.write、uaa.admin、cloud_controller.read、cloud_controller.write、cloud_controller.adminなどである。スコープのリストは、エンドユーザやサービスに対応する認証が多いほど長くなる。スコープのリストのサイズが大きくなると、アクセストークンも大きくなり、ネットワーク経由の呼び出し(保護されたリソースへのアクセスリクエストなど)は、応答時間の増加により遅くなる。例えば、スコープに1文字使用すると、アクセストークンは1.33文字となる。例えば、スコープcloud_controller.admin uaa.scim clients.readは44文字を含み、その結果、アクセストークンは約59文字になる。認証サーバは、トークンのスコープの文字数制限(すなわち、生成されたアクセストークンに対して割り当てられるスコープフィールドの文字数制限)を実装することができる。例えば、アクセストークンのスコープフィールドのサイズが、設定された最大サイズの閾値制限(例えば、20KB)以上である場合、認証サーバはinvalid_scopeを返すことができる。つまり、アクセストークンに含まれるスコープが多すぎると、エラーが投げられることになる。
【0058】
例示的な実施形態は、非常に限定的な方法でスコープを利用する(すなわち、認証サーバは、アプリケーションプログラミングインターフェースの別のセットで実装される)。スコープは、高レベルの認証フィルタである(すなわち、クラウド内の利用可能な各保護されたリソース(例えば、サービス)に対して、アクセストークンの許可を1つの特定の保護されたリソースのみに制限する1つのスコープが存在する)。通常、グラフィカルユーザインターフェースまたはコマンドラインインターフェースを介してログインするエンドユーザは、例えば、企業、会社、ビジネス、組織、機関、代理店などの実体のすべての保護されたリソース(例えば、サービス)にアクセスする権限を有するアクセストークンを受け取る。実体は、異なる保護されたリソースに対して数百または数千のスコープを有することができる。その結果、各アクセストークンは、保護されたリソーススコープの完全なリストを含むことができ、これらのアクセストークンは非常に大きく(例えば、20KBより大きい)、ネットワーク応答時間を増加させることによってシステム性能を低下させ、認証サーバによるアクセストークン拒絶率(すなわち、投げられるエラー)を増加させる。例示的な実施形態は、スコープエイリアスを利用して、アクセストークンのサイズ(すなわち、スコープフィールド)を減少させ、ネットワーク応答時間を減少させる(すなわち、保護されたリソースにアクセスする時間を減少させる)ことによってシステム性能を向上させ、アクセストークンのアクセス許可を同じレベルに維持しながら、認証サーバによるアクセストークンの拒絶率を減少させる。本明細書で使用する場合、1つのスコープエイリアスは、複数の個々のスコープを表す。
【0059】
したがって、例示的な実施形態は、ネットワーク応答時間の減少、システム性能の低下、およびネットワークスイッチ、ルーター、サーバなどによる保護されたリソースアクセスリクエストの拒絶率の増加(たとえば、エラー)を引き起こす、大きなスコープフィールド(たとえば、サイズが2KB以上)を有するアクセストークンの技術的問題を克服する1つ以上の技術的解決策を提供する。その結果、これらの1つ以上の技術的解決策は、アクセストークンの保護されたリソースアクセス許可をスコープエイリアスが表す複数の個々のスコープと同じレベルに維持しながら、複数のスコープを表すためにスコープエイリアスを使用してアクセストークンのスコープフィールドのサイズを減少させることによって、保護されたリソースアクセス管理の分野における技術的効果および実用性を提供する。例示的な実施形態によって生成されるアクセストークンの縮小されたサイズは、ネットワーク応答時間を改善/減少させ、より速い保護されたリソースアクセスおよびシステム性能の増加を可能にする。
【0060】
ここで図5を参照すると、例示的な実施形態によるスコープエイリアスの一例を示す図が描かれている。スコープエイリアス500は、スコープエイリアスのセットであり、セット内の各スコープエイリアスは、特定の個々のスコープの複数または集合を表す。例えば、スコープエイリアス500は、対応するスコープ502を表す。
【0061】
この例では、スコープエイリアス500は、スコープエイリアス「ALL」504、スコープエイリアス「GROUP1」506、及びスコープエイリアス「GROUP2」508を含む。スコープエイリアス「ALL」504は、「SERVICE1」510、「SERVICE2」512、「SERVICE3」514、「SERVICE4」516、「SERVICE5」518、「SERVICE6」520の個別スコープを表す。スコープエイリアス「GROUP1」506は、「SERVICE1」522、「SERVICE2」524、「SERVICE3」526、および「SERVICE4」528の個々のスコープを表す。スコープエイリアス「GROUP2」508は、「SERVICE5」530および「SERVICE6」532の個々のスコープを表す。上記のリストされたサービスのそれぞれは、たとえば図1のリソースサーバ104のようなリソースサーバによってホストされる保護されたリソースであることに留意されたい。
【0062】
例えば図1の認証サーバ106のような認証サーバが、生成されたアクセストークンのスコープフィールドにスコープエイリアス「ALL」504を配置すると、その特定のアクセストークンは、スコープフィールドのサイズを小さくしながら、個々のスコープ「SERVICE1」510、「SERVICE2」512、「SERVICE3」514、「SERVICE4」516、「SERVICE5」518、「SERVICE6」520すべてと同じレベルのアクセス許可を有することが出来る。同様に、認証が生成されたアクセストークンのスコープフィールドにスコープエイリアス「GROUP1」506を配置する場合、その特定のアクセストークンは、スコープフィールドのサイズを制限しながら、個々のスコープ「SERVICE1」522、「SERVICE2」524、「SERVICE3」526、および「SERVICE4」528と同じレベルのアクセス許可を有する。また、認証が生成されたアクセストークンのスコープフィールドにスコープエイリアス「GROUP2」508を配置する場合、その特定のアクセストークンは、個々のスコープ「SERVICE5」530および「SERVICE6」532と同じレベルのアクセス許可を有する。
【0063】
ここで図6を参照すると、例示的な実施形態による対応するスコープを有するクライアント識別子の一例を示す図が描かれる。この例では、対応するスコープを有するクライアント識別子600は、クライアント識別子「CLIENT1」602およびクライアント識別子「CLIENT2」604を含む。
【0064】
クライアント識別子「CLIENT1」602は、例えば、図5のスコープエイリアス「ALL」504などのスコープエイリアス「ALL」606と関連付けられる。スコープエイリアス「ALL」606は、対応するスコープ608を表す。対応するスコープ608は、例えば図5の「SERVICE1」510、「SERVICE2」512、「SERVICE3」514、「SERVICE4」516、「SERVICE5」518、および「SERVICE6」520のような、「SERVICE1」610、「SERVICE2」612、「SERVICE3」614、「SERVICE4」616、「SERVICE5」618、および「SERVICE6」620を含む。したがって、例えば図1の認証サーバ106などの認証サーバが、クライアントによるアクセストークンリクエストで指定されるか、受信したアクセストークンのスコープフィールドに含まれるスコープエイリアス「ALL」606を拡張すると、拡張の結果は、「SERVICE1」610、「SERVICE2」612、「SERVICE3」614、「SERVICE4」616、「SERVICE5」618、及び「SERVICE6」620となる。
【0065】
クライアント識別子「CLIENT2」604は、例えば、図5のスコープエイリアス「GROUP2」506などのスコープ「SERVICE1」622およびスコープエイリアス「GROUP2」624と関連付けられる。スコープエイリアス「GROUP2」624は、対応するスコープ626の一部分を表す。対応するスコープ626は、「SERVICE1」628、「SERVICE5」630、および「SERVICE6」632を含む。認証サーバが、クライアントによるアクセストークンリクエストで指定され、または受信したアクセストークンのスコープフィールドに含まれるスコープエイリアス「GROUP2」624を拡張すると、拡張の結果は「SERVICE5」630および「SERVICE6」632となる。
【0066】
ここで図7を参照すると、例示的な実施形態によるアクセストークンを取得する処理の一例を示す図が描かれている。アクセストークンを取得する処理700は、たとえば図1のネットワークデータ処理システム100などのデータ処理システムのネットワーク、またはたとえば図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境において実施され得る。この例では、アクセストークンを取得する処理700は、リソースオーナー702、クライアント704、および認証サーバ706を含む。クライアント704は、たとえば、図1のクライアント112または図3のローカルコンピューティング装置320Aであってもよい。認証サーバ706は、たとえば、図1の認証サーバ106、図2のデータ処理システム200、または図3のクラウドコンピューティングノード310のクラウドコンピューティングノードであってもよい。しかしながら、アクセストークンを取得する処理700は、任意の数のリソースオーナー、クライアント、および認証サーバを含み得ることに留意されたい。言い換えると、アクセストークンを取得する処理700は、例示としてのみ意図され、例示的な実施形態に制限するものとして意図されない。
【0067】
708において、リソースオーナー702(たとえば、エンドユーザ)は、保護されたリソースのセットにアクセスするために、クライアント704上でウェブアプリケーションを起動する。保護されたリソースのセットは、たとえば、1つ以上のクラウドサービスのセットであってもよい。710において、クライアント704は、認証サーバ706にリダイレクトする。712において、リソースオーナー702は、認証サーバ706に認証リクエストを送信する。714において、認証サーバ706は、リソースオーナー702にログインページを表示する。716において、リソースオーナー702は、ログインページを介して認証サーバ706に認証情報(たとえば、ユーザ名およびパスワード)を提供する。
【0068】
718において、認証サーバ706は、リソースオーナー702によって提供された認証情報を検証する。720において、認証情報の検証に成功すると、認証サーバ706は、リソースオーナー702へのリダイレクト情報の一部として認証コードとともにクライアント704のウェブアプリケーションへリダイレクトする。722において、リソースオーナー702は、認証コードをクライアント704に提供する。
【0069】
724において、クライアント704は、認証コードを使用して認証サーバ706にアクセストークンをリクエストし、選択的に保護されたリソースのセットにアクセスするためのスコープをアクセストークンリクエストで指定する。726において、認証サーバ706は、アクセストークンリクエストで指定されたスコープを検証し、アクセストークンリクエストでスコープが指定されていない場合、認証サーバ706は、クライアントに対応する認証されたスコープをストレージから取得する。
【0070】
ここでは、スコープエイリアスがサポートされている場合のOAuth2.0によるスコープハンドリングのための具体的な例示を説明する。クライアント704のウェブアプリケーション(例えば、図6のクライアント識別子602に対応するウェブアプリケーション)は、SERVICE1、SERVICE2、SERVICE3、SERVICE4、SERVICE5、およびSERVICE6の特定の個別スコープ(例えば、図6のスコープ610-620)に相当するスコープエイリアス「ALL」(例えば、図6のスコープエイリアス606)を有する。シナリオ1では、クライアント704は、アクセストークンリクエストでスコープを指定しない。その結果、認証サーバ706は、クライアント704に対応するすべての認証されたスコープ(すなわち、SERVICE1、SERVICE2、SERVICE3、SERVICE4、SERVICE5、SERVICE6)をストレージから取得する。次に、認証サーバ706は、アクセストークンに対する同じレベルの許可を維持しながら、SERVICE1、SERVICE2、SERVICE3、SERVICE4、SERVICE5、およびSERVICE6の個々のスコープを表現するためにスコープエイリアス「ALL」を使用して、アクセストークンのスコープフィールドのスコープ数を制限する。シナリオ2では、クライアント704は、アクセストークンリクエストにおいて、SERVICE1、SERVICE5、およびSERVICE6(例えば、図6のスコープ628-632)のような特定のスコープを指定する。あるいは、クライアント704は、アクセストークンリクエストにおいて、1つ以上のスコープエイリアス(例えば、図6のスコープ622およびスコープエイリアス624などのSERVICE1、GROUP2)を有する個々のスコープの組合せを用いる。次に、認証サーバ706は、アクセストークンを生成するために、すべての有効なクライアントスコープ(例えば、SERVICE1、SERVICE5、SERVICE6)、または代替的に、スコープエイリアス(例えば、SERVICE1、GROUP2)と組み合わせたスコープを使用して返す。
【0071】
728において、認証サーバ706は、解決された(すなわち、認証または有効な)スコープを有するクライアントのためのアクセストークンとリフレッシュトークンを生成し、アクセストークンをクライアント704に送信する。730において、クライアント704は、アクセストークンおよびリフレッシュトークンを現在のブラウザセッションに格納する。732において、クライアント704は、保護されたリソースのセットにアクセスするために、リソースオーナー702にウェブアプリケーションを表示する。
【0072】
ここで図8を参照すると、例示的な実施形態による既存のアクセストークンのスコープを制限する処理の一例を示す図が描かれている。既存のアクセストークンのスコープを制限する処理800は、例えば、図1のネットワークデータ処理システム100などのデータ処理システムのネットワーク、または例えば、図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境において実施され得る。この例では、既存のアクセストークンのスコープを制限する処理800は、リソースオーナー802、クライアント804、および認証サーバ806を含む。クライアント804は、たとえば、図1のクライアント112または図3のローカルコンピューティング装置320Aであってもよい。認証サーバ806は、たとえば、図1の認証サーバ106、図2のデータ処理システム200、または図3のクラウドコンピューティングノード310のクラウドコンピューティングノードであってもよい。しかしながら、既存のアクセストークンのスコープを制限する処理800は、任意の数のリソースオーナー、クライアント、および認証サーバを含み得ることに留意されたい。言い換えると、既存のアクセストークンのスコープを制限する処理800は、例示としてのみ意図され、例示的な実施形態に制限するものとして意図されない。
【0073】
808において、リソースオーナー802(例えば、エンドユーザ)は、保護されたリソースに対する一連のアクションの実行をリクエストする。保護されたリソースは、例えば、データベースサービスなどのサービスであってもよい。アクションのセットは、例えば、作成、読み取り、更新、削除などのうちの1つまたは複数であってもよい。810において、クライアント804(例えば、クライアント804上のウェブアプリケーション)は、一連のアクションに含まれるアクションのみの実行を特に許可する制限されたスコープのセットを有する新しいアクセストークンをリクエストする。812において、クライアント804は、クライアント804のスコープのリストを含むリフレッシュトークンを送信する。814において、認証サーバ806は、リフレッシュトークンに含まれるスコープのリストを使用して、新しいアクセストークンに指定されたスコープの制限されたセットを検証する。
【0074】
ここでは、スコープエイリアスがサポートされている場合のOAuth2.0によるスコープハンドリングのための具体的な例示を説明する。クライアント804のリフレッシュトークンは、SERVICE1、SERVICE2、SERVICE3、SERVICE4、SERVICE5、およびSERVICE6の個々のスコープ(例えば、図6のスコープ610-620)または同等のスコープエイリアス「ALL」(例えば、図6のスコープエイリアス606)のリストを含む。クライアント804は、新しいアクセストークンのリクエストにおいて、SERVICE1、SERVICE5、およびSERVICE6のような個々のスコープの特定の制限されたセット(例えば、図6のスコープ628-632)を指定する。あるいは、クライアント804は、新しいアクセストークンのリクエストにおいて、個々のスコープとスコープエイリアス(例えば、図6のスコープ622およびスコープエイリアス624などのSERVICE1、GROUP2)との組み合わせを使用して、スコープの制限されたセットを指定する。次に、認証サーバ806は、リフレッシュトークンに含まれるスコープのリストに基づいて、スコープの制限されたセット(例えば、SERVICE1、SERVICE5、SERVICE6またはSERVICE1、GROUP2)を検証する。スコープの制限されたセットがスコープエイリアス(例えば、GROUP2)を含む場合、認証サーバ806は、リフレッシュトークンに含まれるスコープのリストを用いてスコープ検証処理を行う前に、スコープエイリアスをその対応する個々のスコープ(例えば、SERVICE5、SERVICE6)に拡張することに留意されたい。新しいアクセストークンのリクエストで指定されたスコープの制限されたセットを検証することに応答して、認証サーバ806は、クライアント804のための新しいアクセストークンとリフレッシュトークンを生成するためのSERVICE1、GROUP2(すなわち、SERVICE1、SERVICE5、SERVICE6)を返す。制限されたスコープのセットで指定された個々のスコープのすべての使用とは対照的に、新しいアクセストークンのためのスコープとスコープエイリアスの組み合わせの使用はスコープフィールドのサイズを減少させる。
【0075】
816において、認証サーバ806は、制限されたスコープのセットで新しいアクセストークンと新しいリフレッシュトークンを生成し、新しいアクセストークンと新しいリフレッシュトークンをクライアント804に送信する。818において、クライアント804は、制限されたスコープの新しいアクセストークンを使用して、1つ以上のアプリケーションプログラミングインターフェースを呼び出して、一連のアクションを実行する。820において、クライアント804は、ウェブアプリケーションを介してリソースオーナー802に一連のアクションの結果を表示する。
【0076】
ここで図9を参照すると、例示的な実施形態による保護されたリソースにアクセスする処理の一例を示す図が描かれている。保護されたリソースにアクセスする処理900は、たとえば図1のネットワークデータ処理システム100などのデータ処理システムのネットワークまたは、たとえば図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境において実施され得る。この例では、保護されたリソースにアクセスする処理900は、クライアント902、リソースサーバ904、認証ポリシー決定点サーバ906、および認証サーバ908を含む。クライアント902は、たとえば、図1のクライアント112または図3のローカルコンピューティング装置320Aであってもよい。リソースサーバ904は、たとえば、図1のリソースサーバ104または図3のクラウドコンピューティングノード310のクラウドコンピューティングノードであってよく、1つ以上の保護されたリソースのセットをホストする。たとえば、リソースサーバ904は、リソースオーナーの機密データを含むデータベースであってもよい。認証ポリシー決定点サーバ906は、たとえば、図1の認証ポリシー決定点サーバ108または図3のクラウドコンピューティングノード310の別のクラウドコンピューティングノードであってよく、リソースサーバ904に対応する認証ポリシーに基づくアクセス認証決定を提供する。認証サーバ908は、たとえば、図1の認証サーバ106、図2のデータ処理システム200、または図3のクラウドコンピューティングノード310のさらに別のクラウドコンピューティングノードであり得る。しかしながら、代替の実施形態では、認証ポリシー決定点サーバ906および認証サーバ908は、同じサーバに配置されてもよいことに留意されたい。さらに、保護されたリソースにアクセスする処理900は、任意の数のクライアント、リソースサーバ、認証ポリシー決定点サーバ、および認証サーバを含み得る。言い換えると、保護されたリソースにアクセスする処理900は、例示としてのみ意図され、例示的な実施形態に制限するものとして意図されない。
【0077】
910において、クライアント902(たとえば、クライアント902上のウェブアプリケーション)は、リソースサーバ904がホストする保護されたリソースへのアクセスをリクエストするクライアント902のアクセストークンを使用して、リソースサーバ904上のアプリケーションプログラミングインターフェースを呼び出す。912において、リソースサーバ904は、リクエストされた保護されたリソースおよびクライアント902のアクセストークンに含まれるスコープに基づいて、アプリケーションプログラミングインターフェースの呼び出しが許可されているか否かについて、認証ポリシー決定点サーバ906に確認する。914において、認証ポリシー決定点サーバ906は、リソースサーバ904によってホストされる保護されたリソースにアクセスするために必要なスコープがクライアント902のアクセストークンに含まれているか否かを判定するように認証サーバ908に求める。
【0078】
916において、認証サーバ908は、クライアント902のアクセストークンに含まれる各スコープエイリアスを、各スコープエイリアスで表される個々のスコープに拡張し、必要なスコープが存在するか否かを確認する。918において、認証サーバ908は、保護されたリソースにアクセスするために必要なスコープが存在する場合、「TRUE」を返す。一方で、認証サーバ908は、保護されたリソースにアクセスするために必要なスコープが存在しない場合、「FALSE」を返す。920において、保護されたリソースにアクセスするために必要なスコープが存在する場合、認証ポリシー決定点サーバ906は、リソースサーバ904に対応する認証ポリシーの評価を継続する。一方で、保護されたリソースにアクセスするために必要なスコープが存在しない場合、認証サーバ908は、「DENY」を返す。
【0079】
922において、認証ポリシー決定点サーバ906は、スコープの評価および認証ポリシーの評価に基づいて、保護されたリソースアクセス決定をリソースサーバ904に送信する。924において、リソースサーバ904は、認証ポリシー決定点サーバ906から受信したリソースアクセス決定に基づいてアプリケーションプログラミングインターフェースの呼び出しが許可される場合、アプリケーションプログラミングインターフェースの呼び出しを実行する。あるいは、リソースサーバ904は、認証ポリシー決定点サーバ906から受信したリソースアクセス決定に基づいてアプリケーションプログラミングインターフェースの呼び出しが許可されない場合、エラーメッセージを準備する。926において、リソースサーバ904は、アプリケーションプログラミングインターフェースの呼び出しを実行した結果またはエラーメッセージのいずれかをクライアント902に送信する。
【0080】
ここで図10を参照すると、例示的な実施形態によるアクセストークンを生成する処理を示すフローチャートが示されている。図10に示す処理は、例えば、図1の認証サーバ106または図2のデータ処理システム200のようなコンピュータにおいて実施され得る。
【0081】
コンピュータがネットワークを介してクライアントから認証コードとクライアント識別子を有するアクセストークンリクエストを受信したとき、処理は開始する(ステップ1002)。クライアント識別子は、アクセストークンリクエストを送信したクライアントを一意に識別する。コンピュータは、アクセストークンリクエストを分析し、分析に基づいて、アクセストークンリクエストにスコープが指定されているか否かを判定する(ステップ1004)。スコープは、特定の保護されたリソースまたは保護されたリソースの特定のセットにアクセスする許可を定義する。保護されたリソースは、例えば、データベースサービス、ストレージサービス、データ処理サービス、アプリケーションサービス、プラットフォームサービス、インフラストラクチャサービスなどのクラウドサービスであってよい。
【0082】
コンピュータが、分析に基づいて、スコープがアクセストークンリクエストに指定されていないと判定し、ステップ1004の出力が「NO」の場合、コンピュータは、クライアント識別子に対応するすべての認証されたスコープをストレージから取得して、指定されたスコープのセットを形成する(ステップ1006)。その後、処理はステップ1010に進む。コンピュータが、分析に基づいて、アクセストークンリクエストでスコープが指定されていると判定し、ステップ1004の出力が「YES」の場合、コンピュータは、指定されたスコープのセットを形成するために、アクセストークンリクエストに指定されたスコープのセットを特定する(ステップ1008)。
【0083】
コンピュータは、指定されたスコープの拡張されたセットを形成するために、指定されたスコープのセットに含まれる各スコープエイリアスを拡張する(ステップ1010)。すなわち、拡張された指定されたスコープのセットには、スコープエイリアスは含まれず、個々のスコープのみが含まれる。さらに、コンピュータは、認証されたスコープの拡張されたセットを形成するために、ストレージから取得されたクライアント識別子に対応する認証されたスコープに含まれるすべてのスコープエイリアスを拡張する(ステップ1012)。同様に、拡張された認証されたスコープのセットには、スコープエイリアスは含まれず、個々のスコープのみが含まれる。
【0084】
コンピュータは、拡張された指定されたスコープのセットと拡張された認証されたスコープのセットとの間のインターセクションを生成する(ステップ1014)。さらに、コンピュータは、拡張された指定されたスコープのセットと拡張された認証されたスコープのセットとの間のインターセクションに基づいて、クライアントによるアクセストークンリクエストに対応する有効なスコープ数を特定する(ステップ1016)。さらに、コンピュータは、予め定義されたスコープエイリアスの数を使用して、アクセストークンリクエストに対応する有効なスコープの数を減少させる(ステップ1018)。予め定義されたスコープエイリアスの数のそれぞれは、2つ以上のクライアントが指定した個々のスコープの集合を表す。言い換えると、コンピュータは、特定のスコープエイリアスにどのグループの個別スコープを含めるべきかを把握している。
【0085】
その後、コンピュータは、予め定義されたスコープエイリアスの数と、予め定義されたスコープエイリアスの数の少なくとも1つに含まれないアクセストークンリクエストに対応する残りの有効なスコープとを使用して、クライアントのアクセストークンを生成する(ステップ1020)。そして、コンピュータは、ネットワークを介して、アクセストークンをクライアントに送信する(ステップ1022)。その後、処理は終了する。
【0086】
ここで図11を参照すると、例示的な実施形態による既存のアクセストークンのスコープの数を制限する処理を示すフローチャートが示されている。図11に示す処理は、例えば、図1の認証サーバ106または図2のデータ処理システム200のようなコンピュータで実施され得る。
【0087】
コンピュータが、クライアントの既存のアクセストークンに対応するスコープのリストを含むリフレッシュトークンを、スコープの制限されたセットを指定する新しいアクセストークンのリクエストとともにネットワークを介してクライアントから受信したとき、処理は開始する(ステップ1102)。制限されたスコープのセットは、クライアントがアクセスしたい保護されたリソースの特定のセットに固有である。コンピュータは、リフレッシュトークンのスコープの拡張されたセットを形成するために、リフレッシュトークンのスコープのリストに含まれる各スコープエイリアスを拡張する(ステップ1104)。言い換えると、リフレッシュトークンスコープの拡張されたセットは、スコープエイリアスを含まず、個々のスコープのみを含む。さらに、コンピュータは、指定されたスコープの拡張されたセットを形成するために、新しいアクセストークンのリクエストで指定されたスコープの制限されたセットに含まれる各スコープエイリアスを拡張する(ステップ1106)。同様に、指定されたスコープの拡張されたセットは、スコープエイリアスを含まず、個々のスコープのみを含む。
【0088】
コンピュータは、拡張されたリフレッシュトークンスコープのセットと拡張された指定されたスコープのセットとの間のインターセクションを生成する(ステップ1108)。さらに、コンピュータは、リフレッシュトークンスコープの拡張されたセットと指定されたスコープの拡張されたセットとの間のインターセクションに基づいて、新しいアクセストークンのリクエストに対応する有効なスコープの数を特定する(ステップ1110)。さらに、コンピュータは、1つ以上の予め定義されたスコープエイリアスを使用して、新しいアクセストークンのリクエストに対応する有効なスコープの数を減少させる(ステップ1112)。1つ以上の予め定義されたスコープエイリアスのそれぞれは、2つ以上のクライアントが指定した個々のスコープの集合を表す。言い換えると、コンピュータは、特定のスコープエイリアスにどのグループの個別スコープを含めるべきかを把握している。
【0089】
その後、コンピュータは、1つ以上の予め定義されたスコープエイリアスと、1つ以上の予め定義されたスコープエイリアスに含まれていない新しいアクセストークンのリクエストに対応する残りの有効なスコープを使用して、クライアントの新しいアクセストークンを生成する(ステップ1114)。その後、コンピュータは、新しいアクセストークンとリフレッシュトークンを、ネットワークを介してクライアントに送信する(ステップ1116)。その後、処理は終了する。
【0090】
ここで図12を参照すると、例示的な実施形態によるクライアントによって保護されたリソースへのアクセスを判定する処理を示すフローチャートが示される。図12に示される処理は、たとえば、図2の認証サーバ106のデータ処理システム200のようなコンピュータにおいて実装され得る。
【0091】
コンピュータが、リソースサーバによってホストされる保護されたリソースへのアクセスを許可するリクエストを、リソースサーバから1つ以上のスコープを含むクライアントのアクセストークンとともにネットワークを介して受信したときに処理は開始する(ステップ1202)。コンピュータは、アクセストークンのスコープの拡張されたセットを形成するために、アクセストークンの1つ以上のスコープに含まれる各スコープエイリアスを拡張する(ステップ1204)。言い換えると、アクセストークンのスコープの拡張されたセットは、スコープエイリアスを含まず、個々のスコープのみを含む。
【0092】
コンピュータは、拡張されたアクセストークンのスコープのセットを分析し、拡張されたアクセストークンのスコープのセットに保護されたリソースへのアクセスを許可するスコープが含まれているか否かについて判定を行う(ステップ1206)。コンピュータが、拡張されたアクセストークンのスコープのセットが保護されたリソースへのアクセスを許可するスコープを含んでいないと判定し、ステップ1206の出力が「NO」の場合、コンピュータは、クライアントによる保護されたリソースへのアクセスが拒否されることを示す指示をリソースサーバに送信する(ステップ1208)。その後、処理は終了する。コンピュータが、拡張されたアクセストークンのスコープのセットが保護されたリソースへのアクセスを許可するスコープを含むと判定し、ステップ1206の出力が「YES」の場合、コンピュータは、リソースサーバによってホストされる保護されたリソースに対応する認証ポリシーのセットを取得する(ステップ1210)。
【0093】
その後、コンピュータは、認証ポリシーのセットがクライアントによる保護されたリソースへのアクセスを許可するか否かについての判定を行う(ステップ1212)。コンピュータが、認証ポリシーのセットがクライアントによる保護されたリソースへのアクセスを許可しないと判定し、ステップ1212の出力が「NO」の場合、処理はステップ1208に戻り、コンピュータは、クライアントによる保護されたリソースへのアクセスが拒否されることを示す指示をリソースサーバに送信する。コンピュータが、認証ポリシーのセットがクライアントによる保護されたリソースへのアクセスを許可すると判定し、ステップ1212の出力が「YES」の場合、コンピュータは、クライアントによる保護されたリソースへのアクセスが許可されることを示す指示をリソースサーバに送信する(ステップ1214)。その後、処理は終了する。
【0094】
ここで図13を参照すると、例示的な実施形態によるアクセストークンのサイズを管理する処理を示すフローチャートが示されている。図13に示す処理は、例えば、図1の認証サーバ106または図2のデータ処理システム200のようなコンピュータにおいて実施され得る。
【0095】
コンピュータが、スコープのリストを含むクライアントのアクセストークンをコンピュータの認証アプリケーションプログラミングインターフェースに提示したときに、処理は開始する(ステップ1302)。スコープのリストの各スコープは、リソースサーバによってホストされる特定の保護されたリソースにアクセスする許可を定義する。コンピュータは、認証アプリケーションプログラミングインターフェースがスコープのリストのスコープの数の減少をリクエストしたことに応答して、スコープエイリアスを使用して減少したスコープの数を含む新しいアクセストークンをクライアントに返す(ステップ1304)。スコープエイリアスは、提示されたアクセストークンに含まれるスコープのリストの中から複数の特定のスコープを表す。認証アプリケーションプログラミングインターフェースは、クライアントがアクセスをリクエストしている保護されたリソースの特定のセットについて、どの個々のスコープをスコープエイリアスに含めるべきかを把握している。コンピュータがスコープエイリアスを使用するスコープの数を減らすことにより、コンピュータが生成するアクセストークンのスコープフィールドのサイズが小さくなり、アクセストークンのサイズが小さくなる。アクセストークンのサイズを小さくすると、ネットワークの応答時間が長くなり、保護されたリソースにアクセスする時間が短くなり、システム性能が向上する。その後、処理は終了する。
【0096】
したがって、本発明の例示的な実施形態は、アクセストークンのアクセス許可を同じレベルに維持しながら、アクセストークンベースの認証システムにおけるスコープの数を制限するためのコンピュータ実装方法、コンピュータシステム、およびコンピュータプログラム製品を提供する。本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。本発明の範囲および精神から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【国際調査報告】