(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-09
(45)【発行日】2023-11-17
(54)【発明の名称】ネイティブモバイルアプリケーション起点のOpenID Connect(OIDC)フロー及びセキュリティアサーションマークアップ言語(SAML)フローのためのシームレスなシングルサインオン(SSO)のための方法及びシステム
(51)【国際特許分類】
G06F 21/33 20130101AFI20231110BHJP
G06F 21/41 20130101ALI20231110BHJP
H04L 67/02 20220101ALI20231110BHJP
【FI】
G06F21/33
G06F21/41
H04L67/02
【外国語出願】
(21)【出願番号】P 2019228885
(22)【出願日】2019-12-19
【審査請求日】2022-06-17
(32)【優先日】2018-12-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519448326
【氏名又は名称】コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】スラパラジュ, ラウル
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2015-170319(JP,A)
【文献】米国特許第09729539(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/33
G06F 21/41
H04L 67/02
(57)【特許請求の範囲】
【請求項1】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法であって、前記方法は、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記方法はさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証
データを作成するステップと、
前記認証
データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証
データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップと
、
前記事前認証されたユーザーを前記モバイル装置上でシングルサインオン(SSO)法によって認証するステップと、
前記事前認証されたユーザーが認証されると、前記モバイル装置のオペレーティングシステム(OS)で前記事前認証されたユーザーについて呼び出されるインテントを登録するステップとを含み、
前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成される、方法。
【請求項2】
前記認証サーバーは、OpenID Connect(OIDC)プロバイダー又はセキュリティアサーションマークアップ言語(SAML)アイデンティティプロバイダーであり、前記リライングパーティサーバーは、OIDCリライングパーティ又はSAMLサービスプロバイダーである、請求項
1に記載の方法。
【請求項3】
前記認証トークンは、JSON Webトークン(JWT)である、請求項1
又は2に記載の方法。
【請求項4】
前記モバイル装置のオペレーティングシステムは、前記モバイル装置の前記ユーザーエージェントからの前記事前認証されたユーザーのための前記認証トークンとともに前記認証サーバーからの前記リダイレクションリクエストを継続的に待機して、前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストのフローの損失を回避する、請求項1~
3のいずれか一項に記載の方法。
【請求項5】
前記リライングパーティサーバー上でホスティングされている前記リソースについて、前記モバイル装置から前記リライングパーティサーバーにリクエストを送信するステップと、
前記リライングパーティサーバーからの前記リソースについてリダイレクションリクエストを前記モバイル装置上で前記リライングパーティサーバーから受信するステップと、
前記事前認証されたユーザーの詳細を含まない前記モバイル装置からのリクエストを前記認証サーバーに送信するステップと、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンについて前記リダイレクションリクエストを前記認証サーバーから前記モバイル装置に送信するステップとをさらに含む、請求項1~
4のいずれか一項に記載の方法。
【請求項6】
前記モバイル装置上で前記ネイティブアプリケーションをホスティングするステップをさらに含み、前記ネイティブアプリケーションは、前記リライングパーティサーバーによってホスティングされている前記リソースについて前記ユーザーを認証するように構成され、前記リライングパーティサーバーによってホスティングされている前記リソースは、オンプレミスサービス又はクラウドサービスである、請求項1~
5のいずれか一項に記載の方法。
【請求項7】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法であって、前記方法は、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記方法はさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証データを作成するステップと、
前記認証データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップとを含み、
前記事前認証されたユーザーのための前記認証トークンについての前記認証サーバーからの前記リダイレクションリクエストは、前記ユーザーエージェントを発見し、前記事前認証されたユーザーの前記認証トークンを取得するように前記認証サーバーによって構築される
、方法。
【請求項8】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法であって、前記方法は、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記方法はさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証データを作成するステップと、
前記認証データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップと、
前記ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを前記認証サーバーが検出した場合にのみ、前記ユーザーエージェントに問合せるステップ
とを含む
、方法。
【請求項9】
前記サポートされているモバイルユーザーエージェントは、AppleWebKit、Mobile Safari、又は537.36 Chromeのうちの一つ以上である、請求項
8に記載の方法。
【請求項10】
前記リライングパーティサーバーは、電気通信サービスプロバイダー(TSP)、アプリケーションサービスプロバイダー(ASP)、ストレージサービスプロバイダー(SSP)、及び/又はインターネットサービスプロバイダー(ISP)である、請求項1~
9のいずれか一項に記載の方法。
【請求項11】
前記事前認証されたユーザーが前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可されると、さらなるログインは必要とされない、請求項1~
10のいずれか一項に記載の方法。
【請求項12】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムであって、前記プロセスは、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記プロセスはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証
データを作成するステップと、
前記認証
データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証
データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップと
、
前記事前認証されたユーザーを前記モバイル装置上でシングルサインオン(SSO)法によって認証するステップと、
前記事前認証されたユーザーが認証されると、前記モバイル装置のオペレーティングシステム(OS)で前記事前認証されたユーザーのために呼び出されるインテントを登録するステップとを含み、
前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成される、プログラム。
【請求項13】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムであって、前記プロセスは、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記プロセスはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証データを作成するステップと、
前記認証データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップとを含み、
前記事前認証されたユーザーのための前記認証トークンについての前記認証サーバーからの前記リダイレクションリクエストは、前記ユーザーエージェントを発見し、前記事前認証されたユーザーの前記認証トークンを取得するように前記認証サーバーによって構築される、プログラム。
【請求項14】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムであって、前記プロセスは、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記プロセスはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証データを作成するステップと、
前記認証データを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証データが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップと、
前記ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを前記認証サーバーが検出した場合にのみ、前記ユーザーエージェントに問合せるステップとを含む、プログラム。
【請求項15】
前記認証サーバーは、OpenID Connect(OIDC)プロバイダー又はセキュリティアサーションマークアップ言語(SAML)アイデンティティプロバイダーであり、前記リライングパーティサーバーは、OIDCリライングパーティ又はSAMLサービスプロバイダーであり、
前記認証トークンは、JSON Webトークン(JWT)である、請求項
12~
14のいずれか一項に記載のプログラム。
【請求項16】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置であって、前記モバイル装置は、
プロセッサーと、
ユーザーインターフェースと、
オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、前記オペレーティングシステム及び前記ユーザーエージェントは、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信し、
前記ユーザーエージェントからの前記認証トークンの前記認証サーバー上での認証から作成された認証
データを受信するように構成され、前記認証
データは、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスすることを許可するように構成され、前記オペレーティングシステム及び前記ユーザーエージェントはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースに前記認証
データによりアクセスするように構成され
、
前記事前認証されたユーザーは、シングルサインオン(SSO)法によって前記モバイル装置上で認証され、前記事前認証されたユーザーが認証されると、前記ユーザーエージェントは、前記モバイル装置の前記オペレーティングシステムで前記事前認証されたユーザーのために呼び出されるインテントを登録するように構成され、
前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成される、モバイル装置。
【請求項17】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置であって、前記モバイル装置は、
プロセッサーと、
ユーザーインターフェースと、
オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、前記オペレーティングシステム及び前記ユーザーエージェントは、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信し、
前記ユーザーエージェントからの前記認証トークンの前記認証サーバー上での認証から作成された認証データを受信するように構成され、前記認証データは、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスすることを許可するように構成され、前記オペレーティングシステム及び前記ユーザーエージェントはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースに前記認証データによりアクセスするように構成され、
前記事前認証されたユーザーのための前記認証トークンについての前記認証サーバーからの前記リダイレクションリクエストは、前記ユーザーエージェントを発見し、前記事前認証されたユーザーの前記認証トークンを取得するように前記認証サーバーによって構築される、モバイル装置。
【請求項18】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置であって、前記モバイル装置は、
プロセッサーと、
ユーザーインターフェースと、
オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、前記オペレーティングシステム及び前記ユーザーエージェントは、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信し、
前記ユーザーエージェントからの前記認証トークンの前記認証サーバー上での認証から作成された認証データを受信するように構成され、前記認証データは、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスすることを許可するように構成され、前記オペレーティングシステム及び前記ユーザーエージェントはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースに前記認証データによりアクセスするように構成され、
前記ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを前記認証サーバーが検出した場合にのみ、前記ユーザーエージェントへの問合せが行われる、モバイル装置。
【請求項19】
前記認証サーバーは、OpenID Connect(OIDC)プロバイダー又はセキュリティアサーションマークアップ言語(SAML)アイデンティティプロバイダーであり、前記リライングパーティサーバーは、OIDCリライングパーティ又はSAMLサービスプロバイダーであり、前記認証トークンは、JSON Webトークン(JWT)である、請求項
16~18のいずれか一項に記載のモバイル装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ネイティブモバイルアプリケーション起点のOpenID Connect(OIDC)フロー及びセキュリティアサーションマークアップ言語(SAML)フローのためのシームレスなシングルサインオン(SSO)のためのコンピューターネットワーキングシステム及び方法に関する。
【背景技術】
【0002】
OpenID Connect(OIDC)1.0は、OAuth2.0プロトコル上のシンプルなアイデンティティレイヤーであり、OpenID Connectにより、クライアントは、認可サーバーによって行われる認証に基づいてエンドユーザーのアイデンティティを確認することと、相互運用可能かつRESTのようなやり方(Representational State Transferのようなやり方)でエンドユーザーについてのベーシックプロファイル情報を取得することとが可能となる。
【0003】
セキュリティアサーションマークアップ言語(SAML)は、ユーザーアイデンティティをアサートするSAML連携アイデンティティプロバイダー(IdP)とユーザーアイデンティティ情報を消費するSAML連携サービスプロバイダー(SP)との間でシングルサインオン情報をやり取りするためのXML規格である。
【0004】
これらの技術は両方ともシングルサインオン(SSO)ソリューションとして使用されるが、OIDC及びSAMLは、ユーザーがどのように認証されるかのプロセスの判断を認証プロバイダーに完全に委ねる。これらのSSOのためのオープンスタンダードをサポートするいくつかの認証プロバイダーは、「ユーザーを認証する」ための独自の方法又はプロセスを有しており、その出力/結果は、すべてのOIDCフロー及びSAMLフロー中における重要な一つのステップである。なぜなら、OIDCフローのこの段階では、認証コード(「Auth Code」)が認証プロバイダーによって生成され、OIDCリライングパーティに提供され、SAMLフローの場合はSAMLアサーションが構築され、SAMLリライングパーティ(SP)に送信されるからである。
【0005】
シングルサインオン(SSO)は、一組のログインクレデンシャルで複数のアプリケーションにユーザーがアクセスすることを可能にする認証プロセスである。シングルサインオンは、例えば、企業における共通の手続きであり、クライアントは、ローカルエリアネットワーク(LAN)に接続された複数のリソースにアクセスする。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の問題点を考慮して、モバイル装置上のモバイルアプリケーション(例えば、ネイティブアプリケーション)からのシングルサインオン(SSO)によるログインアクションの結果として開始されるOIDCフロー及びSAMLフローを可能にする方法であって、ユーザーがすでに認証されているため、認証のためのシステムによってユーザーが干渉されない方法を有することが望ましい。
【課題を解決するための手段】
【0007】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法が開示され、当該方法は、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップと、事前認証されたユーザーをモバイル装置上でシングルサインオン(SSO)法によって認証するステップと、事前認証されたユーザーが認証されると、モバイル装置のオペレーティングシステム(OS)で事前認証されたユーザーについて呼び出されるインテントを登録するステップとを含み、呼び出されるインテントは、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから受信すると、認証サーバーからの前記リダイレクションリクエストに応答するように構成される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法が開示され、当該方法は、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップとを含み、事前認証されたユーザーのための認証トークンについての認証サーバーからのリダイレクションリクエストは、ユーザーエージェントを発見し、事前認証されたユーザーの認証トークンを取得するように認証サーバーによって構築される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法が開示され、当該方法は、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップと、ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを認証サーバーが検出した場合にのみ、ユーザーエージェントに問合せるステップとを含む。
【0008】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムが開示され、当該プロセスは、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップと、事前認証されたユーザーをモバイル装置上でシングルサインオン(SSO)法によって認証するステップと、事前認証されたユーザーが認証されると、モバイル装置のオペレーティングシステム(OS)で事前認証されたユーザーのために呼び出されるインテントを登録するステップとを含み、呼び出されるインテントは、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから受信すると、認証サーバーからのリダイレクションリクエストに応答するように構成される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムが開示され、当該プロセスは、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該プロセスはさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップとを含み、事前認証されたユーザーのための認証トークンについての認証サーバーからのリダイレクションリクエストは、ユーザーエージェントを発見し、事前認証されたユーザーの認証トークンを取得するように認証サーバーによって構築される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための所定のプロセスを行うためにプロセッサーによって実行されるプログラムが開示され、当該プロセスは、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、モバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該プロセスはさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証データを作成するステップと、認証データをモバイル装置に送信するステップと、リライングパーティサーバーによって認証データが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップと、ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを認証サーバーが検出した場合にのみ、ユーザーエージェントに問合せるステップとを含む。
【0009】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置が開示され、当該モバイル装置は、プロセッサーと、ユーザーインターフェースと、オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、オペレーティングシステム及びユーザーエージェントは、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからのリダイレクションリクエストを受信し、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信し、ユーザーエージェントからの認証トークンの認証サーバー上での認証から作成された認証データを受信するように構成され、認証データは、認証されたユーザーに、リライングパーティサーバー上のリソースにアクセスすることを許可するように構成され、オペレーティングシステム及びユーザーエージェントはさらに、リライングパーティサーバー上でホスティングされているリソースに認証データによりアクセスするように構成され、事前認証されたユーザーは、シングルサインオン(SSO)法によってモバイル装置上で認証され、事前認証されたユーザーが認証されると、ユーザーエージェントは、モバイル装置のオペレーティングシステムで事前認証されたユーザーのために呼び出されるインテントを登録するように構成され、呼び出されるインテントは、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから受信すると、認証サーバーからのリダイレクションリクエストに応答するように構成される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置が開示され、当該モバイル装置は、プロセッサーと、ユーザーインターフェースと、オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、オペレーティングシステム及びユーザーエージェントは、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信し、ユーザーエージェントからの認証トークンの認証サーバー上での認証から作成された認証データを受信するように構成され、認証データは、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスすることを許可するように構成され、オペレーティングシステム及びユーザーエージェントはさらに、リライングパーティサーバー上でホスティングされているリソースに認証データによりアクセスするように構成され、事前認証されたユーザーのための認証トークンについての認証サーバーからのリダイレクションリクエストは、ユーザーエージェントを発見し、事前認証されたユーザーの認証トークンを取得するように認証サーバーによって構築される。
また、リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置が開示され、当該モバイル装置は、プロセッサーと、ユーザーインターフェースと、オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、オペレーティングシステム及びユーザーエージェントは、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信し、ユーザーエージェントからの認証トークンの認証サーバー上での認証から作成された認証データを受信するように構成され、認証データは、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスすることを許可するように構成され、オペレーティングシステム及びユーザーエージェントはさらに、リライングパーティサーバー上でホスティングされているリソースに認証データによりアクセスするように構成され、ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを認証サーバーが検出した場合にのみ、ユーザーエージェントへの問合せが行われる。
【0010】
上述の総括的な記載及び以下の詳細な記載は、両方とも例示及び説明のためのものであり、請求項に記載の発明のさらなる説明を提供することが意図されていると解釈されるべきである。
【図面の簡単な説明】
【0011】
添付の図面は、発明のさらなる理解をもたらすために含まれ、本明細書に組み込まれるか、又は本明細書の一部を構成する。図面は発明の実施形態を例示し、明細書とともに発明の原理を説明するのに役立つ。
【0012】
【
図1】ネイティブモバイルアプリケーションによってトリガされるOpenID Connect(OIDC)フロー及びセキュリティアサーションマークアップ言語(SAML)フローのためのシームレスなシングルサインオン(SSO)を有するシステムの例示である。
【
図2】例示的な実施形態に係るコンピューター又はサーバーの例示である。
【
図3A】例示的な実施形態に係るモバイル装置の例示である。
【
図3B】例示的な実施形態に係るモバイル装置の表示部又はユーザーインターフェースの例示である。
【
図4A】
図3Bに示すモバイル装置の表示部又はユーザーインターフェースの例示である。
【
図4B】
図3Bに示すモバイル装置の表示部又はユーザーインターフェースの例示である。
【
図5A】OIDCによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【
図5B】OIDCによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【
図6A】SAMLによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【
図6B】SAMLによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【発明を実施するための形態】
【0013】
発明の本好ましい実施形態に詳細に言及し、その例が添付の図面に例示される。可能な限り、同じか又は同様の部分に言及するために同じ参照符号が図面及び説明において使用される。
【0014】
図1は、ネイティブモバイルアプリケーションによってトリガされるOpenID Connect(OIDC)フロー及びセキュリティアサーションマークアップ言語(SAML)フローのためのシームレスなシングルサインオン(SSO)を有するシステム100の例示である。
図1に示すように、システム100は、コンピューター又はクライアント装置110と、少なくとも一つのモバイルコンピューター112と、一つ以上のSAML-SPリライングサーバー(SAML-SP A、SAML-SP B、SAML-SP C)120と、一つ以上のOIDCリライングパーティサーバー(OIDCリライングパーティA、OIDCリライングパーティB)121と、一つ以上のSAML-IdPサーバー130と、一つ以上のOIDCプロバイダーサーバー131とを含むことができる。例示的な実施形態によれば、コンピューター又はクライアント装置110、少なくとも一つのモバイルコンピューター112、一つ以上のSAML-SPリライングサーバー120、一つ以上のOIDCリライングパーティサーバー121、一つ以上のSAML-IdPサーバー130、及び一つ以上のOIDCプロバイダーサーバー131は、通信ネットワーク150を介して接続されることができる。例示的な実施形態によれば、通信ネットワーク又はネットワーク150は、公衆電気通信回線及び/又はネットワーク(例えば、LAN又はWAN)とすることができる。通信ネットワーク150としては、例えば、本開示の実施形態に従ういずれかの電気通信回線及び/又はネットワークを挙げることができ、限定はしないが、電気通信又は電話回線、インターネット、イントラネット、図示のローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又は無線周波数(RF)及び/又は赤外線(IR)送信を用いた無線接続を含む。
【0015】
また、例えば、アクセスポイント140は、通信ネットワーク150と通信して、モバイルコンピューター(例えばスマートフォン)112と通信ネットワーク150との間に無線又はセルラーデータ通信を提供することができる。例示的な実施形態によれば、アクセスポイント140は、Wi-Fi装置が有線ネットワークに接続することを可能にするいずれかのネットワーキングハードウェア装置、又は、セルラー装置、例えばモバイルコンピューター(又はスマートフォン)112が有線ネットワーク150に接続することを可能にすることができるハードウェア装置とすることができる。
【0016】
OpenID Connect(OIDC)は、OAuth2.0プロトコル上のアイデンティティレイヤーであり、コンピューティングクライアントが、認可サーバーによって行われる認証に基づいてエンドユーザーのアイデンティティを確認することと、相互運用可能かつRESTのようなやり方でエンドユーザーについてのベーシックプロファイル情報を取得することとが可能となる。専門用語では、OpenID Connectは、JSON(JavaScript Objection Notation)をデータフォーマットとして用いてRESTful(Representational State Transfer)、HTTP(ハイパーテキストトランスファプロトコル)、及びAPI(アプリケーションプログラムインターフェース)を特定する。OpenID Connectは、例えば、Webベースの移動可能なJavaScriptクライアントを含む様々なクライアントが、認証されたセッション及びエンドユーザーについての情報をリクエストし、受信することを可能にする。仕様スイートは、アイデンティティデータの暗号化、OpenIDプロバイダーの発見、及びセッション管理といった任意の機能をサポートすることもできる。
【0017】
図1に示すように、例えば、認証コードは一つ以上のOIDCプロバイダー131(例えば認証プロバイダー)によって生成されることができ、認証コードは次いで、一つ以上のOIDCリライングパーティサーバー121に提供される。例示的な実施形態によれば、一つ以上のOIDCリライングパーティサーバー121は、例えば、ここに開示される一つ以上のセキュアなソフトウェアアプリケーションへのクライアントアクセスを提供するように構成されたサーバーとすることができる。
【0018】
セキュリティアサーションマークアップ言語(SAML)は、ユーザーアイデンティティをアサートするSAML連携アイデンティティプロバイダー(SAML-IdP)とユーザーアイデンティティ情報を消費するSAML連携サービスプロバイダー(SAML-SP)との間でシングルサインオン(SSO)情報をやり取りするためのXML規格である。SAMLv2.0(セキュリティアサーションマークアップ言語・バージョン2)は、IDP起点のフロー及びSP起点のフローをサポートする。IdP起点のSAMLSSOフローでは、SAML-IdPがユーザーアイデンティティについてのSAMLシングルサインオンアサーションを作成し、当該SAMLシングルサインオンアサーションをSP(サービスプロバイダー)120に未承諾の形式で送信する。SP起点のSAMLSSOフローでは、SPが連携プロセスの第1のステップとしてSAML-IdP130に送信されるSAML2.0AuthnRequest(例えば認証リクエスト)を作成し、次いでSAML-IdPがSAMLレスポンスに応答する。これらのインタラクションは両方とも互いに非同期である。
【0019】
例示的な実施形態によれば、SAML-IdPは、セキュリティアサーションマークアップ言語(SAML)のシングルサインオン(SSO)プロファイルと共に認証アサーションを発行するシステムエンティティである。SAMLドメインモデルにおいて、SAMLオーソリティは、SAMLアサーションを発行するいずれかのシステムエンティティである。SAMLオーソリティの2つの重要な例は、認証オーソリティ及び属性オーソリティである。
【0020】
例示的な実施形態によれば、複数のSAML-SPサーバー120は、セキュリティアサーションマークアップ言語のシングルサインオン(SSO)プロファイルと共に認証アサーションを受信し受け付けるように構成される。SAMLドメインモデルにおいて、SAML-SPサーバー120(例えばSAMLリライングパーティ)は、他のシステムエンティティから情報を受信し受け付けるいずれかのシステムエンティティである。特に興味深いのは、SAMLオーソリティによって発行されるSAMLアサーションを受信し受け付けるSAMLリライングパーティである。重要な種類のSAMLオーソリティは、SAMLアイデンティティプロバイダー、SAMLのSSOプロファイルと共に認証アサーションを発行するシステムエンティティである。そのようなアサーションを消費するリライングパーティは、SAMLサービスプロバイダー(又は、ドメインが分かれば単にサービスプロバイダー)と呼ばれる。したがって、SAMLサービスプロバイダー(SAML-SP)は、SAMLアイデンティティプロバイダー(SAML-IdP)によって発行される認証アサーションを受信し受け付けるシステムエンティティである。
【0021】
例示的な実施形態によれば、一つ以上のSAML-SPリライングサーバー120及び/又は一つ以上のOIDCリライングパーティサーバー121は、企業サーバー、例えばコンサルティング、法律、不動産、通信、ストレージ、処理を組織に提供するいずれかのエンティティとすることができる。例えば、一つ以上のSAML-SPリライングサーバー120及び/又は一つ以上のOIDCリライングパーティサーバー121は、サードパーティ又はアウトソーシングサプライヤ、例えば、電気通信サービスプロバイダー(TSP)、アプリケーションサービスプロバイダー(ASP)、ストレージサービスプロバイダー(SSP)、及びインターネットサービスプロバイダー(ISP)とすることができる。
【0022】
例えば、TSPは、従来から電話及び同様のサービスを提供してきた通信サービスプロバイダーの一種であり、既存の地域通信事業者、競合する地域通信事業者、及びモバイル無線通信会社を含むことができる。ASPは、コンピューターベースのサービスをネットワークを通じて顧客に提供する事業である。例えば、ASPは、例えばHTTPなどの標準プロトコルを用いて(顧客関係管理などの)特定のソフトウェアアプリケーションへのアクセスを提供することができる。SSPは、コンピューターストレージスペース及び関連するマネジメントサービス、定期バックアップ、ならびにアーカイブを提供するいずれかの企業である。
【0023】
図2は、コンピューター110、モバイルコンピューター112、SAML-SPサーバー(又はSAML-SPリライングサーバー)120、ODICリライングパーティサーバー121、SAML-IdPサーバー130、又はOIDCプロバイダーサーバー131とすることができるコンピューティング装置200の例示である。
図2に示すように、例示的なコンピューティング装置200は、プロセッサー又は中央処理装置(CPU)202と、ソフトウェアプログラム及びデータを保存するための一つ以上のメモリー204とを含むことができる。プロセッサー又はCPU202は、コンピューティング装置200の機能の少なくとも一部分を作動させ、かつ/又は制御するコンピュータープログラムの指示を実行する。コンピューティング装置200は、入力部206と、表示部又はグラフィカルユーザーインターフェース(GUI)208と、通信ネットワーク(又はネットワーク)150に接続されるネットワークインターフェース(I/F)210とを含むこともできる。バス212は、コンピューティング装置200内の様々な部材202,204,206,208,210を接続することができる。
【0024】
例示的な実施形態によれば、コンピューティング装置200は、例えば、コンピューティング装置200のメモリー204内のWebブラウザー(図示せず)にアクセスすることができる表示部又はグラフィカルユーザーインターフェース(GUI)208を含むことができる。コンピューティング装置200は、コンピューターハードウェアを管理し、様々なソフトウェアプログラムの効率的な実行のための共通のサービスを提供するオペレーティングシステム(OS)も含む。例示的な実施形態によれば、CPU202のOSは、Linux(登録商標)又はWindows(登録商標)ベースのオペレーティングシステムである。ソフトウェアプログラムは、例えば、アプリケーションソフトウェア及びプリンタードライバーソフトウェアを含むことができる。例えば、プリンタードライバーソフトウェアは、例えばコンピューティング装置200と接続されたマルチファンクションプリンター又はプリンター(図示せず)を制御し、プリンタードライバーソフトウェアは、通信ネットワーク150を介してインストールされる。ある実施形態では、プリンタードライバーソフトウェアは、画像及び/又はドキュメントデータに基づいてプリントジョブ及び/又はドキュメントを生成することができる。
【0025】
図3Aは、例示的な実施形態に係るモバイル装置300の例示である。
図3Aに示すように、例示的なモバイル装置300は、プロセッサー又は中央処理装置(CPU)302と、ソフトウェアプログラム及びデータを保存するための一つ以上のメモリー304と、オペレーティングシステム320と、SPS-SSOエージェント322とを含むことができる。例示的な実施形態によれば、メモリー304はSPS-SSOエージェント322を含み、SPS-SSIエージェント332は、シングルサインオン(SSO)プロトコルによるモバイル装置300上のモバイルアプリケーションにおけるOIDCフロー及びSAMLフローを可能にするための一つ以上のプロセスを行うように構成される。プロセッサー又はCPU302は、コンピュータープログラムの指示を実行し、モバイル装置300の機能の少なくとも一部分を作動させ、かつ/又は制御する。モバイル装置300は、入力部306と、表示部又はグラフィカルユーザーインターフェース(GUI)308と、通信ネットワーク(又はネットワーク)150に接続されるネットワークインターフェース(I/F)310とを含むこともできる。バス312は、モバイル装置300内の様々な部材302,304,306,308,310を接続することができる。
【0026】
例示的な実施形態によれば、モバイル装置300は、例えば、モバイル装置300のメモリー304内のWebブラウザー(図示せず)にアクセスすることができる表示部又はグラフィカルユーザーインターフェース(GUI)308を含むことができる。モバイル装置300は、コンピューターハードウェアを管理し、様々なソフトウェアプログラムの効率的な実行のための共通のサービスを提供するオペレーティングシステム(OS)320も含む。例示的な実施形態によれば、モバイル装置300のOS320は、Linux又はWindows(登録商標)ベースのオペレーティングシステムである。ソフトウェアプログラムは、例えば、アプリケーションソフトウェア及びプリンタードライバーソフトウェアを含むことができる。例えば、プリンタードライバーソフトウェアは、例えばモバイル装置300と接続されたマルチファンクションプリンター又はプリンター(図示せず)を制御し、プリンタードライバーソフトウェアは、通信ネットワーク150を介してインストールされる。ある実施形態では、プリンタードライバーソフトウェアは、画像及び/又はドキュメントデータに基づいてプリントジョブ及び/又はドキュメントを生成することができる。
【0027】
例示的な実施形態によれば、モバイル装置300は、例えば指紋認識もしくは認証、又はモバイル装置上で現在実施されているかもしくは実施されることになる他の認証プロトコルによってユーザーを認証する認証モジュールも含むことができることが好ましい。例えば、ユーザー名及びパスワードなどのクレデンシャルを使用するパスワード認証プロトコルを使用することができる。例示的な実施形態によれば、認証モジュールは、モバイル装置300へのアクセスのためのものであり、かつ/又はここに開示されるシングルサインオン(SSO)プロセスに関連して使用することができる。
【0028】
図3Bは、例示的な実施形態に係るモバイル装置300の表示部又はユーザーインターフェース(グラフィカルユーザーインターフェース(GUI)としても知られている)306の例示である。
図3Bに示すように、表示部又はユーザーインターフェース306は、頻繁に使用されるアプリケーション、例えば、電話モジュール、電子メールクライアントモジュール、ブラウザーモジュール、ビデオ・ミュージックプレイヤーモジュール、メッセージモジュール、カレンダー、カメラモジュール、地図、天気、ならびにモバイル装置300及び様々なアプリケーションのための設定へのアクセスを提供するアプリケーション又はモジュールのための複数のアイコン330を有するタッチスクリーン(又はタッチパッド)307とすることができる。例示的な実施形態によれば、表示部又はユーザーインターフェース306は、例えば、OIDCによるSSOログイン用アプリケーションのためのアイコン332(「アプリA」)、及びSAMLによるSSOログイン用アプリケーションのためのアイコン334(「アプリB」)も含む。
【0029】
図4Aは、
図3Bに示すモバイル装置300の表示部又はユーザーインターフェース400の例示である。
図4Aに示すように、モバイル装置300のユーザーインターフェース400上でタッチ又は他の既知の方法によってアイコン332(「アプリA」)が選択されると、ユーザーインターフェース400は、例えば、「ユーザー名又は電子メール」410及び「パスワード」412」のリクエストをユーザーに表示する。また、表示部又はユーザーインターフェース400は、「サインイン」420を規定するアイコン、あるいは「SSO使用」430のアイコンをユーザーに提示し、
図4Bに示すユーザーインターフェース450でユーザーに入力を促す。
【0030】
図4Bは、SSOサインインのための
図3Bに示すモバイル装置300の表示部又はユーザーインターフェース450の例示である。
図4Bに示すように、SSOページは、例えば「電子メール又はドメイン」460をリクエストし、「サインイン」アイコン470を含む。
【0031】
例示的な実施形態によれば、ユーザーのモバイル装置112上でのOpenID Connect(OIDC)フロー及びセキュリティアサーションマークアップ言語(SAML)フローのためのネイティブモバイルアプリケーション起点のシングルサインオン(SSO)のための方法及びシステムが開示される。ここに開示される方法及びシステムは、ユーザー(例えば、クライアント装置又はモバイル装置112)と認証プロバイダー(例えば、SAML-IDPサーバー130又はOIDCプロバイダーサーバー131)との間で事前認証の目的でエージェント/プロキシとして機能するアプリケーション(例えば、モバイルアプリケーション(又はソフトウェアコンポーネント)を導入する。例示的な実施形態によれば、モバイルアプリケーション(又はソフトウェアコンポーネント)はモバイル装置112上のインターフェース332,334であり、例えば、オンプレミスソフトウェア(例えば、オンプレミスレガシー)及び/又はオフプレミスソフトウェア(例えば、クラウドサービス)からのいずれかのサービスをユーザーが利用する(又はアクセスする)ことができる前にユーザーが認証される。例示的な実施形態によれば、シングルサインオン(SSO)法(又はプロトコル)によるユーザーの認証は、例えば、指紋、顔識別もしくは顔認識、虹彩検出などの生体認証、及び/又はユーザー名及びPIN(個人識別番号)によって行われることができる。ここに開示されるモバイルアプリケーションは、例えば、成功した認証の終わりにユーザーの代理でJSON Webトークン(JWT)を含むことができる。
【0032】
例示的な実施形態によれば、モバイル装置112は、例えば、認証プロバイダー(例えば、OIDCプロバイダー(又はOIDC-OP)131又はSAML-IdPサーバー130)からのリダイレクションリクエストを継続的に待機し、処理されたリダイレクションリクエストへのレスポンスによって事前認証されたユーザーに対応する現在のアクティブなJSON Webトークン(JWT)を提示する(すなわち、ユーザーを一意的に識別する)エージェントコードソフトウェアコンポーネントの形態のアプリケーションを含むことができる。
【0033】
例示的な実施形態によれば、OIDC-OP131又はSAML-IdP130から、対応する認証ソリューションモバイルアプリケーション322上で動作しているエージェントへのリダイレクションは、規則的なOIDC/SAMLフローに追加することができる。例示的な実施形態によれば、例えば、指定され登録されたモバイルアプリケーションへの追加的なリダイレクションビジットは、当初のフロー(例えば、ネイティブモバイルアプリケーションによって開始されたフロー)を盗用することができるため、コンテクストは失われない。例示的な実施形態によれば、事前認証されたユーザーについてのいずれのコンテクストも有していないモバイルアプリケーションからフローが開始するため、フローの目的は、いずれかの認証詳細を提示するよう問い合わせることをユーザーに促すことを回避することとすることができる。
【0034】
例示的な実施形態によれば、フローが発生したユーザーエージェント(UA)を認証プロバイダー(SAML-IdP130又はOIDC-OP131)が検出した場合にのみ、認証プロバイダー(SAML-IdP130又はOIDC-OP131)はフローを盗用してモバイルアプリケーションカウンターパート上のエージェントに問合せる。例えば、サポートされるモバイルユーザーエージェントは、アップル(登録商標)WebKit、Mobile Safari、及び537.36(GeckoのようなKHTML)Chrome(登録商標)を含むことができる。また、モバイルブラウザーによるユーザーエージェントは、ブラウザーのバージョン、装置モデル、オペレーティングシステム(OS)、及び他の要因に応じて異なる可能性がある。
【0035】
例示的な実施形態によれば、認証プロバイダー(SAML-IdP130又はOIDCプロバイダー131)において、「Auth」エンドポイントにヒットするOIDC「Auth」フロー又はSAMLの「認証リクエスト」フローは、上記で開示した変更を取り込み、追加的なリダイレクションが生じるため、当該フローは一時的な係属状態を継続して、ユーザーのために認証プロバイダーによって先に作成されたJWTトークンを取得することができる。
【0036】
認証プロバイダーのクエリリダイレクトへのレスポンスによってJWTトークンを認証プロバイダーが受信した後、認証プロバイダーはトークンを検証し、ドメインクッキーを作成し、中断していたOIDC又はSAMLフローを再開し、認証レスポンスが送り返されると、作成したクッキー(すなわちSet-Cookie HTTPレスポンスヘッダー)を設定する。例示的な実施形態によれば、さらなる通信には、(当初のOIDCフロー及びSAMLフローが発生した)ネイティブモバイルアプリケーション・ユーザーエージェント上に設定されているドメインクッキーを使用する。
【0037】
例示的な実施形態によれば、アプリケーションログインフローのためにUIレンダリング技術が用いる、モバイル装置のための様々なネイティブアプリケーションが存在する。例えば、外部のブラウザーを起動するアプリケーションもあれば、WebViewなどのアプリ内ブラウザーを使用するアプリケーションもあれば、SFSafariViewController及びChromeTabなどの最新のトレンドを使用するアプリケーションもある。例示的な実施形態によれば、本開示において再び提示されるエージェントコードはエージェントの動作に基づいてユーザーエージェントに依存しない(すなわち、多くの種類のプラットフォーム又はオペレーティングシステムと互換性がある)ことを伝え、シングルサインオン(SSO)ベースのログインフローと、エージェント上の対応するリダイレクト動作とをサポートするネイティブモバイルアプリケーション、例えばGoogle(登録商標) Drive and BoxにおいてOIDC及びSAMLのためのSSOフローにシームレス性を提供するという最終目標を実現するために3つの例が開示される。
【0038】
例示的な実施形態によれば、例えば、アプリケーションはSafari(登録商標)又はChromeなどのシステムブラウザーを使用し、システムブラウザーは独自のユーザーエージェントを有する異なるアプリケーションとして機能する。例示的な実施形態によれば、エージェントはリダイレクトリクエストを受信し、暗号化されたURIパラメータを復号して、暗号化されたURIが真正の認証プロバイダーのものであることを確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのJWT(すなわちトークン)を取得することを試みる。成功した場合、サーバーは認証サーバーに到達するようユーザーエージェントをリダイレクトし、JWTを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録されることを記録し、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【0039】
例示的な実施形態によれば、例えば、WKWebViewなどのWeb View Componentを用いるアプリケーションでは、各WebViewがサンドボックスされ、アプリケーションコンテンツ内にブラウザーが出現する(ユーザーがアプリケーションから離れることはない)。例示的な実施形態によれば、エージェントがリダイレクトリクエストを受信し、暗号化されたURIパラメータを復号して、本当に真正の認証プロバイダーのものであるか確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのJWT(すなわちトークン)を取得することを試みる。成功した場合、認証サーバーに到達するようユーザーエージェントをリダイレクトし、JWTを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録され、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【0040】
例示的な実施形態によれば、例えば、SFSafariViewController(IOS)又はChromeTabを用いるアプリケーションについては、アプリケーションコンテンツ内にブラウザーが出現する(すなわち、ユーザーがアプリケーションから離れることはない)。例示的な実施形態によれば、エージェントがリダイレクトリクエストを受信し、暗号化されたURIパラメータを復号して、暗号化されたURIパラメータが真正の認証プロバイダーのものであるか確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのJWT(すなわちトークン)を取得することを試みる。成功した場合、認証サーバーに到達するようユーザーエージェントをリダイレクトし、JWTを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録され、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【0041】
図5A及び
図5Bは、OIDCによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャート500である。
図5A及び
図5Bに示すように、ステップ501において、モバイル装置(例えば、スマートフォン)112を有するユーザーがユーザーインターフェース(又はグラフィカルユーザーインターフェース(GUI)上のモバイルアプリケーションアイコン「アプリA」332をクリックする。アイコン「アプリA」332が開かれると、ユーザーは、
図4Bに示すようにグラフィカルユーザーインターフェース上の「SSO使用」アイコンを選択する。
図4Bに示すように、次いでユーザーは、電子メール又はドメインを入力し、「SPSでログイン」でログインする。ステップ502において、(SPSクライアント上で動作している)SPSモバイルSSOエージェントは、モバイル装置112のオペレーティングシステム(OS)で呼び出されるインテント(例えば、handler:SpsMobile SsoAuthAgent;/call_back)を登録する。
【0042】
ステップ503において、モバイルアプリケーションは、ログインリクエスト(例えば、“GET:Login”)をサービスプロバイダーWebサーバー(OIDC-RP)121に送信する。ステップ504において、サービスプロバイダーWebサーバー(OIDC-RP)121は、URLリダイレクトレスポンス(例えば、302 Redirect(例えば、URLリダイレクション))をモバイルアプリケーション332に送信する。ステップ505において、モバイルアプリケーション332は、認証リクエスト(例えば、“GET:OAuth2 Auth EndPoint、Flow:Auth Code Flow,resp_type=code”)をアイデンティティプロバイダー、例えばSPS-Authサービス(OIDC-OP)131に送信する。例示的な実施形態によれば、ステップ505において、認証リクエストは、ログインしたユーザーについての詳細(例えば、ユーザー名/ドメイン名)は何も含まない。ステップ506において、OIDC-OPは、ステップ505におけるモバイルアプリケーションからの認証リクエストをチェックして、クッキー認証が存在する(例えば、クッキー認証が有効である)かどうか判定する。クッキー認証が有効である(すなわちクッキー認証が存在する)場合、処理はステップ515に続く。しかし、ステップ506においてクッキー認証が有効でない(すなわち認証クッキーが存在しない)場合、処理はステップ507に続き、OIDC-OP131はユーザーエージェントを発見し、対象のモバイル装置上のSPSクライアント上のマッピングされた「登録されたモバイルSSO認証インテントハンドラー」コールバックを取得する。
【0043】
ステップ508において、OIDC-OP131は、「登録されたモバイルSSO認証インテントハンドラー」を訪問するようユーザーエージェントをリダイレクトするURLリダイレクションリクエスト(例えば、HTTP302)を構築する。ステップ509において、OIDC-OP131は、URLリダイレクションレスポンス(例えば、302:SPS Custom Mobile Application Redirection,Redirection Scheme:“SpsMobileSsoAuthAgent”,instead of a regular “https”)をモバイルアプリケーション332に送信する。ステップ510において、URLリダイレクションレスポンス(例えば、HTTP 302 request triggers SpsMobileSsoAuthAgent:/call_back)がSPS-SSOエージェント(例えば、(SPSクライアント内で動作している)SPSモバイルSsoエージェント)322に送信される。ステップ511において、SPS-SSOエージェントは、現在のアクティブなJWT(すなわちトークン)(例えば、302:/mobileid/v1/jwt/(JWT Value))をモバイルアプリケーション332に送信する。ステップ512において、SPS-SSOエージェントから受信された現在のアクティブなJWTがリクエスト(例えば、GET:/mobiledi/v1/jwt/(JWT Value))とともにOIDC-OP131に送信される。
【0044】
ステップ513において、OIDC-OP131は、例えばJWT(すなわちトークン)を検証して、SPSエージェントに成りすましている「不正モバイルアプリ/エージェント」を排除する。ステップ514において、OIDC-OP131がJWT(すなわちトークン)を検証した場合、クッキーが作成される。ステップ515において、OIDC-OP131は、レスポンス(例えば、302 Redirect with a generated session Cookie with “OIDC Registered CallBack Please”)を送信し、作成されたクッキーは、認証コード(例えば、クッキー)がURLクエリストリングにおいて利用可能であることを示す。モバイルアプリケーション332は認証コードを受信し、ステップ516においてサービスのリクエスト(例えば、GET:ODIC Registered Callback,code=XXXXX)をOIDC-RP121に送信する。ステップ517において、OIDC-RPはモバイルアプリケーション332からのリクエストを受信し、ユーザーを認証するようリクエストをOIDC-OP131に送信する(例えば、POST:ID Token Request(Exchange),Authentication code = XXXXX)。ステップ518において、OIDC-OP131はリクエストを受信し、(JWT(すなわちトークン)及び対応するクッキーによって)ユーザーが認証されたことを確認し、OKサクセスステータスレスポンス(例えば、HTTP 200 OK:ID Token ----> JWT which Base-64 Encoded ID Token,Signed by SPS)をOIDC-RP121に送信する。ステップ519において、OIDC-RP121は、JWT(すなわちトークン)が確認され、リクエストが成功したことを示すレスポンス(例えば、200 OK:ID Token as JWT)をモバイルアプリケーションに送信する。ステップ520において、モバイルアプリケーションはサクセスレスポンスを受信し、アプリケーション又はサービスのリクエスト、例えば、“GET:Either Home Page or any page referring to Configured ‘StartURL’ ParamをOIDC-RP121に送信する。ステップ521において、OIDC-RPはIDトークンを検証し、IDトークンが有効であれば、ユーザーは認証されるものと見なされ、セッション識別子(ID)が作成される。ステップ522において、サクセスレスポンス(例えば、200 OKレスポンス)がモバイルアプリケーション332に送信される。
【0045】
図6A及び
図6Bは、SAMLによるSSOログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャート600である。
図6A及び
図6Bに示すように、ステップ601において、モバイル装置(例えばスマートフォン)112を有するユーザーが、ユーザーインターフェース(又はグラフィカルユーザーインターフェース(GUI)上のモバイルアプリケーションアイコン「アプリB」334をクリックする。アイコン「アプリB」334が開かれると、
図4Bに示すように、ユーザーはグラフィカルユーザーインターフェース上で電子メールID及び/又はドメイン名を入力する。ステップ602において、(SPSクライアント上で動作している)SPSモバイルSSOエージェント320は、モバイル装置112のIOS又はアンドロイド
(登録商標)(OS)上にhttp://localhoste/sps-sso-redirect/”を登録する(すなわちホワイトリストされる)。
【0046】
ステップ603において、モバイルアプリケーション334は、リクエスト(例えば、“GET:Login”)をサービスプロバイダーWebサーバー(SAML-SP)120に送信する。ステップ604において、モバイルアプリケーション334からのリクエストに応答して、サービスプロバイダーWebサーバー(SAML-SP)120は、認証リクエスト、例えば、SP起点のSAML2認証リクエストをSPS認証サービス(SAML-IdP)130に送信する。SPS認証サービス(SAML-IDP)130への認証リクエスト(例えば、SP起点のSAML2認証リクエスト)は、ログインしたユーザーについての詳細(例えば、ユーザー名/ドメイン名)を何も含まない。ステップ605において、認証リクエスト(例えば、SP起点のSAML2認証リクエスト)がSPS認証サービス(SAML-IDP)130によって受信され、クッキー認証が有効かどうか判断する。クッキー認証が有効であれば、処理はステップ615に続く。しかし、クッキー認証が有効でなければ、処理はステップ606に続き、SAML-IDP130がユーザーエージェントを突き止め(又は発見し)、対象のモバイル装置のSPSクライアント上に「登録されたモバイルSSO認証インテントハンドラー」コールバックをマッピングする。ステップ607において、SAML-IdP130は、URLリダイレクションリクエストを構築する(例えば、「登録されたモバイルSSO認証インテントハンドラー」を訪問するようユーザーエージェントをリダイレクトする“Construct a HTTP302)。ステップ608において、SAML-IdP130は、ステップ609で作成された暗号化メッセージを含むURLリダイレクションリクエスト(例えば、“302:SPS Custom Mobile App Redirection,Redirection Scheme:http://localhost/sps-sso-redirect/challenge=8971982jhjhsbjhs)をモバイルアプリケーション334に送信する。
図6Bに示すように、ステップ609において、SAML-IdP130は、「(このサーバー及びエージェントにのみ知られている)事前共有シークレットを復号化し、モバイル装置112上のエージェントをリダイレクトするためのレスポンスを送信する。
【0047】
ステップ610において、モバイルアプリケーション334は、SAML-IdP130によって提供される秘密鍵をステップ611において検証するために、リクエスト(例えば、“Triggers http://localhost/sps-sso-redirect/challenge=897198jhjhsbjhs”)をSPS-SSOエージェント322に送信する(例えば、「暗号化されたチャレンジを認証サーバー公開鍵で検証し、成功した(サーバーのみが有するサーバーの秘密鍵によってチャレンジが暗号化された)場合、JWTを提供することによってさらに前進する。そうでなければリクエストを取り下げる(例えばレスポンスなし)。End SSOフローは、httpがタイムアウトするまで、ユーザー側でハングアップする)。
【0048】
ステップ612において、SPS-SSOエージェント322は、URLリダイレクションレスポンスをモバイルアプリケーション334にJWT(トークン)(例えば、“302/mobileid /v1/jwt(JWT Value)/”)とともに送信する。ステップ613において、モバイルアプリケーション334は、JWT(トークン)の検証を要請するリクエスト(例えば、“GET:/mobileid/v1/jwt/(JWT value)/)をSAML-IdP130に送信する。ステップ614において、SAML-IdP130は、モバイルアプリケーションからリクエストを受信し、JWT(トークン)を検証する(例えば、「JWTを検証し、SPSエージェントに成りすましている不正なモバイルアプリ/エージェントを排除する」)。ステップ615において、JWT(トークン)が有効であれば、SAML-IDP130は、SAMLアサーション及びSAMLレスポンスを構築する。ステップ616において、SAML-IDP130は、URLリダイレクションレスポンスをモバイルアプリケーション334に送信する(例えば、“302 Redirect,with SAMLResponse and Generated Session Cookie”)。ステップ617において、モバイルアプリケーションはSAMLレスポンスを受信し、ログインしたユーザーについてSAMLレスポンスをサービスプロバイダー(SAML-SP)120に送信する。ステップ618において、SAML-SP120は、ログインしたユーザーが認証されたことを示すサクセスレスポンスをモバイルアプリケーション334に送信する(例えば、“200 OK:SAML Response Verified, User is Authenticated, SP’s Oauth2 access toke the native Mobile Application can use towards the user)。ステップ619において、モバイルアプリケーション(すなわちBoxネイティブアプリケーション)のユーザーは、「box認証された」ユーザーとして扱われ、SAML-SP120上のサービスへのアクセスはすべてOauth2アクセストークンを伴う。
【0049】
例示的な実施形態によれば、開示されている方法及びプロセスは、非一時的なコンピューター読み取り可能媒体上で実施されることができる。非一時的なコンピューター読み取り可能媒体は、磁気記録媒体、光磁気記録媒体、又は将来開発されることになるいずれかの他の記録媒体であってもよく、すべて同じやり方で本発明に適用可能であると考えることができる。主要な複製製品及び二次的な複製製品等を含むそのような媒体の複製は、もちろん上記の媒体と同等であると考えられる。さらに、本発明の実施形態がソフトウェア及びハードウェアの組合せであっても、発明の概念からは全く逸脱しない。本開示は、そのソフトウェア部分が予め記録媒体に書き込まれており、動作において必要に応じて読み込まれることになるように実施されても良い。
【0050】
ここで使用される限りにおいて、単数で記載され「a」又は「an」という語が前に付けられた要素又はステップは、明示的に記載されない限り、複数の要素又はステップを除外していないと理解されるべきである。さらに、本開示の「例示的な実施形態」又は「一実施形態」という言及は、記載されている特徴を同じく組み込んだ追加的な例の存在を除外すると解釈されることを意図していない。
【0051】
本書類の末尾にある特許請求項は、従来のミーンズプラスファンクション文言が明確に記載されていない限り、例えば「ための手段」又は「ためのステップ」という文言が請求項に明確に記載されていない限り、35U.S.C.§112(f)に基づいて解釈されることを意図していない。
【0052】
発明の範囲又は精神から逸脱することなく本発明の構造に様々な変形及び変更を行うことができることは、当業者にとっては明らかであろう。以上に鑑み、本発明は、下記の請求項及びそれらの等価物の範囲に入るならば本発明の変形及び変更を対象とすることが意図される。