(57)【要約】      （修正有）【課題】リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法を提供する。【解決手段】システムにおいて、モバイルコンピューター１１２は、事前認証されたユーザーのためのユーザーエージェントを有する。モバイルコンピューター１１２は、ＯＩＤＣリライングパーティＡ１２１上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバー（ＯＩＤＣプロバイダー１３１）からリダイレクションリクエストを受信する。モバイルコンピューター１１２のユーザーエージェントは、認証トークンを認証サーバーに送信する。認証サーバーは、認証トークンを認証し、認証されたユーザーがＯＩＤＣリライングパーティＡ１２１上のリソースにアクセスするための認証クッキーを作成する。【選択図】図１
2020126602.tif 000002
【特許請求の範囲】
【請求項１】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法であって、前記方法は、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記ネイティブモバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記方法はさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証クッキーを作成するステップと、
前記認証クッキーを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証クッキーが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップとを含む、方法。
【請求項２】
前記事前認証されたユーザーを前記モバイル装置上でシングルサインオン（ＳＳＯ）法によって認証するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記事前認証されたユーザーが認証されると、前記モバイル装置のオペレーティングシステム（ＯＳ）で前記事前認証されたユーザーについて呼び出されるインテントを登録するステップをさらに含み、前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成される、請求項２に記載の方法。
【請求項４】
前記認証サーバーは、ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）プロバイダー又はセキュリティアサーションマークアップ言語（ＳＡＭＬ）アイデンティティプロバイダーであり、前記リライングパーティサーバーは、ＯＩＤＣリライングパーティ又はＳＡＭＬサービスプロバイダーである、請求項１に記載の方法。
【請求項５】
前記認証トークンは、ＪＳＯＮ  Ｗｅｂトークン（ＪＷＴ）である、請求項１に記載の方法。
【請求項６】
前記オペレーティングシステムは、前記モバイル装置の前記ユーザーエージェントからの前記事前認証されたユーザーのための前記認証トークンとともに前記認証サーバーからの前記リダイレクションリクエストを継続的に待機して、前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストのフローの損失を回避する、請求項１に記載の方法。
【請求項７】
前記ユーザーエージェントを介する前記認証サーバーからの前記リダイレクションリクエストは、前記モバイル装置上のＷｅｂブラウザーを介して前記リライングパーティサーバー上でホスティングされているリソースのリクエストと同時に動作されるように構成される、請求項６に記載の方法。
【請求項８】
前記リライングパーティサーバー上でホスティングされている前記リソースについて、前記モバイル装置から前記リライングパーティサーバーにリクエストを送信するステップと、
前記リライングパーティサーバーからの前記リソースについてリダイレクションリクエストを前記モバイル装置上で前記リプライングから受信するステップと、
前記事前認証されたユーザーの詳細を含まない前記モバイル装置からのリクエストを前記認証サーバーに送信するステップと、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンについて前記リダイレクションリクエストを前記認証サーバーから前記モバイル装置に送信するステップとをさらに含む、請求項１に記載の方法。
【請求項９】
前記モバイル装置上で前記ネイティブモバイルアプリケーションをホスティングするステップをさらに含み、前記ネイティブアプリケーションは、前記リライングパーティサーバーによってホスティングされている前記リソースについて前記ユーザーを認証するように構成され、前記リプライングパーティサーバーによってホスティングされている前記リソースは、オンプレミスサービス又はクラウドサービスである、請求項１に記載の方法。
【請求項１０】
前記事前認証されたユーザーのための前記認証トークンについての前記認証サーバーからの前記リダイレクションリクエストは、前記ユーザーエージェントを発見し、前記事前認証されたユーザーの前記認証トークンを取得するように前記認証サーバーによって構築される、請求項１に記載の方法。
【請求項１１】
前記ユーザーエージェントがサポートされているモバイルユーザーエージェントのものであることを前記認証サーバーが検出した場合にのみ、前記ユーザーエージェントに問合せるステップをさらに含む、請求項１に記載の方法。
【請求項１２】
前記サポートされているモバイルユーザーエージェントは、ＡｐｐｌｅＷｅｂＫｉｔ、Ｍｏｂｉｌｅ  Ｓａｆａｒｉ、又は５３７．３６  Ｃｈｒｏｍｅのうちの一つ以上である、請求項１１に記載の方法。
【請求項１３】
前記リライングパーティサーバーは、電気通信サービスプロバイダー（ＴＳＰ）、アプリケーションサービスプロバイダー（ＡＳＰ）、ストレージサービスプロバイダー（ＳＳＰ）、及び／又はインターネットサービスプロバイダー（ＩＳＰ）である、請求項１に記載の方法。
【請求項１４】
前記事前認証されたユーザーが前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可されると、さらなるログインは必要とされない、請求項１に記載の方法。
【請求項１５】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためにプロセッサーによって実行されるコンピューター読み取り可能なプログラムコードを保存する非一時的なコンピューター読み取り可能媒体であって、前記プロセスは、
前記モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、前記ネイティブモバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、前記プロセスはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信するステップと、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信するステップと、
前記認証サーバー上で前記ユーザーエージェントからの前記認証トークンを認証し、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスするための認証クッキーを作成するステップと、
前記認証クッキーを前記モバイル装置に送信するステップと、
前記リライングパーティサーバーによって前記認証クッキーが受信されると、前記事前認証されたユーザーに、前記リライングパーティサーバー上でホスティングされている前記リソースへのアクセスを許可するステップとを含む、非一時的なコンピューター読み取り可能媒体。
【請求項１６】
前記事前認証されたユーザーを前記モバイル装置上でシングルサインオン（ＳＳＯ）法によって認証するステップをさらに含む、請求項１５に記載の非一時的なコンピューター読み取り可能媒体。
【請求項１７】
前記事前認証されたユーザーが認証されると、前記モバイル装置のオペレーティングシステム（ＯＳ）で前記事前認証されたユーザーのために呼び出されるインテントを登録するステップをさらに含み、前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成される、請求項１６に記載の非一時的なコンピューター読み取り可能媒体。
【請求項１８】
前記認証サーバーは、ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）プロバイダー又はセキュリティアサーションマークアップ言語（ＳＡＭＬ）アイデンティティプロバイダーであり、前記リライングパーティサーバーは、ＯＩＤＣリライングパーティ又はＳＡＭＬサービスプロバイダーであり、
前記認証トークンは、ＪＳＯＮ  Ｗｅｂトークン（ＪＷＴ）である、請求項１５に記載の非一時的なコンピューター読み取り可能媒体。
【請求項１９】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置であって、前記モバイル装置は、
プロセッサーと、
ユーザーインターフェースと、
オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、前記オペレーティングシステム及び前記ユーザーエージェントは、
前記リライングパーティサーバー上でホスティングされている前記リソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて認証サーバーからリダイレクションリクエストを受信し、
前記認証サーバーからの前記リダイレクションリクエストに応答して、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから前記認証サーバーに送信し、
前記ユーザーエージェントからの前記認証トークンの前記認証サーバー上での認証から作成された認証クッキーを受信するように構成され、前記認証クッキーは、前記認証されたユーザーが前記リライングパーティサーバー上の前記リソースにアクセスすることを許可するように構成され、前記オペレーティングシステム及び前記ユーザーエージェントはさらに、
前記リライングパーティサーバー上でホスティングされている前記リソースに前記認証クッキーによりアクセスするように構成される、モバイル装置。
【請求項２０】
前記事前認証されたユーザーは、シングルサインオン（ＳＳＯ）法によって前記モバイル装置上で認証され、前記事前認証されたユーザーが認証されると、前記ユーザーエージェントは、前記モバイル装置の前記オペレーティングシステムで前記事前認証されたユーザーのために呼び出されるインテントを登録するように構成され、前記呼び出されるインテントは、前記事前認証されたユーザーのための前記認証トークンを前記モバイル装置の前記ユーザーエージェントから受信すると、前記認証サーバーからの前記リダイレクションリクエストに応答するように構成され、
前記認証サーバーは、ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）プロバイダー又はセキュリティアサーションマークアップ言語（ＳＡＭＬ）アイデンティティプロバイダーであり、前記リライングパーティサーバーは、ＯＩＤＣリライングパーティ又はＳＡＭＬサービスプロバイダーであり、前記認証トークンは、ＪＳＯＮ  Ｗｅｂトークン（ＪＷＴ）である、請求項１９に記載のモバイル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、ネイティブモバイルアプリケーション起点のＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）フロー及びセキュリティアサーションマークアップ言語（ＳＡＭＬ）フローのためのシームレスなシングルサインオン（ＳＳＯ）のためのコンピューターネットワーキングシステム及び方法に関する。
【背景技術】
【０００２】
ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）１．０は、ＯＡｕｔｈ２．０プロトコル上のシンプルなアイデンティティレイヤーであり、ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔにより、クライアントは、認可サーバーによって行われる認証に基づいてエンドユーザーのアイデンティティを確認することと、相互運用可能かつＲＥＳＴのようなやり方（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒのようなやり方）でエンドユーザーについてのベーシックプロファイル情報を取得することとが可能となる。
【０００３】
セキュリティアサーションマークアップ言語（ＳＡＭＬ）は、ユーザーアイデンティティをアサートするＳＡＭＬ連携アイデンティティプロバイダー（ＩｄＰ）とユーザーアイデンティティ情報を消費するＳＡＭＬ連携サービスプロバイダー（ＳＰ）との間でシングルサインオン情報をやり取りするためのＸＭＬ規格である。
【０００４】
これらの技術は両方ともシングルサインオン（ＳＳＯ）ソリューションとして使用されるが、ＯＩＤＣ及びＳＡＭＬは、ユーザーがどのように認証されるかのプロセスの判断を認証プロバイダーに完全に委ねる。これらのＳＳＯのためのオープンスタンダードをサポートするいくつかの認証プロバイダーは、「ユーザーを認証する」ための独自の方法又はプロセスを有しており、その出力／結果は、すべてのＯＩＤＣフロー及びＳＡＭＬフロー中における重要な一つのステップである。なぜなら、ＯＩＤＣフローのこの段階では、認証コード（「Ａｕｔｈ  Ｃｏｄｅ」）が認証プロバイダーによって生成され、ＯＩＤＣリライングパーティに提供され、ＳＡＭＬフローの場合はＳＡＭＬアサーションが構築され、ＳＡＭＬリライングパーティ（ＳＰ）に送信されるからである。
【０００５】
シングルサインオン（ＳＳＯ）は、一組のログインクレデンシャルで複数のアプリケーションにユーザーがアクセスすることを可能にする認証プロセスである。シングルサインオンは、例えば、企業における共通の手続きであり、クライアントは、ローカルエリアネットワーク（ＬＡＮ）に接続された複数のリソースにアクセスする。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の問題点を考慮して、モバイル装置上のモバイルアプリケーション（例えば、ネイティブアプリケーション）からのシングルサインオン（ＳＳＯ）によるログインアクションの結果として開始されるＯＩＤＣフロー及びＳＡＭＬフローを可能にする方法であって、ユーザーがすでに認証されているため、認証のためのシステムによってユーザーが干渉されない方法を有することが望ましい。
【課題を解決するための手段】
【０００７】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするための方法が開示され、当該方法は、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、ネイティブモバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証クッキーを作成するステップと、認証クッキーをモバイル装置に送信するステップと、リライングパーティサーバーによって認証クッキーが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップとを含む。
【０００８】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためにプロセッサーによって実行されるコンピューター読み取り可能なプログラムコードを保存する非一時的なコンピューター読み取り可能媒体であって、当該プロセスは、モバイル装置上にネイティブアプリケーションをホスティングするステップを含み、ネイティブモバイル装置は、事前認証されたユーザーのためのユーザーエージェントを有し、当該方法はさらに、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからリダイレクションリクエストを受信するステップと、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信するステップと、認証サーバー上でユーザーエージェントからの認証トークンを認証し、認証されたユーザーがリライングパーティサーバー上のリソースにアクセスするための認証クッキーを作成するステップと、認証クッキーをモバイル装置に送信するステップと、リライングパーティサーバーによって認証クッキーが受信されると、事前認証されたユーザーに、リライングパーティサーバー上でホスティングされているリソースへのアクセスを許可するステップとを含む。
【０００９】
リライングパーティサーバー上でホスティングされているリソースにモバイル装置からアクセスするためのネイティブアプリケーションを有するモバイル装置であって、当該モバイル装置は、プロセッサーと、ユーザーインターフェースと、オペレーティングシステム、及び事前認証されたユーザーのための認証トークンを有するユーザーエージェントを有するメモリーとを備え、オペレーティングシステム及びユーザーエージェントは、リライングパーティサーバー上でホスティングされているリソースのリクエストに応答して、事前認証されたユーザーのための認証トークンについて、認証サーバーからのリダイレクションリクエストを受信し、認証サーバーからのリダイレクションリクエストに応答して、事前認証されたユーザーのための認証トークンをモバイル装置のユーザーエージェントから認証サーバーに送信し、ユーザーエージェントからの認証トークンの認証サーバー上での認証から作成された認証クッキーを受信するように構成され、認証クッキーは、認証されたユーザーに、リライングパーティサーバー上のリソースにアクセスすることを許可するように構成され、オペレーティングシステム及びユーザーエージェントはさらに、リライングパーティサーバー上でホスティングされているリソースに認証クッキーによりアクセスするように構成される。
【００１０】
上述の総括的な記載及び以下の詳細な記載は、両方とも例示及び説明のためのものであり、請求項に記載の発明のさらなる説明を提供することが意図されていると解釈されるべきである。
【図面の簡単な説明】
【００１１】
添付の図面は、発明のさらなる理解をもたらすために含まれ、本明細書に組み込まれるか、又は本明細書の一部を構成する。図面は発明の実施形態を例示し、明細書とともに発明の原理を説明するのに役立つ。
【００１２】
【図１】ネイティブモバイルアプリケーションによってトリガされるＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）フロー及びセキュリティアサーションマークアップ言語（ＳＡＭＬ）フローのためのシームレスなシングルサインオン（ＳＳＯ）を有するシステムの例示である。
【図２】例示的な実施形態に係るコンピューター又はサーバーの例示である。
【図３Ａ】例示的な実施形態に係るモバイル装置の例示である。
【図３Ｂ】例示的な実施形態に係るモバイル装置の表示部又はユーザーインターフェースの例示である。
【図４Ａ】図３Ｂに示すモバイル装置の表示部又はユーザーインターフェースの例示である。
【図４Ｂ】図３Ｂに示すモバイル装置の表示部又はユーザーインターフェースの例示である。
【図５Ａ】ＯＩＤＣによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【図５Ｂ】ＯＩＤＣによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【図６Ａ】ＳＡＭＬによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【図６Ｂ】ＳＡＭＬによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャートである。
【発明を実施するための形態】
【００１３】
発明の本好ましい実施形態に詳細に言及し、その例が添付の図面に例示される。可能な限り、同じか又は同様の部分に言及するために同じ参照符号が図面及び説明において使用される。
【００１４】
図１は、ネイティブモバイルアプリケーションによってトリガされるＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）フロー及びセキュリティアサーションマークアップ言語（ＳＡＭＬ）フローのためのシームレスなシングルサインオン（ＳＳＯ）を有するシステム１００の例示である。図１に示すように、システム１００は、コンピューター又はクライアント装置１１０と、少なくとも一つのモバイルコンピューター１１２と、一つ以上のＳＡＭＬ−ＳＰリライングサーバー（ＳＡＭＬ−ＳＰ  Ａ、ＳＡＭＬ−ＳＰ  Ｂ、ＳＡＭＬ−ＳＰ  Ｃ）１２０と、一つ以上のＯＩＤＣリライングパーティサーバー（ＯＩＤＣリライングパーティＡ、ＯＩＤＣリライングパーティＢ）１２１と、一つ以上のＳＡＭＬ−ＩｄＰサーバー１３０と、一つ以上のＯＩＤＣプロバイダーサーバー１３１とを含むことができる。例示的な実施形態によれば、コンピューター又はクライアント装置１１０、少なくとも一つのモバイルコンピューター１１２、一つ以上のＳＡＭＬ−ＳＰリライングサーバー１２０、一つ以上のＯＩＤＣリライングパーティサーバー１２１、一つ以上のＳＡＭＬ−ＩｄＰサーバー１３０、及び一つ以上のＯＩＤＣプロバイダーサーバー１３１は、通信ネットワーク１５０を介して接続されることができる。例示的な実施形態によれば、通信ネットワーク又はネットワーク１５０は、公衆電気通信回線及び／又はネットワーク（例えば、ＬＡＮ又はＷＡＮ）とすることができる。通信ネットワーク１５０としては、例えば、本開示の実施形態に従ういずれかの電気通信回線及び／又はネットワークを挙げることができ、限定はしないが、電気通信又は電話回線、インターネット、イントラネット、図示のローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及び／又は無線周波数（ＲＦ）及び／又は赤外線（ＩＲ）送信を用いた無線接続を含む。
【００１５】
また、例えば、アクセスポイント１４０は、通信ネットワーク１５０と通信して、モバイルコンピューター（例えばスマートフォン）１１２と通信ネットワーク１５０との間に無線又はセルラーデータ通信を提供することができる。例示的な実施形態によれば、アクセスポイント１４０は、Ｗｉ−Ｆｉ装置が有線ネットワークに接続することを可能にするいずれかのネットワーキングハードウェア装置、又は、セルラー装置、例えばモバイルコンピューター（又はスマートフォン）１１２が有線ネットワーク１５０に接続することを可能にすることができるハードウェア装置とすることができる。
【００１６】
ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）は、ＯＡｕｔｈ２．０プロトコル上のアイデンティティレイヤーであり、コンピューティングクライアントが、認可サーバーによって行われる認証に基づいてエンドユーザーのアイデンティティを確認することと、相互運用可能かつＲＥＳＴのようなやり方でエンドユーザーについてのベーシックプロファイル情報を取得することとが可能となる。専門用語では、ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔは、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔｉｏｎ  Ｎｏｔａｔｉｏｎ）をデータフォーマットとして用いてＲＥＳＴｆｕｌ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）、ＨＴＴＰ（ハイパーテキストトランスファプロトコル）、及びＡＰＩ（アプリケーションプログラムインターフェース）を特定する。ＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔは、例えば、Ｗｅｂベースの移動可能なＪａｖａＳｃｒｉｐｔクライアントを含む様々なクライアントが、認証されたセッション及びエンドユーザーについての情報をリクエストし、受信することを可能にする。仕様スイートは、アイデンティティデータの暗号化、ＯｐｅｎＩＤプロバイダーの発見、及びセッション管理といった任意の機能をサポートすることもできる。
【００１７】
図１に示すように、例えば、認証コードは一つ以上のＯＩＤＣプロバイダー１３１（例えば認証プロバイダー）によって生成されることができ、認証コードは次いで、一つ以上のＯＩＤＣリライングパーティサーバー１２１に提供される。例示的な実施形態によれば、一つ以上のＯＩＤＣリライングパーティサーバー１２１は、例えば、ここに開示される一つ以上のセキュアなソフトウェアアプリケーションへのクライアントアクセスを提供するように構成されたサーバーとすることができる。
【００１８】
セキュリティアサーションマークアップ言語（ＳＡＭＬ）は、ユーザーアイデンティティをアサートするＳＡＭＬ連携アイデンティティプロバイダー（ＳＡＭＬ−ＩｄＰ）とユーザーアイデンティティ情報を消費するＳＡＭＬ連携サービスプロバイダー（ＳＡＭＬ−ＳＰ）との間でシングルサインオン（ＳＳＯ）情報をやり取りするためのＸＭＬ規格である。ＳＡＭＬｖ２．０（セキュリティアサーションマークアップ言語・バージョン２）は、ＩＤＰ起点のフロー及びＳＰ起点のフローをサポートする。ＩｄＰ起点のＳＡＭＬＳＳＯフローでは、ＳＡＭＬ−ＩｄＰがユーザーアイデンティティについてのＳＡＭＬシングルサインオンアサーションを作成し、当該ＳＡＭＬシングルサインオンアサーションをＳＰ（サービスプロバイダー）１２０に未承諾の形式で送信する。ＳＰ起点のＳＡＭＬＳＳＯフローでは、ＳＰが連携プロセスの第１のステップとしてＳＡＭＬ−ＩｄＰ１３０に送信されるＳＡＭＬ２．０ＡｕｔｈｎＲｅｑｕｅｓｔ（例えば認証リクエスト）を作成し、次いでＳＡＭＬ−ＩｄＰがＳＡＭＬレスポンスに応答する。これらのインタラクションは両方とも互いに非同期である。
【００１９】
例示的な実施形態によれば、ＳＡＭＬ−ＩｄＰは、セキュリティアサーションマークアップ言語（ＳＡＭＬ）のシングルサインオン（ＳＳＯ）プロファイルと共に認証アサーションを発行するシステムエンティティである。ＳＡＭＬドメインモデルにおいて、ＳＡＭＬオーソリティは、ＳＡＭＬアサーションを発行するいずれかのシステムエンティティである。ＳＡＭＬオーソリティの２つの重要な例は、認証オーソリティ及び属性オーソリティである。
【００２０】
例示的な実施形態によれば、複数のＳＡＭＬ−ＳＰサーバー１２０は、セキュリティアサーションマークアップ言語のシングルサインオン（ＳＳＯ）プロファイルと共に認証アサーションを受信し受け付けるように構成される。ＳＡＭＬドメインモデルにおいて、ＳＡＭＬ−ＳＰサーバー１２０（例えばＳＡＭＬリライングパーティ）は、他のシステムエンティティから情報を受信し受け付けるいずれかのシステムエンティティである。特に興味深いのは、ＳＡＭＬオーソリティによって発行されるＳＡＭＬアサーションを受信し受け付けるＳＡＭＬリライングパーティである。重要な種類のＳＡＭＬオーソリティは、ＳＡＭＬアイデンティティプロバイダー、ＳＡＭＬのＳＳＯプロファイルと共に認証アサーションを発行するシステムエンティティである。そのようなアサーションを消費するリライングパーティは、ＳＡＭＬサービスプロバイダー（又は、ドメインが分かれば単にサービスプロバイダー）と呼ばれる。したがって、ＳＡＭＬサービスプロバイダー（ＳＡＭＬ−ＳＰ）は、ＳＡＭＬアイデンティティプロバイダー（ＳＡＭＬ−ＩｄＰ）によって発行される認証アサーションを受信し受け付けるシステムエンティティである。
【００２１】
例示的な実施形態によれば、一つ以上のＳＡＭＬ−ＳＰリライングサーバー１２０及び／又は一つ以上のＯＩＤＣリライングパーティサーバー１２１は、企業サーバー、例えばコンサルティング、法律、不動産、通信、ストレージ、処理を組織に提供するいずれかのエンティティとすることができる。例えば、一つ以上のＳＡＭＬ−ＳＰリライングサーバー１２０及び／又は一つ以上のＯＩＤＣリライングパーティサーバー１２１は、サードパーティ又はアウトソーシングサプライヤ、例えば、電気通信サービスプロバイダー（ＴＳＰ）、アプリケーションサービスプロバイダー（ＡＳＰ）、ストレージサービスプロバイダー（ＳＳＰ）、及びインターネットサービスプロバイダー（ＩＳＰ）とすることができる。
【００２２】
例えば、ＴＳＰは、従来から電話及び同様のサービスを提供してきた通信サービスプロバイダーの一種であり、既存の地域通信事業者、競合する地域通信事業者、及びモバイル無線通信会社を含むことができる。ＡＳＰは、コンピューターベースのサービスをネットワークを通じて顧客に提供する事業である。例えば、ＡＳＰは、例えばＨＴＴＰなどの標準プロトコルを用いて（顧客関係管理などの）特定のソフトウェアアプリケーションへのアクセスを提供することができる。ＳＳＰは、コンピューターストレージスペース及び関連するマネジメントサービス、定期バックアップ、ならびにアーカイブを提供するいずれかの企業である。
【００２３】
図２は、コンピューター１１０、モバイルコンピューター１１２、ＳＡＭＬ−ＳＰサーバー（又はＳＡＭＬ−ＳＰリライングサーバー）１２０、ＯＤＩＣリライングパーティサーバー１２１、ＳＡＭＬ−ＩｄＰサーバー１３０、又はＯＩＤＣプロバイダーサーバー１３１とすることができるコンピューティング装置２００の例示である。図２に示すように、例示的なコンピューティング装置２００は、プロセッサー又は中央処理装置（ＣＰＵ）２０２と、ソフトウェアプログラム及びデータを保存するための一つ以上のメモリー２０４とを含むことができる。プロセッサー又はＣＰＵ２０２は、コンピューティング装置２００の機能の少なくとも一部分を作動させ、かつ／又は制御するコンピュータープログラムの指示を実行する。コンピューティング装置２００は、入力部２０６と、表示部又はグラフィカルユーザーインターフェース（ＧＵＩ）２０８と、通信ネットワーク（又はネットワーク）１５０に接続されるネットワークインターフェース（Ｉ／Ｆ）２１０とを含むこともできる。バス２１２は、コンピューティング装置２００内の様々な部材２０２，２０４，２０６，２０８，２１０を接続することができる。
【００２４】
例示的な実施形態によれば、コンピューティング装置２００は、例えば、コンピューティング装置２００のメモリー２０４内のＷｅｂブラウザー（図示せず）にアクセスすることができる表示部又はグラフィカルユーザーインターフェース（ＧＵＩ）２０８を含むことができる。コンピューティング装置２００は、コンピューターハードウェアを管理し、様々なソフトウェアプログラムの効率的な実行のための共通のサービスを提供するオペレーティングシステム（ＯＳ）も含む。例示的な実施形態によれば、ＣＰＵ２０２のＯＳは、Ｌｉｎｕｘ又はＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムである。ソフトウェアプログラムは、例えば、アプリケーションソフトウェア及びプリンタードライバーソフトウェアを含むことができる。例えば、プリンタードライバーソフトウェアは、例えばコンピューティング装置２００と接続されたマルチファンクションプリンター又はプリンター（図示せず）を制御し、プリンタードライバーソフトウェアは、通信ネットワーク１５０を介してインストールされる。ある実施形態では、プリンタードライバーソフトウェアは、画像及び／又はドキュメントデータに基づいてプリントジョブ及び／又はドキュメントを生成することができる。
【００２５】
図３Ａは、例示的な実施形態に係るモバイル装置３００の例示である。図３Ａに示すように、例示的なモバイル装置３００は、プロセッサー又は中央処理装置（ＣＰＵ）３０２と、ソフトウェアプログラム及びデータを保存するための一つ以上のメモリー３０４と、オペレーティングシステム３２０と、ＳＰＳ−ＳＳＯエージェント３２２とを含むことができる。例示的な実施形態によれば、メモリー３０４はＳＰＳ−ＳＳＯエージェント３２２を含み、ＳＰＳ−ＳＳＩエージェント３３２は、シングルサインオン（ＳＳＯ）プロトコルによるモバイル装置３００上のモバイルアプリケーションにおけるＯＩＤＣフロー及びＳＡＭＬフローを可能にするための一つ以上のプロセスを行うように構成される。プロセッサー又はＣＰＵ３０２は、コンピュータープログラムの指示を実行し、モバイル装置３００の機能の少なくとも一部分を作動させ、かつ／又は制御する。モバイル装置３００は、入力部３０６と、表示部又はグラフィカルユーザーインターフェース（ＧＵＩ）３０８と、通信ネットワーク（又はネットワーク）１５０に接続されるネットワークインターフェース（Ｉ／Ｆ）３１０とを含むこともできる。バス３１２は、モバイル装置３００内の様々な部材３０２，３０４，３０６，３０８，３１０を接続することができる。
【００２６】
例示的な実施形態によれば、モバイル装置３００は、例えば、モバイル装置３００のメモリー３０４内のＷｅｂブラウザー（図示せず）にアクセスすることができる表示部又はグラフィカルユーザーインターフェース（ＧＵＩ）３０８を含むことができる。モバイル装置３００は、コンピューターハードウェアを管理し、様々なソフトウェアプログラムの効率的な実行のための共通のサービスを提供するオペレーティングシステム（ＯＳ）３２０も含む。例示的な実施形態によれば、モバイル装置３００のＯＳ３２０は、Ｌｉｎｕｘ又はＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムである。ソフトウェアプログラムは、例えば、アプリケーションソフトウェア及びプリンタードライバーソフトウェアを含むことができる。例えば、プリンタードライバーソフトウェアは、例えばモバイル装置３００と接続されたマルチファンクションプリンター又はプリンター（図示せず）を制御し、プリンタードライバーソフトウェアは、通信ネットワーク１５０を介してインストールされる。ある実施形態では、プリンタードライバーソフトウェアは、画像及び／又はドキュメントデータに基づいてプリントジョブ及び／又はドキュメントを生成することができる。
【００２７】
例示的な実施形態によれば、モバイル装置３００は、例えば指紋認識もしくは認証、又はモバイル装置上で現在実施されているかもしくは実施されることになる他の認証プロトコルによってユーザーを認証する認証モジュールも含むことができることが好ましい。例えば、ユーザー名及びパスワードなどのクレデンシャルを使用するパスワード認証プロトコルを使用することができる。例示的な実施形態によれば、認証モジュールは、モバイル装置３００へのアクセスのためのものであり、かつ／又はここに開示されるシングルサインオン（ＳＳＯ）プロセスに関連して使用することができる。
【００２８】
図３Ｂは、例示的な実施形態に係るモバイル装置３００の表示部又はユーザーインターフェース（グラフィカルユーザーインターフェース（ＧＵＩ）としても知られている）３０６の例示である。図３Ｂに示すように、表示部又はユーザーインターフェース３０６は、頻繁に使用されるアプリケーション、例えば、電話モジュール、電子メールクライアントモジュール、ブラウザーモジュール、ビデオ・ミュージックプレイヤーモジュール、メッセージモジュール、カレンダー、カメラモジュール、地図、天気、ならびにモバイル装置３００及び様々なアプリケーションのための設定へのアクセスを提供するアプリケーション又はモジュールのための複数のアイコン３３０を有するタッチスクリーン（又はタッチパッド）３０７とすることができる。例示的な実施形態によれば、表示部又はユーザーインターフェース３０６は、例えば、ＯＩＤＣによるＳＳＯログイン用アプリケーションのためのアイコン３３２（「アプリＡ」）、及びＳＡＭＬによるＳＳＯログイン用アプリケーションのためのアイコン３３４（「アプリＢ」）も含む。
【００２９】
図４Ａは、図３Ｂに示すモバイル装置３００の表示部又はユーザーインターフェース４００の例示である。図４Ａに示すように、モバイル装置３００のユーザーインターフェース４００上でタッチ又は他の既知の方法によってアイコン３３２（「アプリＡ」）が選択されると、ユーザーインターフェース４００は、例えば、「ユーザー名又は電子メール」４１０及び「パスワード」４１２」のリクエストをユーザーに表示する。また、表示部又はユーザーインターフェース４００は、「サインイン」４２０を規定するアイコン、あるいは「ＳＳＯ使用」４３０のアイコンをユーザーに提示し、図４Ｂに示すユーザーインターフェース４５０でユーザーに入力を促す。
【００３０】
図４Ｂは、ＳＳＯサインインのための図３Ｂに示すモバイル装置３００の表示部又はユーザーインターフェース４５０の例示である。図４Ｂに示すように、ＳＳＯページは、例えば「電子メール又はドメイン」４６０をリクエストし、「サインイン」アイコン４７０を含む。
【００３１】
例示的な実施形態によれば、ユーザーのモバイル装置１１２上でのＯｐｅｎＩＤ  Ｃｏｎｎｅｃｔ（ＯＩＤＣ）フロー及びセキュリティアサーションマークアップ言語（ＳＡＭＬ）フローのためのネイティブモバイルアプリケーション起点のシングルサインオン（ＳＳＯ）のための方法及びシステムが開示される。ここに開示される方法及びシステムは、ユーザー（例えば、クライアント装置又はモバイル装置１１２）と認証プロバイダー（例えば、ＳＡＭＬ−ＩＤＰサーバー１３０又はＯＩＤＣプロバイダーサーバー１３１）との間で事前認証の目的でエージェント／プロキシとして機能するアプリケーション（例えば、モバイルアプリケーション（又はソフトウェアコンポーネント）を導入する。例示的な実施形態によれば、モバイルアプリケーション（又はソフトウェアコンポーネント）はモバイル装置１１２上のインターフェース３３２，３３４であり、例えば、オンプレミスソフトウェア（例えば、オンプレミスレガシー）及び／又はオフプレミスソフトウェア（例えば、クラウドサービス）からのいずれかのサービスをユーザーが利用する（又はアクセスする）ことができる前にユーザーが認証される。例示的な実施形態によれば、シングルサインオン（ＳＳＯ）法（又はプロトコル）によるユーザーの認証は、例えば、指紋、顔識別もしくは顔認識、虹彩検出などの生体認証、及び／又はユーザー名及びＰＩＮ（個人識別番号）によって行われることができる。ここに開示されるモバイルアプリケーションは、例えば、成功した認証の終わりにユーザーの代理でＪＳＯＮ  Ｗｅｂトークン（ＪＷＴ）を含むことができる。
【００３２】
例示的な実施形態によれば、モバイル装置１１２は、例えば、認証プロバイダー（例えば、ＯＩＤＣプロバイダー（又はＯＩＤＣ−ＯＰ）１３１又はＳＡＭＬ−ＩｄＰサーバー１３０）からのリダイレクションリクエストを継続的に待機し、処理されたリダイレクションリクエストへのレスポンスによって事前認証されたユーザーに対応する現在のアクティブなＪＳＯＮ  Ｗｅｂトークン（ＪＷＴ）を提示する（すなわち、ユーザーを一意的に識別する）エージェントコードソフトウェアコンポーネントの形態のアプリケーションを含むことができる。
【００３３】
例示的な実施形態によれば、ＯＩＤＣ−ＯＰ１３１又はＳＡＭＬ−ＩｄＰ１３０から、対応する認証ソリューションモバイルアプリケーション３２２上で動作しているエージェントへのリダイレクションは、規則的なＯＩＤＣ／ＳＡＭＬフローに追加することができる。例示的な実施形態によれば、例えば、指定され登録されたモバイルアプリケーションへの追加的なリダイレクションビジットは、当初のフロー（例えば、ネイティブモバイルアプリケーションによって開始されたフロー）を盗用することができるため、コンテクストは失われない。例示的な実施形態によれば、事前認証されたユーザーについてのいずれのコンテクストも有していないモバイルアプリケーションからフローが開始するため、フローの目的は、いずれかの認証詳細を提示するよう問い合わせることをユーザーに促すことを回避することとすることができる。
【００３４】
例示的な実施形態によれば、フローが発生したユーザーエージェント（ＵＡ）を認証プロバイダー（ＳＡＭＬ−ＩｄＰ１３０又はＯＩＤＣ−ＯＰ１３１）が検出した場合にのみ、認証プロバイダー（ＳＡＭＬ−ＩｄＰ１３０又はＯＩＤＣ−ＯＰ１３１）はフローを盗用してモバイルアプリケーションカウンターパート上のエージェントに問合せる。例えば、サポートされるモバイルユーザーエージェントは、アップル（登録商標）ＷｅｂＫｉｔ、Ｍｏｂｉｌｅ  Ｓａｆａｒｉ、及び５３７．３６（ＧｅｃｋｏのようなＫＨＴＭＬ）Ｃｈｒｏｍｅを含むことができる。また、モバイルブラウザーによるユーザーエージェントは、ブラウザーのバージョン、装置モデル、オペレーティングシステム（ＯＳ）、及び他の要因に応じて異なる可能性がある。
【００３５】
例示的な実施形態によれば、認証プロバイダー（ＳＡＭＬ−ＩｄＰ１３０又はＯＩＤＣプロバイダー１３１）において、「Ａｕｔｈ」エンドポイントにヒットするＯＩＤＣ「Ａｕｔｈ」フロー又はＳＡＭＬの「認証リクエスト」フローは、上記で開示した変更を取り込み、追加的なリダイレクションが生じるため、当該フローは一時的な係属状態を継続して、ユーザーのために認証プロバイダーによって先に作成されたＪＷＴトークンを取得することができる。
【００３６】
認証プロバイダーのクエリリダイレクトへのレスポンスによってＪＷＴトークンを認証プロバイダーが受信した後、認証プロバイダーはトークンを検証し、ドメインクッキーを作成し、中断していたＯＩＤＣ又はＳＡＭＬフローを再開し、認証レスポンスが送り返されると、作成したクッキー（すなわちＳｅｔ−Ｃｏｏｋｉｅ  ＨＴＴＰレスポンスヘッダー）を設定する。例示的な実施形態によれば、さらなる通信には、（当初のＯＩＤＣフロー及びＳＡＭＬフローが発生した）ネイティブモバイルアプリケーション・ユーザーエージェント上に設定されているドメインクッキーを使用する。
【００３７】
例示的な実施形態によれば、アプリケーションログインフローのためにＵＩレンダリング技術が用いる、モバイル装置のための様々なネイティブアプリケーションが存在する。例えば、外部のブラウザーを起動するアプリケーションもあれば、ＷｅｂＶｉｅｗなどのアプリ内ブラウザーを使用するアプリケーションもあれば、ＳＦＳａｆａｒｉＶｉｅｗＣｏｎｔｒｏｌｌｅｒ及びＣｈｒｏｍｅＴａｂなどの最新のトレンドを使用するアプリケーションもある。例示的な実施形態によれば、本開示において再び提示されるエージェントコードはエージェントの動作に基づいてユーザーエージェントに依存しない（すなわち、多くの種類のプラットフォーム又はオペレーティングシステムと互換性がある）ことを伝え、シングルサインオン（ＳＳＯ）ベースのログインフローと、エージェント上の対応するリダイレクト動作とをサポートするネイティブモバイルアプリケーション、例えばＧｏｏｇｌｅ  Ｄｒｉｖｅ  ａｎｄ  ＢｏｘにおいてＯＩＤＣ及びＳＡＭＬのためのＳＳＯフローにシームレス性を提供するという最終目標を実現するために３つの例が開示される。
【００３８】
例示的な実施形態によれば、例えば、アプリケーションはＳａｆａｒｉ又はＣｈｒｏｍｅなどのシステムブラウザーを使用し、システムブラウザーは独自のユーザーエージェントを有する異なるアプリケーションとして機能する。例示的な実施形態によれば、エージェントはリダイレクトリクエストを受信し、暗号化されたＵＲＩパラメータを復号して、暗号化されたＵＲＩが真正の認証プロバイダーのものであることを確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのＪＷＴ（すなわちトークン）を取得することを試みる。成功した場合、サーバーは認証サーバーに到達するようユーザーエージェントをリダイレクトし、ＪＷＴを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録されることを記録し、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【００３９】
例示的な実施形態によれば、例えば、ＷＫＷｅｂＶｉｅｗなどのＷｅｂ  Ｖｉｅｗ  Ｃｏｍｐｏｎｅｎｔを用いるアプリケーションでは、各ＷｅｂＶｉｅｗがサンドボックスされ、アプリケーションコンテンツ内にブラウザーが出現する（ユーザーがアプリケーションから離れることはない）。例示的な実施形態によれば、エージェントがリダイレクトリクエストを受信し、暗号化されたＵＲＩパラメータを復号して、本当に真正の認証プロバイダーのものであるか確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのＪＷＴ（すなわちトークン）を取得することを試みる。成功した場合、認証サーバーに到達するようユーザーエージェントをリダイレクトし、ＪＷＴを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録され、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【００４０】
例示的な実施形態によれば、例えば、ＳＦＳａｆａｒｉＶｉｅｗＣｏｎｔｒｏｌｌｅｒ（ＩＯＳ）又はＣｈｒｏｍｅＴａｂを用いるアプリケーションについては、アプリケーションコンテンツ内にブラウザーが出現する（すなわち、ユーザーがアプリケーションから離れることはない）。例示的な実施形態によれば、エージェントがリダイレクトリクエストを受信し、暗号化されたＵＲＩパラメータを復号して、暗号化されたＵＲＩパラメータが真正の認証プロバイダーのものであるか確認する。この確認は、悪意のあるアプリケーションを回避するためのものであり、サーバーは、エージェントに問合せてユーザーのＪＷＴ（すなわちトークン）を取得することを試みる。成功した場合、認証サーバーに到達するようユーザーエージェントをリダイレクトし、ＪＷＴを提供する。成功しなかった場合、リクエストは取り下げられ、メッセージが記録され、警告メッセージ、例えばポップアップを用いて、問題を管理者に報告するようアプリケーションユーザーに警告することができる。
【００４１】
図５Ａ及び図５Ｂは、ＯＩＤＣによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャート５００である。図５Ａ及び図５Ｂに示すように、ステップ５０１において、モバイル装置（例えば、スマートフォン）１１２を有するユーザーがユーザーインターフェース（又はグラフィカルユーザーインターフェース（ＧＵＩ）上のモバイルアプリケーションアイコン「アプリＡ」３３２をクリックする。アイコン「アプリＡ」３３２が開かれると、ユーザーは、図４Ｂに示すようにグラフィカルユーザーインターフェース上の「ＳＳＯ使用」アイコンを選択する。図４Ｂに示すように、次いでユーザーは、電子メール又はドメインを入力し、「ＳＰＳでログイン」でログインする。ステップ５０２において、（ＳＰＳクライアント上で動作している）ＳＰＳモバイルＳＳＯエージェントは、モバイル装置１１２のオペレーティングシステム（ＯＳ）で呼び出されるインテント（例えば、ｈａｎｄｌｅｒ：ＳｐｓＭｏｂｉｌｅ  ＳｓｏＡｕｔｈＡｇｅｎｔ；／ｃａｌｌ＿ｂａｃｋ）を登録する。
【００４２】
ステップ５０３において、モバイルアプリケーションは、ログインリクエスト（例えば、“ＧＥＴ：Ｌｏｇｉｎ”）をサービスプロバイダーＷｅｂサーバー（ＯＩＤＣ−ＲＰ）１２１に送信する。ステップ５０４において、サービスプロバイダーＷｅｂサーバー（ＯＩＤＣ−ＲＰ）１２１は、ＵＲＬリダイレクトレスポンス（例えば、３０２  Ｒｅｄｉｒｅｃｔ（例えば、ＵＲＬリダイレクション））をモバイルアプリケーション３３２に送信する。ステップ５０５において、モバイルアプリケーション３３２は、認証リクエスト（例えば、“ＧＥＴ：ＯＡｕｔｈ２  Ａｕｔｈ  ＥｎｄＰｏｉｎｔ、Ｆｌｏｗ：Ａｕｔｈ  Ｃｏｄｅ  Ｆｌｏｗ，ｒｅｓｐ＿ｔｙｐｅ＝ｃｏｄｅ”）をアイデンティティプロバイダー、例えばＳＰＳ−Ａｕｔｈサービス（ＯＩＤＣ−ＯＰ）１３１に送信する。例示的な実施形態によれば、ステップ５０５において、認証リクエストは、ログインしたユーザーについての詳細（例えば、ユーザー名／ドメイン名）は何も含まない。ステップ５０６において、ＯＩＤＣ−ＯＰは、ステップ５０５におけるモバイルアプリケーションからの認証リクエストをチェックして、クッキー認証が存在する（例えば、クッキー認証が有効である）かどうか判定する。クッキー認証が有効である（すなわちクッキー認証が存在する）場合、処理はステップ５１５に続く。しかし、ステップ５０６においてクッキー認証が有効でない（すなわち認証クッキーが存在しない）場合、処理はステップ５０７に続き、ＯＩＤＣ−ＯＰ１３１はユーザーエージェントを発見し、対象のモバイル装置上のＳＰＳクライアント上のマッピングされた「登録されたモバイルＳＳＯ認証インテントハンドラー」コールバックを取得する。
【００４３】
ステップ５０８において、ＯＩＤＣ−ＯＰ１３１は、「登録されたモバイルＳＳＯ認証インテントハンドラー」を訪問するようユーザーエージェントをリダイレクトするＵＲＬリダイレクションリクエスト（例えば、ＨＴＴＰ３０２）を構築する。ステップ５０９において、ＯＩＤＣ−ＯＰ１３１は、ＵＲＬリダイレクションレスポンス（例えば、ａ３０２：ＳＰＳ  Ｃｕｓｔｏｍ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｒｅｄｉｒｅｃｔｉｏｎ，Ｒｅｄｉｒｅｃｔｉｏｎ  Ｓｃｈｅｍｅ：“ＳｐｓＭｏｂｉｌｅＳｓｏＡｕｔｈＡｇｅｎｔ”，ｉｎｓｔｅａｄ  ｏｆ  ａ  ｒｅｇｕｌａｒ  “ｈｔｔｐｓ”）をモバイルアプリケーション３３２に送信する。ステップ５１０において、ＵＲＬリダイレクションレスポンス（例えば、ＨＴＴＰ  ３０２  ｒｅｑｕｅｓｔ  ｔｒｉｇｇｅｒｓ  ＳｐｓＭｏｂｉｌｅＳｓｏＡｕｔｈＡｇｅｎｔ：／ｃａｌｌ＿ｂａｃｋ）がＳＰＳ−ＳＳＯエージェント（例えば、（ＳＰＳクライアント内で動作している）ＳＰＳモバイルＳｓｏエージェント）３２２に送信される。ステップ５１１において、ＳＰＳ−ＳＳＯエージェントは、現在のアクティブなＪＷＴ（すなわちトークン）（例えば、３０２：／ｍｏｂｉｌｅｉｄ／ｖ１／ｊｗｔ／（ＪＷＴ  Ｖａｌｕｅ））をモバイルアプリケーション３３２に送信する。ステップ５１２において、ＳＰＳ−ＳＳＯエージェントから受信された現在のアクティブなＪＷＴがリクエスト（例えば、ＧＥＴ：／ｍｏｂｉｌｅｄｉ／ｖ１／ｊｗｔ／（ＪＷＴ  Ｖａｌｕｅ））とともにＯＩＤＣ−ＯＰ１３１に送信される。
【００４４】
ステップ５１３において、ＯＩＤＣ−ＯＰ１３１は、例えばＪＷＴ（すなわちトークン）を検証して、ＳＰＳエージェントに成りすましている「不正モバイルアプリ／エージェント」を排除する。ステップ５１４において、ＯＩＤＣ−ＯＰ１３１がＪＷＴ（すなわちトークン）を検証した場合、クッキーが作成される。ステップ５１５において、ＯＩＤＣ−ＯＰ１３１は、レスポンス（例えば、３０２  Ｒｅｄｉｒｅｃｔ  ｗｉｔｈ  ａ  ｇｅｎｅｒａｔｅｄ  ｓｅｓｓｉｏｎ  Ｃｏｏｋｉｅ  ｗｉｔｈ  “ＯＩＤＣ  Ｒｅｇｉｓｔｅｒｅｄ  ＣａｌｌＢａｃｋ  Ｐｌｅａｓｅ”）を送信し、作成されたクッキーは、認証コード（例えば、クッキー）がＵＲＬクエリストリングにおいて利用可能であることを示す。モバイルアプリケーション３３２は認証コードを受信し、ステップ５１６においてサービスのリクエスト（例えば、ＧＥＴ：ＯＤＩＣ  Ｒｅｇｉｓｔｅｒｅｄ  Ｃａｌｌｂａｃｋ，ｃｏｄｅ＝ＸＸＸＸＸ）をＯＩＤＣ−ＲＰ１２１に送信する。ステップ５１７において、ＯＩＤＣ−ＲＰはモバイルアプリケーション３３２からのリクエストを受信し、ユーザーを認証するようリクエストをＯＩＤＣ−ＯＰ１３１に送信する（例えば、ＰＯＳＴ：ＩＤ  Ｔｏｋｅｎ  Ｒｅｑｕｅｓｔ（Ｅｘｃｈａｎｇｅ），Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｃｏｄｅ  ＝  ＸＸＸＸＸ）。ステップ５１８において、ＯＩＤＣ−ＯＰ１３１はリクエストを受信し、（ＪＷＴ（すなわちトークン）及び対応するクッキーによって）ユーザーが認証されたことを確認し、ＯＫサクセスステータスレスポンス（例えば、ＨＴＴＰ  ２００  ＯＫ：ＩＤ  Ｔｏｋｅｎ  −−−−＞  ＪＷＴ  ｗｈｉｃｈ  Ｂａｓｅ−６４  Ｅｎｃｏｄｅｄ  ＩＤ  Ｔｏｋｅｎ，Ｓｉｇｎｅｄ  ｂｙ  ＳＰＳ）をＯＩＤＣ−ＲＰ１２１に送信する。ステップ５１９において、ＯＩＤＣ−ＲＰ１２１は、ＪＷＴ（すなわちトークン）が確認され、リクエストが成功したことを示すレスポンス（例えば、２００  ＯＫ：ＩＤ  Ｔｏｋｅｎ  ａｓ  ＪＷＴ）をモバイルアプリケーションに送信する。ステップ５２０において、モバイルアプリケーションはサクセスレスポンスを受信し、アプリケーション又はサービスのリクエスト、例えば、“ＧＥＴ：Ｅｉｔｈｅｒ  Ｈｏｍｅ  Ｐａｇｅ  ｏｒ  ａｎｙ  ｐａｇｅ  ｒｅｆｅｒｒｉｎｇ  ｔｏ  Ｃｏｎｆｉｇｕｒｅｄ  ‘ＳｔａｒｔＵＲＬ’  ＰａｒａｍをＯＩＤＣ−ＲＰ１２１に送信する。ステップ５２１において、ＯＩＤＣ−ＲＰはＩＤトークンを検証し、ＩＤトークンが有効であれば、ユーザーは認証されるものと見なされ、セッション識別子（ＩＤ）が作成される。ステップ５２２において、サクセスレスポンス（例えば、２００  ＯＫレスポンス）がモバイルアプリケーション３３２に送信される。
【００４５】
図６Ａ及び図６Ｂは、ＳＡＭＬによるＳＳＯログインをサポートするネイティブモバイルアプリケーションのためのフローを例示するフローチャート６００である。図６Ａ及び図６Ｂに示すように、ステップ６０１において、モバイル装置（例えばスマートフォン）１１２を有するユーザーが、ユーザーインターフェース（又はグラフィカルユーザーインターフェース（ＧＵＩ）上のモバイルアプリケーションアイコン「アプリＢ」３３４をクリックする。アイコン「アプリＢ」３３４が開かれると、図４Ｂに示すように、ユーザーはグラフィカルユーザーインターフェース上で電子メールＩＤ及び／又はドメイン名を入力する。ステップ６０２において、（ＳＰＳクライアント上で動作している）ＳＰＳモバイルＳＳＯエージェント３２０は、モバイル装置１１２のＩＯＳ又はアンドロイド（ＯＳ）上にｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔｅ／ｓｐｓ−ｓｓｏ−ｒｅｄｉｒｅｃｔ／”を登録する（すなわちホワイトリストされる）。
【００４６】
ステップ６０３において、モバイルアプリケーション３３４は、リクエスト（例えば、“ＧＥＴ：Ｌｏｇｉｎ”）をサービスプロバイダーＷｅｂサーバー（ＳＡＭＬ−ＳＰ）１２０に送信する。ステップ６０４において、モバイルアプリケーション３３４からのリクエストに応答して、サービスプロバイダーＷｅｂサーバー（ＳＡＭＬ−ＳＰ）１２０は、認証リクエスト、例えば、ＳＰ起点のＳＡＭＬ２認証リクエストをＳＰＳ認証サービス（ＳＡＭＬ−ＩｄＰ）１３０に送信する。ＳＰＳ認証サービス（ＳＡＭＬ−ＩＤＰ）１３０への認証リクエスト（例えば、ＳＰ起点のＳＡＭＬ２認証リクエスト）は、ログインしたユーザーについての詳細（例えば、ユーザー名／ドメイン名）を何も含まない。ステップ６０５において、認証リクエスト（例えば、ＳＰ起点のＳＡＭＬ２認証リクエスト）がＳＰＳ認証サービス（ＳＡＭＬ−ＩＤＰ）１３０によって受信され、クッキー認証が有効かどうか判断する。クッキー認証が有効であれば、処理はステップ６１５に続く。しかし、クッキー認証が有効でなければ、処理はステップ６０６に続き、ＳＡＭＬ−ＩＤＰ１３０がユーザーエージェントを突き止め（又は発見し）、対象のモバイル装置のＳＰＳクライアント上に「登録されたモバイルＳＳＯ認証インテントハンドラー」コールバックをマッピングする。ステップ６０７において、ＳＡＭＬ−ＩｄＰ１３０は、ＵＲＬリダイレクションリクエストを構築する（例えば、「登録されたモバイルＳＳＯ認証インテントハンドラー」を訪問するようユーザーエージェントをリダイレクトする“Ｃｏｎｓｔｒｕｃｔ  ａ  ＨＴＴＰ３０２）。ステップ６０８において、ＳＡＭＬ−ＩｄＰ１３０は、ステップ６０９で作成された暗号化メッセージを含むＵＲＬリダイレクションリクエスト（例えば、“３０２：ＳＰＳ  Ｃｕｓｔｏｍ  Ｍｏｂｉｌｅ  Ａｐｐ  Ｒｅｄｉｒｅｃｔｉｏｎ，Ｒｅｄｉｒｅｃｔｉｏｎ  Ｓｃｈｅｍｅ：ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／ｓｐｓ−ｓｓｏ−ｒｅｄｉｒｅｃｔ／ｃｈａｌｌｅｎｇｅ＝８９７１９８２ｊｈｊｈｓｂｊｈｓ）をモバイルアプリケーション３３４に送信する。図６Ａに示すように、ステップ６０９において、ＳＡＭＬ−ＩｄＰ１３０は、「（このサーバー及びエージェントにのみ知られている）事前共有シークレットを復号化し、モバイル装置１１２上のエージェントをリダイレクトするためのレスポンスを送信する。
【００４７】
ステップ６１０において、モバイルアプリケーション３３４は、ＳＡＭＬ−ＩｄＰ１３０によって提供される秘密鍵をステップ６１１において検証するために、リクエスト（例えば、“Ｔｒｉｇｇｅｒｓ  ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／ｓｐｓ−ｓｓｏ−ｒｅｄｉｒｅｃｔ／ｃｈａｌｌｅｎｇｅ＝８９７１９８ｊｈｊｈｓｂｊｈｓ”）をＳＰＳ−ＳＳＯエージェント３２２に送信する（例えば、「暗号化されたチャレンジを認証サーバー公開鍵で検証し、成功した（サーバーのみが有するサーバーの秘密鍵によってチャレンジが暗号化された）場合、ＪＷＴを提供することによってさらに前進する。そうでなければリクエストを取り下げる（例えばレスポンスなし）。Ｅｎｄ  ＳＳＯフローは、ｈｔｔｐがタイムアウトするまで、ユーザー側でハングアップする）。
【００４８】
ステップ６１２において、ＳＰＳ−ＳＳＯエージェント３２２は、ＵＲＬリダイレクションレスポンスをモバイルアプリケーション３３４にＪＷＴ（トークン）（例えば、“３０２／ｍｏｂｉｌｅｉｄ  ／ｖ１／ｊｗｔ（ＪＷＴ  Ｖａｌｕｅ）／”）とともに送信する。ステップ６１３において、モバイルアプリケーション３３４は、ＪＷＴ（トークン）の検証を要請するリクエスト（例えば、“ＧＥＴ：／ｍｏｂｉｌｅｉｄ／ｖ１／ｊｗｔ／（ＪＷＴ  ｖａｌｕｅ）／）をＳＡＭＬ−ＩｄＰ１３０に送信する。ステップ６１４において、ＳＡＭＬ−ＩｄＰ１３０は、モバイルアプリケーションからリクエストを受信し、ＪＷＴ（トークン）を検証する（例えば、「ＪＷＴを検証し、ＳＰＳエージェントに成りすましている不正なモバイルアプリ／エージェントを排除する」）。ステップ６１５において、ＪＷＴ（トークン）が有効であれば、ＳＡＭＬ−ＩＤＰ１３０は、ＳＡＭＬアサーション及びＳＡＭＬレスポンスを構築する。ステップ６１６において、ＳＡＭＬ−ＩＤＰ１３０は、ＵＲＬリダイレクションレスポンスをモバイルアプリケーション３３４に送信する（例えば、“３０２  Ｒｅｄｉｒｅｃｔ，ｗｉｔｈ  ＳＡＭＬＲｅｓｐｏｎｓｅ  ａｎｄ  Ｇｅｎｅｒａｔｅｄ  Ｓｅｓｓｉｏｎ  Ｃｏｏｋｉｅ”）。ステップ６１７において、モバイルアプリケーションはＳＡＭＬレスポンスを受信し、ログインしたユーザーについてＳＡＭＬレスポンスをサービスプロバイダー（ＳＡＭＬ−ＳＰ）１２０に送信する。ステップ６１８において、ＳＡＭＬ−ＳＰ１２０は、ログインしたユーザーが認証されたことを示すサクセスレスポンスをモバイルアプリケーション３３４に送信する（例えば、“２００  ＯＫ：ＳＡＭＬ  Ｒｅｓｐｏｎｓｅ  Ｖｅｒｉｆｉｅｄ，  Ｕｓｅｒ  ｉｓ  Ａｕｔｈｅｎｔｉｃａｔｅｄ，  ＳＰ’ｓ  Ｏａｕｔｈ２  ａｃｃｅｓｓ  ｔｏｋｅ  ｔｈｅ  ｎａｔｉｖｅ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  ｃａｎ  ｕｓｅ  ｔｏｗａｒｄｓ  ｔｈｅ  ｕｓｅｒ）。ステップ６１９において、モバイルアプリケーション（すなわちＢｏｘネイティブアプリケーション）のユーザーは、「ｂｏｘ認証された」ユーザーとして扱われ、ＳＡＭＬ−ＳＰ１２０上のサービスへのアクセスはすべてＯａｕｔｈ２アクセストークンを伴う。
【００４９】
例示的な実施形態によれば、開示されている方法及びプロセスは、非一時的なコンピューター読み取り可能媒体上で実施されることができる。非一時的なコンピューター読み取り可能媒体は、磁気記録媒体、光磁気記録媒体、又は将来開発されることになるいずれかの他の記録媒体であってもよく、すべて同じやり方で本発明に適用可能であると考えることができる。主要な複製製品及び二次的な複製製品等を含むそのような媒体の複製は、もちろん上記の媒体と同等であると考えられる。さらに、本発明の実施形態がソフトウェア及びハードウェアの組合せであっても、発明の概念からは全く逸脱しない。本開示は、そのソフトウェア部分が予め記録媒体に書き込まれており、動作において必要に応じて読み込まれることになるように実施されても良い。
【００５０】
ここで使用される限りにおいて、単数で記載され「ａ」又は「ａｎ」という語が前に付けられた要素又はステップは、明示的に記載されない限り、複数の要素又はステップを除外していないと理解されるべきである。さらに、本開示の「例示的な実施形態」又は「一実施形態」という言及は、記載されている特徴を同じく組み込んだ追加的な例の存在を除外すると解釈されることを意図していない。
【００５１】
本書類の末尾にある特許請求項は、従来のミーンズプラスファンクション文言が明確に記載されていない限り、例えば「ための手段」又は「ためのステップ」という文言が請求項に明確に記載されていない限り、３５Ｕ．Ｓ．Ｃ．§１１２（ｆ）に基づいて解釈されることを意図していない。
【００５２】
発明の範囲又は精神から逸脱することなく本発明の構造に様々な変形及び変更を行うことができることは、当業者にとっては明らかであろう。以上に鑑み、本発明は、下記の請求項及びそれらの等価物の範囲に入るならば本発明の変形及び変更を対象とすることが意図される。
【図１】
2020126602.tif 000003
【図２】
2020126602.tif 000004
【図３Ａ】
2020126602.tif 000005
【図３Ｂ】
2020126602.tif 000006
【図４Ａ】
2020126602.tif 000007
【図４Ｂ】
2020126602.tif 000008
【図５Ａ】
2020126602.tif 000009
【図５Ｂ】
2020126602.tif 000010
【図６Ａ】
2020126602.tif 000011
【図６Ｂ】
2020126602.tif 000012
【外国語明細書】
2020126602000001.pdf
2020126602000002.pdf
2020126602000003.pdf
2020126602000004.pdf