(57)【要約】  シングルサインオンを管理するための手法が提供される。いくつかの例では、シングルサインオン機能性は、モバイルアプリケーション、クラウドアプリケーション、および／または他のウェブベースのアプリケーション（２０８）を利用することにより、モバイル装置（１０４）上で使用するために提供され得る。たとえば、モバイルアプリケーションまたはモバイルウェブブラウザ（２０４）は、１つ以上のサービスプロバイダコンピュータ（１１６）で認証すること、またはサービスプロバイダコンピュータにアクセスすることを要求する場合がある。そのような認証および／またはアクセスを容易にするために、モバイル装置（２０２）のユーザから認証信用証明が要求されてもよい。成功したログインに少なくとも部分的に基づいて、同じモバイル装置（２０２）上の他のアプリケーション（２２６）からのサーバ（２１２）リソースへのアクセスが、信用証明をユーザに連続してまたは繰返し要求することなく提供されてもよい。
2014529147.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
メモリと、
前記メモリにアクセスするように構成された１つ以上のプロセッサとを含み、前記メモリは複数の命令を格納しており、前記複数の命令は、前記プロセッサのうちの１つ以上によって実行されると、前記システムに、
第１のアプリケーションから、第２のアプリケーションに関連付けられた認証要求を受信することと、
前記第１のアプリケーションまたは前記第２のアプリケーションにアクセス可能なサービスプロバイダに前記第２のアプリケーションがアクセスできるようにするためのアクセストークンを、前記第１のアプリケーションに提供することとを行なわせる、システム。
【請求項２】
前記第１のアプリケーションは、モバイル装置のセキュリティエージェントアプリケーションを含み、前記セキュリティエージェントアプリケーションは、前記第２のアプリケーションまたは前記モバイル装置の他のアプリケーションのためのシングルサインオンを提供するように構成されている、請求項１に記載のシステム。
【請求項３】
前記第１のアプリケーションは、モバイル装置のネイティブアプリケーションを含み、前記ネイティブアプリケーションは、前記第２のアプリケーションまたは前記モバイル装置の他のアプリケーションのためのシングルサインオンを提供するように構成されている、請求項１に記載のシステム。
【請求項４】
前記ネイティブアプリケーションは、組込型ウェブブラウザで構成されている、請求項３に記載のシステム。
【請求項５】
前記１つ以上のプロセッサはさらに、前記認証要求に含まれる信用証明に少なくとも部分的に基づいて、ユーザがいつ認証されたかを判断するように、前記複数の命令を実行するように構成されており、判断は、前記ユーザが認証されたという表示を第三者のサービスから受信することに少なくとも部分的に基づいている、前述の請求項のいずれかに記載のシステム。
【請求項６】
１つ以上のプロセッサによって実行可能な複数の命令を格納するコンピュータ読取可能なメモリであって、前記複数の命令は、
前記１つ以上のプロセッサに、第１のアプリケーションから、サービスプロバイダにアクセスするようにという要求を受信させる命令と、
前記１つ以上のプロセッサに、前記第１のアプリケーションに関連付けられたユーザをログインさせる命令と、
前記１つ以上のプロセッサに、前記サービスプロバイダにアクセスするためのトークンを、前記第１のアプリケーションに提供させる命令と、
前記１つ以上のプロセッサに、第２のトークンを、前記ユーザに関連付けられた第２のアプリケーションに提供させる命令とを含む、コンピュータ読取可能なメモリ。
【請求項７】
前記第１のアプリケーションは、前記第２のアプリケーションのためのシングルサインオンを提供するように構成された、モバイル装置のセキュリティエージェントアプリケーションを含む、請求項６に記載のコンピュータ読取可能なメモリ。
【請求項８】
前記第２のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられた前記モバイル装置のブラウザアプリケーション、アプリケーションサービスプロバイダに関連付けられた前記モバイル装置のネイティブアプリケーション、または、ハイブリッドアプリケーションサービスプロバイダに関連付けられた、組込型ブラウザを有するネイティブアプリケーションとして構成された前記モバイル装置のハイブリッドアプリケーションを含む、請求項７に記載のコンピュータ読取可能なメモリ。
【請求項９】
前記第１のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられたモバイル装置のブラウザアプリケーションを含み、前記第２のアプリケーションは、アプリケーションサービスプロバイダに関連付けられた前記モバイル装置のネイティブアプリケーションを含む、請求項６に記載のコンピュータ読取可能なメモリ。
【請求項１０】
前記第１のアプリケーションは、アプリケーションサービスプロバイダに関連付けられたモバイル装置のネイティブアプリケーションを含む、請求項６に記載のコンピュータ読取可能なメモリ。
【請求項１１】
前記第２のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられた前記モバイル装置のブラウザアプリケーションを含む、請求項１０に記載のコンピュータ読取可能なメモリ。
【請求項１２】
前記第２のアプリケーションは、第２のアプリケーションサービスプロバイダに関連付けられた前記モバイル装置の第２のネイティブアプリケーションを含む、請求項１０に記載のコンピュータ読取可能なメモリ。
【請求項１３】
ログインは、表現可能な状態の転送（REST）メソッド呼出を用いた認証サービスで前記ユーザを認証することを含む、請求項６〜１２のいずれかに記載のコンピュータ読取可能なメモリ。
【請求項１４】
前記第２のアプリケーションに提供された前記第２のトークンは、前記第２のアプリケーションに関連付けられたアプリケーションサービスプロバイダにログインするために前記ユーザがログイン信用証明を提供することなく、前記第２のアプリケーションが、前記ユーザの代わりに、前記第２のアプリケーションに関連付けられた前記アプリケーションサービスプロバイダにログインできるようにする、請求項６〜１３のいずれかに記載のコンピュータ読取可能なメモリ。
【請求項１５】
コンピュータによって実現される方法であって、
第１のリモートアプリケーションにアクセスするようにという要求を、コンピュータシステムによって受信するステップを含み、前記要求は、モバイル装置の第１のローカルアプリケーションから受信され、前記方法はさらに、
前記コンピュータシステムによって、認証要求をリモート認証サービスプロバイダコンピュータに提供するステップと、
前記第１のリモートアプリケーションにアクセスするための第１のアクセストークンを、前記コンピュータシステムによって受信するステップと、
前記コンピュータシステムによって、前記第１のアクセストークンを前記第１のローカルアプリケーションに提供するステップと、
前記コンピュータシステムによって、第２のリモートアプリケーションにアクセスするための第２のアクセストークンを提供するステップとを含み、前記第２のアクセストークンは、前記モバイル装置の第２のローカルアプリケーションに提供される、コンピュータによって実現される方法。
【請求項１６】
前記認証要求は、表現可能な状態の転送（REST）メソッド呼出として前記リモート認証サービスプロバイダに提供される、請求項１５に記載のコンピュータによって実現される方法。
【請求項１７】
前記認証要求は、前記モバイル装置のユーザの認証を要求するために提供される、請求項１５または１６に記載のコンピュータによって実現される方法。
【請求項１８】
前記第１のアクセストークンは、前記ユーザの認証に少なくとも部分的に基づいて、前記リモート認証サービスプロバイダから受信される、請求項１７に記載のコンピュータによって実現される方法。
【請求項１９】
前記リモート認証サービスプロバイダから、前記第２のアクセストークンを、前記コンピュータシステムによって受信するステップをさらに含む、請求項１５〜１８のいずれかに記載のコンピュータによって実現される方法。
【請求項２０】
前記第２のアクセストークンは、少なくとも、前記第２のリモートアプリケーションにアクセスするようにという前記第２のローカルアプリケーションからの要求に応答して、前記第２のローカルアプリケーションに提供される、請求項１５〜１８のいずれかに記載のコンピュータによって実現される方法。
【請求項２１】
コンピュータに、請求項１５〜２０のいずれかに記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本願は、２０１１年９月２９日に出願された「モバイルセキュリティおよびシングルサインオン」（MOBILE SECURITY AND SINGLE SIGN-ON）という名称の米国仮出願番号第６１／５４１，０３４号の利益および優先権を主張し、その出願の内容全体はあらゆる目的のためにここに引用により援用される。本願はまた、「モバイルアプリケーション、アイデンティティ関係管理」（MOBILE APPLICATION, IDENTITY RELATIONSHIP MANAGEMENT）という名称の出願連続番号第１３／４８５，４２０号、代理人整理番号第８８３２５−８３１５７２号；「モバイルアプリケーション、アイデンティティインターフェイス」（MOBILE APPLICATION, IDENTITY INTERFACE）という名称の出願連続番号第１３／４８５，５０９号、代理人整理番号第８８３２５−８３１５７３号；「モバイルアプリケーション、シングルサインオン管理」（MOBILE APPLICATION, SINGLE SIGN-ON MANAGEMENT）という名称の出願連続番号第１３／４８５，２８３号、代理人整理番号第８８３２５−８３００３２号；および「モバイルアプリケーション、リソース管理助言」（MOBILE APPLICATION, RESOURCE MANAGEMENT ADVICE）という名称の出願連続番号第１３／４８５，５６９号、代理人整理番号第８８３２５−８３１５７４号の利益および優先権を主張し、各出願の内容全体はここに十分に述べられているかのようにここに引用により援用される。
【０００２】
発明の分野
本発明は一般にモバイルアプリケーションに関し、より特定的にはシングルサインオン管理に関する。
【背景技術】
【０００３】
背景
モバイル装置は、ウェブブラウザ、ネイティブモバイルアプリケーションなどを含む複数の異なるアプリケーションで構成されることが多い。一般に、各アプリケーションは、モバイル装置のユーザらから個別の認証信用証明を要求する場合がある。加えて、各アプリケーションは、サーバのアカウントへのアクセスが与えられる前に、個別にそれ自体をサーバで認証する場合がある。しかしながら、複数の異なるアプリケーションのうちの２つ以上を利用するために同じ装置から複数回ログインすることは、冗長で、時間がかかり、不快であり、安全ではないかもしれない。加えて、複数のログイン要求により、ユーザらは、どのアプリケーションが定期的に信用証明を要求しているかについて、注意力が低下し、気づきにくくなるかもしれない。そのため、そのようなアプリケーションおよび関連付けられたウェブサービスにアクセスすることは、適切に対処されなければ、セキュリティの危険を呈するかもしれない。たとえば、場合によっては、複数のログイン要求により、パスワードフィッシング手法がより成功しやすくなるかもしれない。また、特にモバイル装置ならびに関連付けられたアプリケーションおよび／またはウェブサービスの普及に伴うデータセキュリティは、引き続き進行中の懸念事項である。そのため、この分野における技術的解決策、特にモバイルアプリケーションのための安全なシングルサインオンを実現するための技術的解決策が、引き続き優先事項である。
【発明の概要】
【課題を解決するための手段】
【０００４】
簡単な概要
シングルサインオンを管理するための手法が提供される。いくつかの例では、シングルサインオン機能性は、モバイルアプリケーション、クラウドアプリケーション、および／または他のウェブベースのアプリケーションを利用することにより、モバイル装置上で使用するために提供され得る。たとえば、モバイルアプリケーションまたはモバイルウェブブラウザは、１つ以上のサービスプロバイダで認証すること、またはサービスプロバイダにアクセスすることを要求する場合がある。そのような認証および／またはアクセスを容易にするために、モバイル装置のユーザから認証信用証明が要求されてもよい。成功したログインに少なくとも部分的に基づいて、同じモバイル装置上の他のアプリケーションからのサーバリソースへのアクセスが、信用証明をユーザに連続してまたは繰返し要求することなく提供されてもよい。
【０００５】
少なくとも１つの例によれば、コンピュータ読取可能なメモリは、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、サービスプロバイダにアクセスするようにという１つ以上の要求を受信させる命令を格納していてもよい。いくつかの例では、要求は、モバイル装置の第１のアプリケーションから受信されてもよい。加えて、命令はまた、１つ以上のプロセッサに、第１のアプリケーションに関連付けられたユーザをログインさせてもよい。命令はさらに、１つ以上のプロセッサに、サービスプロバイダにアクセスするためのトークンを第１のアプリケーションに提供させてもよい。第２のトークンが次に、第２のアプリケーションに提供されてもよい。
【０００６】
いくつかの例では、第１のアプリケーションは、第２のアプリケーションのためのシングルサインオン機能性を提供するためのアプリケーションエージェントとして構成されてもよい。加えて、いくつかの例では、第２のアプリケーションは、ウェブブラウザアプリケーションまたはネイティブアプリケーションとして構成されてもよい。
【０００７】
一例では、第１のアプリケーションは、ウェブサービスに関連付けられたブラウザアプリケーションとして構成されてもよく、一方、第２のアプリケーションは、アプリケーションサービスプロバイダに関連付けられたネイティブアプリケーションとして構成されてもよい。ブラウザアプリケーションおよびネイティブアプリケーションは、モバイル装置によって実行されるかまたは他の態様でホストされてもよい。
【０００８】
いくつかの例では、第１のアプリケーションは、モバイル装置のネイティブアプリケーションとして構成されてもよい。ネイティブアプリケーションは、アプリケーションサービスプロバイダに関連付けられていてもよい。加えて、第２のアプリケーションは、ウェブアプリケーションに関連付けられたブラウザアプリケーションとして構成されてもよい。ブラウザアプリケーションは、モバイル装置によって実行されるかまたは他の態様でホストされてもよい。また、いくつかの例では、第２のアプリケーションは、第２のアプリケーションサービスに関連付けられた第２のネイティブアプリケーションとして構成されてもよい。第２のネイティブアプリケーションも、モバイル装置によって実行されるかまたは他の態様でホストされてもよい。
【０００９】
一例では、ユーザのログインは、表現可能な状態の転送（representational state transfer：REST）呼出を利用する認証サービスでのユーザの認証を含んでいてもよい。別の例では、第２のアプリケーションに提供された第２のトークンは、第２のアプリケーションに関連付けられたアプリケーションサービスプロバイダにユーザがログイン信用証明を提供することなく、第２のアプリケーションが、第２のアプリケーションに関連付けられたアプリケーションサービスプロバイダにログインできるようにしてもよい。
【００１０】
上述の例の一部またはすべては、さまざまな認証されたサービスの使いやすさの向上を達成し得る。加えて、上述の例はまた、それらとのユーザ交信のセキュリティを向上させ、そのため、ユーザ、モバイル装置、および／またはモバイルアプリケーションならびに関連付けられたウェブサービスのデータセキュリティを向上させ得る。前述の技術的効果は、以下に説明する追加の技術的効果とともに、特にモバイル装置およびそれらの関連付けられたアプリケーションに関して、データセキュリティおよびユーザ認証の進行中の問題を解決する。
【００１１】
アイデンティティを管理するための手法も提供される。いくつかの例では、アイデンティティ管理、認証、承認、およびトークン交換フレームワークが、モバイル装置、モバイルアプリケーション、クラウドアプリケーション、および／または他のウェブベースのアプリケーションとともに使用するために提供されてもよい。たとえば、モバイルクライアントは、サービスプロバイダのアカウントに関連付けられた１つ以上のアイデンティティ管理動作を行なうように要求してもよい。要求された動作および／または特定のサービスプロバイダに少なくとも部分的に基づいて、アプリケーションプログラミングインターフェイス（application programming interface：API）を利用して、サービスプロバイダのアイデンティティ情報を管理するための１つ以上の命令および／またはメソッド呼出を生成および／または実行してもよい。
【００１２】
少なくとも１つの例によれば、システムは、サービスプロバイダに関連付けられた機能を実行するようにという要求を受信してもよい。要求は、クライアントアプリケーションから受信されてもよく、表現可能な状態の転送（REST）呼出としてフォーマット化されてもよい。加えて、システムはまた、機能の実行が要求されているサービスプロバイダに対応するアクセス管理サービス呼出を判断してもよい。また、システムは、アクセス管理サービス呼出を実行してもよい。
【００１３】
一例では、要求を送信してきたクライアントアプリケーションは、モバイル装置のモバイルアプリケーション、ソフトウェア・アズ・ア・サービス（software as a service：SaaS）アプリケーション、および／またはリッチインターネットアプリケーション（Rich Internet Application：RIA）として実現されてもよい。加えて、いくつかの例では、サービスプロバイダに関連付けられた機能を実行するようにという要求は、認証要求を含んでいてもよい。認証要求は、クライアントアプリケーションのユーザのユーザ識別子（ID）を含んでいてもよい。認証要求はまた、ユーザのパスワード、および／またはクライアントアプリケーションが認証されたことを示すために使用されるクライアントトークンを含んでいてもよい。ユーザIDおよびパスワードは、場合によっては、アクセス管理サービスでユーザを認証するために使用されてもよい。
【００１４】
一例では、システムによって実行されるアクセス管理サービス呼出は、トークン交換を実現するメソッド呼出を含んでいてもよい。
【００１５】
加えて、いくつかの例では、サービスプロバイダに関連付けられた機能を実行するようにという要求は、アクセス要求を含んでいてもよい。アクセス要求は、場合によっては、クライアントが認証されたことを表示するクライアントトークン、ユーザが認証されたことを表示するユーザトークン、および／またはアクセスが要求されているサービスプロバイダの表示を含んでいてもよい。場合によっては、システムは、アクセス管理サービスによってユーザおよび／またはクライアントアプリケーションにサービスプロバイダへのアクセスが与えられたという表示を受信してもよい。この場合、システムは次に、アクセストークンをクライアントアプリケーションに提供してもよい。
【００１６】
一例では、第１のアクセス管理サービスのためのサービス呼出は、第２のアクセス管理サービスのためのサービス呼出と異なっていてもよい。また、場合によっては、利用されるべきアクセス管理サービスは、サービスプロバイダによって特定されてもよいが、クライアントアプリケーションには表示されなくてもよい。このように、クライアントアプリケーションは、REST呼出を、サービスプロバイダのAPIまたは他の構成から独立させることができる。
【００１７】
少なくとも１つの例によれば、システムは、アイデンティティを管理するようにという命令を受信してもよい。システムはまた、管理すべきアイデンティティに関連付けられたアイデンティティ関係を、ユニフォームリソース識別子（uniform resource identifier：URI）としてモデル化するように構成されてもよい。システムはまた、サービスプロバイダに関連付けられたスキーマにURIをマッピングし、および／または要求通りにアイデンティティを管理するためにサービスプロバイダにスキーマを送信してもよい。
【００１８】
いくつかの例では、アイデンティティを管理するようにという受信された命令は、モバイルクライアントアプリケーション、RIA、またはSaaSアプリケーションによって受信されてもよい。受信された命令はまた、REST呼出としてフォーマット化されてもよい。加えて、いくつかの局面では、モデル化されたアイデンティティ関係は、管理すべきアイデンティティ、および／またはアイデンティティと別のエンティティとの関連を含んでいてもよい。また、アイデンティティ関係は、アイデンティティおよび関連を含む文字列に少なくとも部分的に基づいてURIとしてモデル化されてもよい。
【００１９】
リソース管理助言サービスのための手法も提供される。いくつかの例では、リソース管理助言および／または命令が、モバイル装置、モバイルアプリケーション、クラウドアプリケーション、および／または他のウェブベースのアプリケーションとともに使用するために提供されてもよい。たとえば、モバイルクライアントは、サービスプロバイダに関連付けられた１つ以上のリソース管理動作を行なうように要求してもよい。要求された動作および／または特定のサービスプロバイダに少なくとも部分的に基づいて、リソースを管理するための助言および／または命令が提供されてもよい。
【００２０】
少なくとも１つの例によれば、コンピュータ読取可能なメモリは、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、サービスプロバイダのセキュアなリソースを管理するようにという要求を受信させる命令を格納していてもよい。要求は、クライアントアプリケーションから受信されてもよく、表現可能な状態の転送（REST）呼出としてフォーマット化されてもよい。加えて、命令はまた、１つ以上のプロセッサに、セキュアなリソースの管理を実行するための取得経路を判断させてもよい。命令はさらに、１つ以上のプロセッサに、取得経路を進むための命令セットを生成させてもよい。命令セットは、少なくとも１つの命令を含んでいてもよい。また、命令は、１つ以上のプロセッサに、命令セットをクライアントアプリケーションへ送信させてもよい。
【００２１】
一例では、要求を送信してきたクライアントアプリケーションは、モバイル装置のモバイルアプリケーション、ソフトウェア・アズ・ア・サービス（SaaS）アプリケーション、および／またはリッチインターネットアプリケーション（RIA）として実現されてもよい。加えて、いくつかの例では、セキュアなリソースを管理するようにという要求は、セキュアなリソースにアクセスするようにという要求、セキュアなリソースを更新するようにという要求、またはセキュアなリソースを削除するようにという要求を含んでいてもよい。セキュアなリソースは、クライアントアプリケーションのユーザに関連付けられたプロファイル情報、クライアントアプリケーションのユーザに関連付けられた給与支払情報、またはクライアントアプリケーションのユーザに関連付けられた社会的情報を含んでいてもよい。生成された命令は、場合によっては、セキュリティフィルタによって保護されてもよい。いくつかの局面では、取得経路は、セキュアなリソースおよび／またはセキュアなリソースに関連付けられた変更に少なくとも部分的に基づいて、動的に判断されてもよい。
【００２２】
一例では、命令は、１つ以上のプロセッサに、送信された命令セットに少なくとも部分的に基づいて、クライアントアプリケーションからの認証要求を受信させてもよい。命令はまた、１つ以上のプロセッサに、認証要求に少なくとも部分的に基づいて、認証トークンをクライアントアプリケーションに提供させてもよい。
【００２３】
加えて、いくつかの例では、命令は、１つ以上のプロセッサに、セキュアなリソースの管理を実行するための第２の取得経路を判断させ、第２の命令セットを生成させ、第２の命令セットをクライアントに送信させてもよい。
【００２４】
前述の事項は、他の特徴および実施例とともに、以下の明細書、請求項、および添付図面を参照することでより明らかになるであろう。
【００２５】
図面の簡単な説明
添付図面を参照して、詳細な説明を述べる。図面では、参照番号の最も左の数は、その参照番号が最初に現れる図面を識別する。異なる図面で同じ参照番号を使用することは、同様のまたは同一の項目を示す。
【図面の簡単な説明】
【００２６】
【図１】少なくとも１つの例に従った、１つ以上のネットワークを介して接続された１つ以上のRESTサービスコンピュータと、１つ以上のユーザ装置と、１つ以上のアプリケーションプロバイダコンピュータとを含む、モバイル装置のためのシングルサインオンを管理するための例示的なアーキテクチャを示す簡略化されたブロック図である。
【図２】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を示す簡略化されたブロック図である。
【図３】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの追加の特徴を示す簡略化されたブロック図である。
【図４】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を示す簡略化されたプロセスフロー図である。
【図５】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を示す簡略化されたプロセスフロー図である。
【図６】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を示す簡略化されたプロセスフロー図である。
【図７】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を示す簡略化されたプロセスフロー図である。
【図８】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を実現するための例示的なプロセスを示す簡略化されたフロー図である。
【図９】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を実現するための例示的なプロセスを示す簡略化されたフロー図である。
【図１０】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の少なくともいくつかの特徴を実現するための例示的なプロセスを示す簡略化されたフロー図である。
【図１１】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の一実施例に従って使用され得るシステム環境のコンポーネントを示す簡略化されたブロック図である。
【図１２】少なくとも１つの例に従った、ここに説明されるシングルサインオン管理の実施例に従って使用され得るコンピュータシステムを示す簡略化されたブロック図である。
【図１３】少なくとも１つの例に従った、シングルサインオン管理機器を示す簡略化されたブロック図である。
【図１４】少なくとも１つの他の例に従った、シングルサインオン管理機器を示す簡略化されたブロック図である。
【図１５】少なくとも１つの他の例に従った、シングルサインオン管理機器を示す簡略化されたブロック図である。
【発明を実施するための形態】
【００２７】
詳細な説明
概要
以下の説明では、さまざまな実施例が説明される。説明のため、特定の構成および詳細が、実施例の完全な理解を提供するために述べられる。しかしながら、特定の詳細がなくても実施例は現実化されるということは当業者には明らかであろう。また、説明される実施例を不明瞭にしないために、周知の特徴は省略され、または簡略化される場合がある。
【００２８】
本開示の実施例は、とりわけ、コンピューティングリソースおよび／またはアイデンティティインターフェイスサービスコンピューティングシステムを介して、シングルサインオン管理を１つ以上のエンティティ（たとえば、モバイルアプリケーション）に提供することに向けられている。ここに使用されるように、アイデンティティインターフェイスサービスは、シングルサインオンおよび／または認証要求、クライアントトークン、アプリケーショントークン、ユーザトークンなどを管理するための１つ以上のコンピューティングシステムを含んでいてもよい。加えて、アイデンティティインターフェイスサービスは、クライアントアプリケーションと他のサービスプロバイダとの間にプラグ接続可能な（pluggable）インターフェイス層を提供するように構成されてもよい。たとえば、アイデンティティインターフェイスサービスは、クライアントアプリケーション(たとえば、モバイル装置のモバイルアプリケーション、SaaSアプリケーション、RIA、前述の組合せなど）からアイデンティティ管理命令を受信して、適切に変換された命令を１つ以上のサービスプロバイダ、アイデンティティプロバイダ、および／またはアクセス管理プロバイダに提供してもよい。いくつかの例では、モバイルアプリケーションは、ネイティブアプリケーション（たとえば、場合によっては他のソフトウェアによる変換なく、特定のモバイル装置上で実行するように構成されたモバイル装置アプリケーション）、（たとえば、モバイル装置のユーザらにウェブページを表示するための）ウェブブラウザアプリケーション、セキュリティエージェントアプリケーション、ヘルパーアプリケーション、および／または認証委任アプリケーションを含んでいてもよいが、それらに限定されない。
【００２９】
いくつかの局面では、アイデンティティインターフェイスサービスは、あるモバイル装置のモバイルアプリケーションが、そのモバイル装置の他のモバイルアプリケーションの代わりに、ログイン動作（たとえば、認証、承認など）を行なう能力を提供してもよい。このように、ユーザは１度にモバイルアプリケーションのうちの１つにログイン情報を提供してもよい。モバイルアプリケーションは次にユーザをログインさせ、アクセストークンまたは他のアクセス機能性を、そのログイン、ユーザ、モバイル装置、もしくはアプリケーションおよび／またはサービスの他のグループまたはサブグループに関連付けられた他のモバイルアプリケーションに提供してもよい。いくつかの例では、ログイン動作および／または要求は、RESTスタイルでアイデンティティインターフェイスサービスに提供されてもよい。また、いくつかの例では、ログイン動作要求を行なっているモバイルアプリケーションは、ネイティブモバイルアプリケーション、ブラウザアプリケーション、および／またはセキュリティエージェントアプリケーションであってもよい。たとえば、セキュリティエージェントアプリケーションは、ヘルパーアプリケーション、認証委任アプリケーション、もしくは、ここに説明されるシングルサインオンを助けるかまたは他の態様で容易にするために指定された他のアプリケーションであってもよい。つまり、セキュリティエージェントアプリケーションは、ネイティブアプリケーション、ネイティブアプリケーションのグループ、ブラウザアプリケーション、ネイティブおよび／またはブラウザアプリケーションの他のグループ、モバイルアプリケーション（ネイティブおよび／またはブラウザ）のサブグループなどのためのシングルサインオンアプリケーションとして作用するように構成されてもよい。これに代えて、またはこれに加えて、ブラウザアプリケーションまたはネイティブアプリケーションは、他のモバイルアプリケーション、モバイルアプリケーションのグループなどのためのセキュリティエージェントアプリケーションとして作用するように指定され、構成されてもよい。
【００３０】
加えて、いくつかの局面では、アイデンティティサービスは、認証、承認、監査、トークンサービス、ユーザプロファイル管理、パスワード管理、および／またはID管理を提供してもよい。加えて、これらのサービスは、そのようなサービス（たとえば、企業ソリューションによって配備されたサービス、または企業ソリューション内のサービス）とネイティブには交信できないかもしれないモバイルアプリケーションに露出されるかまたは他の態様で提供されてもよい。一例では、アイデンティティインターフェイスサービスはRESTインターフェイスをモバイルアプリケーションに提供して、アイデンティティサービスへのアイデンティティ管理要求の通信を可能にしてもよい。このように、モバイルアプリケーションは、JavaScript Object Notation（JSON）（登録商標）データフォーマット、ハイパーテキスト転送プロトコル（hypertext transfer protocol：HTTP）、および／またはハイパーテキストマークアップ言語（hypertext markup language：HTML）などを利用するものなどのネイティブのインターネットベースの動作を利用してもよい。また、アイデンティティインターフェイスサービスは、企業ソリューション、アイデンティティサービス、アクセス管理サービス、および／または他のアイデンティティ関連ソリューションなどを含むサービスプロバイダのためのプラグイン能力を可能にしてもよい。たとえば、企業ソリューションのアイデンティティサービスは、アイデンティティインターフェイスサービスにプラグインして、通常ならそこから命令および／または要求を受信できないであろうクライアントアプリケーションとの安全な交信を可能にしてもよい。そのようなサービスプロバイダのためにRESTful APIが提供されてもよく、いくつかの例では、RESTful APIを守るためにセキュリティモデルが提供されてもよい。
【００３１】
非限定的な一例では、モバイル装置のセキュリティエージェントアプリケーションは、モバイル装置のモバイルアプリケーションから１つ以上のログイン要求を受信してもよい。要求はあらゆるフォーマットで受信されてもよく、ユーザログイン情報を含んでいてもよく、モバイルアプリケーションに関連付けられた１つ以上のサービスプロバイダ、アプリケーションプロバイダ、または他のコンピューティング装置を識別してもよい。セキュリティエージェントアプリケーションは、１つ以上のログイン要求、認証要求、承認要求などをアイデンティティインターフェイスサービスに送信してもよい。これらの要求は、RESTスタイルでアイデンティティインターフェイスサービスに送られてもよい。次にクライアントトークン、ユーザトークン、および／またはアクセストークンが、アイデンティティインターフェイスサービスから、セキュリティエージェントアプリケーションによって受信されてもよい。いくつかの例では、これらのトークンは、要求されたサービスプロバイダ、アプリケーションプロバイダ、または他のサーバへのアクセスを提供するためのものであってもよい。セキュリティエージェントアプリケーションは、どのモバイルアプリケーションがセキュリティグループ、信頼の輪、または他のシングルサインオングループ（以下、信頼の輪と称する）内にあるかを判断して、受信されたユーザトークンをそれと共有してもよい。加えて、いくつかの例では、セキュリティエージェントアプリケーションは、グループ内のモバイルアプリケーション毎に特定のアクセストークンを要求してもよい。このように、ユーザが同じ信頼の輪内の異なるモバイルアプリケーションを使用しようとする場合、ユーザ情報は再度要求されなくてもよい。また、モバイル装置のモバイルアプリケーションには、優先順位または他のレベルが与えられてもよく、それは、存在する場合、優先順位が最も高いモバイルアプリケーションがセキュリティエージェントアプリケーションとして作用してもよいということを示す。このように、ここに説明されるシングルサインオン管理は、専用のセキュリティエージェントアプリケーションに依存する必要がない。むしろ、モバイル装置のどのブラウザアプリケーションまたはネイティブアプリケーションも、信頼の輪の他のモバイルアプリケーションのためのシングルサインオン動作を行なってもよい。
【００３２】
非限定的な他の例では、アイデンティティインターフェイスサービスは、専用のセキュリティエージェントアプリケーション、セキュリティエージェントアプリケーションとして作用するブラウザアプリケーション、および／またはセキュリティエージェントアプリケーションとして作用するネイティブアプリケーションから、ログイン要求を（場合によっては、REST呼出として）受信するように構成されてもよい。アイデンティティインターフェイスサービスは次に、モバイル装置の他のアプリケーションと共有され得るユーザトークン、クライアントトークン、および／またはアクセストークンを用いて、要求するアプリケーションに応答してもよい。たとえば、アイデンティティインターフェイスサービスは、サービスプロバイダにアクセスしようとしているモバイルアプリケーションから、１つ以上のアイデンティティ伝搬および／またはトークン交換要求を受信してもよい。要求は、RESTスタイルで（すなわち、REST呼出として）受信されてもよく、クライアントアプリケーション、ユーザ、またはモバイル装置が認証されたこと、もしくは認証されるよう要求していることを示してもよい。アイデンティティインターフェイスサービスは、サービスプロバイダ（たとえば、企業ソリューションのアクセス管理サービス）に少なくとも部分的に基づいて、行なうべき適切なアイデンティティ伝搬および／またはトークン交換命令を判断してもよい。アイデンティティインターフェイスサービスは次に、適切なトークン（たとえば、アクセストークン、ユーザトークン、またはクライアントトークン）をモバイルアプリケーションに提供するために、命令を行なってもよい。これに代えて、またはこれに加えて、アイデンティティインターフェイスサービスは、サービスプロバイダが命令を行なうことができるように、サービスプロバイダのAPIに少なくとも部分的に基づいて、命令をフォーマット化してもよい。アイデンティティインターフェイスサービスは次に、フォーマット化された命令または複数の命令をサービスプロバイダに送信してもよい。サービスプロバイダは次に命令を行ない、場合によっては、適切なアクセストークンをアイデンティティインターフェイスサービスに提供してもよい。このように、サービスプロバイダと直接通信しなくても、および／またはサービスプロバイダの特定のおよび／または専用のAPIを知らなくても、（たとえば、モバイルアプリケーションおよびユーザにアクセスが与えられていると仮定して）サービスプロバイダにアクセスするための適切なアクセストークンがモバイルアプリケーションに提供されてもよい。この例はシングルサインオン、アイデンティティ伝搬（すなわち、複数のシステムを通した認証アイデンティティの複製）、および／またはトークン交換（すなわち、以前の認証に基づいたアクセストークンの提供）を説明しているが、アイデンティティインターフェイスサービスは、上述のように、認証、承認、監査、プロファイル管理、パスワード管理、ID管理などを含む他のサービスを実現するためにも構成されてもよい。
【００３３】
章の見出しおよび対応する要約を含むこの簡単な紹介は、読者の便宜のために提供されており、請求項の範囲または前述の章を限定するよう意図されてはいない。また、上述のおよび以下に説明する手法は、多くのやり方で、かつ多くの状況において実現されてもよい。いくつかの例示的な実現化例および状況が、以下により詳細に説明されるように、以下の図面を参照して提供される。しかしながら、以下の実現化例および状況は、多数のうちの一部に過ぎない。
【００３４】
例示的なアーキテクチャ
図１は、モバイルアプリケーションのためのシングルサインオンを管理するための手法が実現され得る簡略化された例示的なシステムまたはアーキテクチャ１００を示す。アーキテクチャ１００では、１人以上のユーザ１０２（すなわち、アカウント保持者）がユーザコンピューティング装置１０４（１）〜（Ｎ）（総称してユーザ装置１０４）を用いて、１つ以上のネットワーク１１４を介して１つ以上のウェブアプリケーション１１０および／またはアプリケーションサービス１１２とそれぞれ通信している１つ以上のブラウザアプリケーション１０６またはネイティブアプリケーション１０８にアクセスしてもよい。いくつかの局面では、ウェブアプリケーション１１０および／またはアプリケーションサービスは、１つ以上のアプリケーションプロバイダコンピュータ１１６を利用するなどにより、コンピューティングリソースサービスまたはサービスプロバイダによってホストされ、管理され、および／または提供されてもよい。１つ以上のアプリケーションプロバイダコンピュータ１１６は、いくつかの例では、ウェブサービス、データストレージ、eメール、アイデンティティ管理、承認および／または認証サービスなどのコンピューティングリソースおよび／またはサービスを提供してもよい。１つ以上のアプリケーションプロバイダコンピュータ１１６はまた、ウェブホスティング、アプリケーション開発プラットホーム、実装プラットホームなどを１人以上のユーザ１０２に提供するように動作可能であってもよい。
【００３５】
いくつかの例では、ブラウザアプリケーション１０６は、ユーザ１０２の代わりにまたはユーザ１０２のために、ユーザ装置１０４を介してウェブコンテンツを検索、提示、および／または横断するように構成されたあらゆるタイプのウェブブラウザであってもよい。場合によっては、ブラウザアプリケーション１０６は、ネットワーク１１４を介してウェブアプリケーション１１０または他のウェブページにアクセスしてもよい。ネイティブアプリケーション１０８は、いくつかの例では、税金アプリケーション、ディレクトリアプリケーション、経費報告アプリケーション、ログインアプリケーション、ライブラリアプリケーション、顧客関係管理（customer relationship management：CRM）ソフトウェアなどを含む、ユーザ装置１０４によって実行されるように設計および／または構成されたあらゆるタイプのモバイルアプリケーションであってもよい。また、場合によっては、ネイティブアプリケーション１０８は、ネットワーク１１４を介して、アプリケーションサービス１１２によって格納および／または提供されたデータおよび／または他のリソースにアクセスしてもよい。たとえば、ネイティブアプリケーションは、ディレクトリ情報および／またはユーザ装置１０４でローカルに格納されていないあらゆるデータを求めて、アプリケーションプロバイダコンピュータ１１４のディレクトリサービスまたはサーバにアクセスする、ディレクトリアプリケーションとして構成されてもよい。
【００３６】
ユーザ１０２はまた、アイデンティティインターフェイスサービスコンピュータ１２０によって実行されるかまたは他の態様でホストされ得るアイデンティティサービスまたは他のサービスプロバイダとネットワーク１１４を介して通信する１つ以上のセキュリティエージェントアプリケーション１１８にアクセスしてもよい。いくつかの例では、セキュリティエージェントアプリケーション１１８は、ヘルパーアプリケーション、認証委任アプリケーション、シングルサインオン（single sign-on：SSO）モバイルアプリケーション、セキュリティエージェント、アプリケーションエージェントなど（以下、「セキュリティエージェントアプリケーション」）であってもよい。セキュリティエージェントアプリケーション１１８は、ユーザ装置１０４の他のモバイルアプリケーション（たとえば、ブラウザアプリケーション１０６および／またはネイティブアプリケーション１０８）の代わりに、またはユーザ装置１０４のユーザ１０２の代わりに、シングルサインオン機能性および／または動作を行なうように構成されてもよい。また、いくつかの例では、セキュリティエージェントアプリケーション１１８は、ここに説明されるシングルサインオン機能性を行なうために、アイデンティティインターフェイスサービスコンピュータ１２０のRESTモジュール１２２との間で、ログイン信用証明、セキュリティ情報、トークンなどを送受信してもよい。また、これに代えて、セキュリティエージェントアプリケーション１１８は、モバイル装置のためのシングルサインオン動作を容易にし得る、アイデンティティインターフェイスサービスコンピュータ１２０および／または他のコンピューティング装置の１つ以上の他のモジュールと通信してもよい。
【００３７】
いくつかの例では、ネットワーク１１４は、ケーブルネットワーク、インターネット、無線ネットワーク、セルラーネットワーク、イントラネットシステム、および／または他の私的および／または公的ネットワークなどの複数の異なるタイプのネットワークのうちのいずれか１つまたはそれらの組合せを含んでいてもよい。図示された例は、ユーザ１０２がネットワーク１１４を通してウェブアプリケーション１１０、アプリケーションサービス１１２、および／またはRESTモジュール１２２にアクセスすることを表わしているが、説明される手法は、ユーザ１０２が固定電話で１つ以上のユーザ装置１０４を介して、キオスクを介して、または他の態様で、１つ以上のサービスプロバイダコンピュータと交信する場合にも同等に当てはめられてもよい。なお、説明される手法は、他のクライアント／サーバ構成（たとえば、セットトップボックスなど）および非クライアント／サーバ構成（たとえば、ローカルに格納されたアプリケーションなど）に当てはめられてもよい。
【００３８】
ブラウザアプリケーション１０６および／またはネイティブアプリケーション１０８は、ユーザ１０２が、データの格納、アクセスおよび／または管理、コンピュータアプリケーションの開発および／または整備、および／またはウェブコンテンツのホストなどのために、アプリケーションプロバイダコンピュータ１１６と交信できるようにしてもよい。ユーザ装置１０４は、携帯電話、スマートフォン、携帯情報端末（personal digital assistant：PDA）、ラップトップコンピュータ、デスクトップコンピュータ、シン・クライアント装置、タブレットPCなどのあらゆるタイプのコンピューティング装置であってもよい。いくつかの例では、ユーザ装置１０４は、ネットワーク１１４を介して、または他のネットワーク接続を介して、アプリケーションプロバイダコンピュータ１１６および／またはアイデンティティインターフェイスサービスコンピュータ１２０と通信していてもよい。また、ユーザ装置１０４は、１つ以上のモバイルアプリケーション、RIA、またはSaaSアプリケーションを実現するように構成されてもよい。しかしながら、いくつかの例では、これらのモバイルアプリケーションは、ウェブアプリケーション１１０および／またはアプリケーションサービス１１２にログインするかまたは他の態様でアクセスするためにアプリケーションプロバイダコンピュータ１１６と交信するための命令を用いてプログラミングされなくてもよく、もしくは当該命令を他の態様で認識していなくてもよい。しかしながら、場合によっては、モバイルアプリケーション（たとえば、セキュリティエージェントアプリケーション１１８、ブラウザアプリケーション１０６、および／またはネイティブアプリケーション１０８）は、アイデンティティインターフェイスサービスコンピュータ１２０と通信または他の態様で交信できてもよい。このように、アイデンティティインターフェイスサービスコンピュータ１２０は、モバイルアプリケーションとアプリケーションプロバイダコンピュータ１１６との間のインターフェイス層として作用してもよい。加えて、アイデンティティインターフェイスサービスコンピュータ１２０は、ログイン機能性および／またはアクセスをウェブアプリケーション１１０および／またはアプリケーションサービス１１２に通信するかまたは他の態様で提供するために、適切な命令および／またはコードをセキュリティエージェントアプリケーション１１８に提供してもよい。
【００３９】
ある例示的な構成では、ユーザ装置１０４は、少なくとも１つのメモリ１２４と、１つ以上の処理部（またはプロセッサ）１２６とを含んでいてもよい。プロセッサ１２６は、ハードウェア、コンピュータ実行可能な命令、ファームウェア、またはそれらの組合せで適切に実現されてもよい。プロセッサ１２６のコンピュータ実行可能な命令またはファームウェアの実現化例は、説明されるさまざまな機能を行なうために好適なプログラミング言語で記述されたコンピュータ実行可能な命令またはマシン実行可能な命令を含んでいてもよい。
【００４０】
メモリ１２４は、プロセッサ１２６上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されたデータとを格納してもよい。ユーザ装置１０４の構成およびタイプに依存して、メモリ１２４は、揮発性（ランダムアクセスメモリ（random access memory：RAM）など）であってもよく、および／または不揮発性（読出専用メモリ（read-only memory：ROM）、フラッシュメモリなど）であってもよい。ユーザ装置１０４はまた、磁気ストレージ、光ディスク、および／またはテープストレージなどを含む追加のストレージ（たとえば、リムーバブルおよび／または非リムーバブルストレージ）１２８を含んでいてもよい。ディスクドライブおよびそれらの関連付けられたコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、およびコンピュータ装置のための他のデータの不揮発性ストレージを提供してもよい。いくつかの実現化例では、メモリ１１４は、静的ランダムアクセスメモリ（static random access memory：SRAM）、動的ランダムアクセスメモリ（dynamic random access memory：DRAM）、またはROMなどの複数の異なるタイプのメモリを含んでいてもよい。
【００４１】
ともにリムーバブルおよび非リムーバブルであるメモリ１２４、追加のストレージ１２８はすべて、コンピュータ読取可能な記憶媒体の例である。たとえば、コンピュータ読取可能な記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納のためのあらゆる方法または技術で実現される、揮発性または不揮発性、リムーバブルまたは非リムーバブルの媒体を含んでいてもよい。メモリ１２４および追加のストレージ１２８はすべて、コンピュータ記憶媒体の例である。
【００４２】
ユーザ装置１０４はまた、ユーザ装置１０４が、格納されたデータベース、別のコンピューティング装置またはサーバ（たとえば、アプリケーションプロバイダコンピュータ１１６、アイデンティティインターフェイスサービスコンピュータ１２０など）、ユーザ端末、および／またはネットワーク１１４上の他の装置と通信することを可能にする通信接続部１３０を含んでいてもよい。ユーザ装置１０４はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカ、プリンタなどの入出力（input/output：I/O）装置１３２を含んでいてもよい。
【００４３】
メモリ１２４の内容をより詳細に見てみると、メモリ１２４は、オペレーティングシステム１３４と、ブラウザアプリケーション１０６、ネイティブアプリケーション１０８（たとえば、税金アプリケーション、ディレクトリアプリケーション、CRMアプリケーションなど）、および／またはセキュリティエージェントアプリケーション１１８を少なくとも含む、ここに開示される特徴を実現するための１つ以上のアプリケーションプログラムまたはサービスとを含んでいてもよい。上述のように、いくつかの例では、セキュリティエージェントアプリケーション１１８は、他のモバイルアプリケーションのためのシングルサインオンを容易にするためのスタンドアローンアプリケーションであってもよい。しかしながら、いくつかの例では、ブラウザアプリケーション１０６またはネイティブアプリケーション１０８は、（たとえば、優先順位、アプリケーションの予め定められたリストなどに基づいて）モバイルアプリケーションのグループのためのセキュリティエージェントアプリケーションとして作用するように構成されてもよい。加えて、メモリ１２４は、アイデンティティインターフェイスサービスコンピュータ１２０に送られる、ユーザID、パスワード、他のユーザ情報、および／またはログイン要求などのアクセス信用証明および／または他のユーザ情報を格納していてもよい。いくつかの例では、他のクライアント情報は、装置ID、クッキー、IPアドレス、位置などの、アカウントアクセス要求を認証するための情報を含んでいてもよい。加えて、他のクライアント情報は、セキュリティ質問への回答またはユーザ装置１０４によって取得された地理的位置を提供されたユーザ１０２を含んでいてもよい。
【００４４】
いくつかの局面では、アイデンティティインターフェイスサービスコンピュータ１２０は、モバイル、デスクトップ、シン・クライアント、および／またはクラウドコンピューティング装置、たとえばサーバなどのあらゆるタイプのコンピューティング装置であってもよい。いくつかの例では、アイデンティティインターフェイスサービスコンピュータ１２０は、ネットワーク１１４を介して、または他のネットワーク接続を介してユーザ装置１０４と通信していてもよい。アイデンティティインターフェイスサービスコンピュータ１２０は、おそらくはクラスタとして配置された１つ以上のサーバを、サーバファームとして、または互いに関連付けられていない個別のサーバとして含んでいてもよい。これらのサーバは、シングルサインオンサービスおよび／またはアイデンティティインターフェイスサービスなどを含むここに説明される特徴を行なうかまたは他の態様でホストするように構成されてもよい。加えて、いくつかの局面では、アイデンティティインターフェイスサービスコンピュータ１２０は、統合分散コンピューティング環境の一部として構成されてもよい。
【００４５】
ある例示的な構成では、アイデンティティインターフェイスサービスコンピュータ１２０は、少なくとも１つのメモリ１３６と、１つ以上の処理部（またはプロセッサ）１３８とを含んでいてもよい。プロセッサ１３８は、ハードウェア、コンピュータ実行可能な命令、ファームウェア、またはそれらの組合せで適切に実現されてもよい。プロセッサ１３８のコンピュータ実行可能な命令またはファームウェアの実現化例は、説明されるさまざまな機能を行なうために好適なプログラミング言語で記述されたコンピュータ実行可能な命令またはマシン実行可能な命令を含んでいてもよい。
【００４６】
メモリ１３６は、プロセッサ１３８上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されたデータとを格納してもよい。アイデンティティインターフェイスサービスコンピュータ１２０の構成およびタイプに依存して、メモリ１３６は、揮発性（ランダムアクセスメモリ（RAM）など）であってもよく、および／または不揮発性（読出専用メモリ（ROM）、フラッシュメモリなど）であってもよい。アイデンティティインターフェイスサービスコンピュータ１２０またはサーバはまた、追加のストレージ１４０を含んでいてもよく、それはリムーバブルストレージおよび／または非リムーバブルストレージを含んでいてもよい。追加のストレージ１４０は、磁気ストレージ、光ディスク、および／またはテープストレージなどを含んでいてもよい。ディスクドライブおよびそれらの関連付けられたコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、およびコンピュータ装置のための他のデータの不揮発性ストレージを提供してもよい。いくつかの実現化例では、メモリ１３６は、静的ランダムアクセスメモリ（SRAM）、動的ランダムアクセスメモリ（DRAM）、またはROMなどの複数の異なるタイプのメモリを含んでいてもよい。
【００４７】
ともにリムーバブルおよび非リムーバブルであるメモリ１３６、追加のストレージ１４０はすべて、コンピュータ読取可能な記憶媒体の例である。たとえば、コンピュータ読取可能な記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納のためのあらゆる方法または技術で実現される、揮発性または不揮発性、リムーバブルまたは非リムーバブルの媒体を含んでいてもよい。メモリ１３６および追加のストレージ１４０はすべて、コンピュータ記憶媒体の例である。
【００４８】
アイデンティティインターフェイスサービスコンピュータ１１４はまた、アイデンティティインターフェイスコンピュータ１２０が、格納されたデータベース、別のコンピューティング装置またはサーバ、ユーザ端末、および／またはネットワーク１１４上の他の装置と通信することを可能にする通信接続部１４２を含んでいてもよい。アイデンティティインターフェイスサービスコンピュータ１２０はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、ディスプレイ、スピーカ、プリンタなどの入出力（I/O）装置１３４４を含んでいてもよい。
【００４９】
メモリ１３６の内容をより詳細に見てみると、メモリ１３６は、オペレーティングシステム１４６と、RESTインターフェイスモジュール１２２を含む、ここに開示される特徴を実現するための１つ以上のアプリケーションプログラムまたはサービスとを含んでいてもよい。いくつかの例では、RESTインターフェイスモジュール１２２は、REST APIを提供し、REST API呼出を受信し、適切なアイデンティティサービスおよび／またはログインメソッド呼出（すなわち、API呼出）を判断し、メソッド呼出を提供し、および／またはメソッド呼出に関連付けられた命令を行なうように構成されてもよい。言い換えれば、RESTインターフェイスモジュール１２２は、ユーザ装置１０４のセキュリティエージェントアプリケーション１１８と交信するために利用されてもよい。
【００５０】
限定のない単なる一例として、ユーザ装置１０４のセキュリティエージェントアプリケーション１１８は、ある特定のアイデンティティ管理動作（たとえば、ユーザログイン）を行なうためにREST API呼出を送信してもよい。RESTインターフェイスモジュール１２２はAPI呼出を受信して、アプリケーションプロバイダコンピュータ１１６のための適切なメソッド呼出を判断してもよい。いくつかの例では、RESTインターフェイスモジュール１２２は、アクセストークン（たとえば、ユーザトークン、クライアントトークン、および／またはアクセストークン）をセキュリティエージェントアプリケーション１１８に提供するように構成されてもよい。これらのトークンは次に、ユーザ１０２が信頼されたグループ内のモバイルアプリケーションのために複数回ログインしなくてもいいように、ユーザ装置１０４の他のモバイルアプリケーションと適切に共有されてもよい。セキュリティエージェントアプリケーション１１８および／またはアイデンティティインターフェイスサービスコンピュータ１２０の動作の数例を、以下により詳細に説明する。
【００５１】
アイデンティティインターフェイスサービスコンピュータ１２０および／またはユーザ装置１０４に存在し得る追加のタイプのコンピュータ記憶媒体（一時的でないものであってもよい）は、プログラム可能ランダムアクセスメモリ（PRAM）、SRAM、DRAM、RAM、ROM、電気的消去可能プログラム可能読出専用メモリ（electrically erasable programmable read-only memory：EEPROM）、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読出専用メモリ（compact disc read-only memory：CD-ROM）、デジタル多用途ディスク（digital versatile disc：DVD）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、もしくは、所望の情報を格納するために使用可能であり、アイデンティティインターフェイスサービスコンピュータ１２０および／またはユーザ装置１０４によってアクセス可能な他のあらゆる媒体などを含んでいてもよい。上述の媒体のいずれかの組合せも、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００５２】
これに代えて、コンピュータ読取可能な通信媒体は、コンピュータ読取可能な命令、プログラムモジュール、もしくは、搬送波などのデジタル信号または他の送信内で送信される他のデータを含んでいてもよい。しかしながら、ここに使用されるように、コンピュータ読取可能な記憶媒体は、コンピュータ読取可能な通信媒体を含まない。
【００５３】
図２は、モバイルアプリケーションのためのシングルサインオンを管理するための追加の手法が実現され得る簡略化された例示的なシステムまたはアーキテクチャ２００を示す。アーキテクチャ２００では、ユーザ装置２０２（たとえば、少なくともユーザ装置１０４に似たモバイル装置）は、１つ以上のネットワーク２１６を介して１つ以上のサービスプロバイダコンピュータ２１２および／または１つ以上のアイデンティティサービスコンピュータ２１４と交信するために、ブラウザアプリケーション２０４と、１つ以上のネイティブアプリケーション（たとえば、第１のネイティブアプリケーション２０６および第２のネイティブアプリケーション２０８）と、セキュリティエージェントアプリケーション２１０とで構成されてもよい。いくつかの例では、各モバイルアプリケーション（すなわち、少なくともブラウザアプリケーション２０４および／またはネイティブアプリケーション２０６、２０８）は、ウェブアプリケーション２２４、第１のアプリケーションサービス２２６、および第２のアプリケーションサービス２２８と適切に交信するためのソフトウェア開発キット（software development kit：SDK）情報２１８、２２０、２２２をそれぞれ含んでいてもよい。これに代えて、SDK２１８、２２０、２２２は、アイデンティティサービスコンピュータ２１４と、またはより特定的にはアイデンティティサービスコンピュータ２１４のRESTモジュール２３０と適切に交信するための開発情報を提供するように構成されてもよい。また、いくつかの例では、セキュリティエージェントアプリケーション２１０は、ウォレット２３２と結合されていてもよい。ウォレット２３２は、ユーザ装置２０２のユーザに関連付けられたユーザ信用証明および／またはログイン情報を格納するための、メモリ内の位置または別個のメモリ装置であってもよい。
【００５４】
図１のネットワーク１１４と同様に、ネットワーク２１６は、ケーブルネットワーク、インターネット、無線ネットワーク、セルラーネットワーク、イントラネットシステム、および／または他の私的および／または公的ネットワークなどの複数の異なるタイプのネットワークのうちのいずれか１つまたはそれらの組合せを含んでいてもよい。図示された例は、ユーザ装置２０２がネットワーク２１６を通してウェブアプリケーション２２４、アプリケーションサービス２２６、２２８、および／またはRESTモジュール２３０にアクセスすることを表わしているが、説明される手法は、ユーザ装置２０２が固定電話を通して、キオスクを介して、または他の態様で、そのようなアプリケーションおよび／またはモジュールと交信する場合にも同等に当てはめられてもよい。なお、説明される手法は、他のクライアント／サーバ構成（たとえば、セットトップボックスなど）および非クライアント／サーバ構成（たとえば、ローカルに格納されたアプリケーションなど）に当てはめられてもよい。
【００５５】
非限定的な一例では、ブラウザアプリケーション２０４および第１のネイティブアプリケーション２０６は、ユーザ装置２０２上に存在するモバイルアプリケーションの信頼の輪、または他の信頼されたグループに含まれていてもよい。この例では、第２のネイティブアプリケーション２０８は、そのグループのメンバーではないかもしれない。つまり、何らかの特定の理由により、信頼の輪は、ブラウザアプリケーション２０４および第１のネイティブアプリケーション２０６のみを含むように規定されたかもしれない。そのため、シングルサインオン機能性は、グループ（すなわち、信頼の輪）のメンバーに対してのみ行なわれてもよい。しかしながら、他の例では、ユーザ装置２０２のより多くのまたはより少ないモバイルアプリケーションが、信頼されたグループに含まれていてもよい。ここでは、セキュリティエージェントアプリケーション２１０は、ブラウザアプリケーション２０４から、ウェブアプリケーション２２４にログインするようにという要求を受信してもよい。これに応答して、セキュリティエージェントアプリケーション２１０は、ユーザ装置２０２のユーザから、ユーザ名、パスワードなどのログイン信用証明を要求してもよい。セキュリティエージェントアプリケーション２１０は次に、ネットワーク２１６を介して、ユーザおよび／またはコンテキスト情報２３４をRESTモジュール２３０に送信してもよい。この情報２３４は、RESTスタイルで送信されてもよい。
【００５６】
RESTモジュール２３０は次に、REST呼出を、ユーザ装置２０２のユーザ、ユーザ装置２０２、および／またはブラウザアプリケーション２０４を認証するためのログイン命令へと変換してもよい。アイデンティティサービスコンピュータ２１４は、他のコンピューティング装置またはモジュールが認証命令を行なうように実行または命令してもよい。認証されると、RESTモジュール２３０は、ユーザトークンおよび／またはクライアントトークンをセキュリティエージェントアプリケーション２１０に戻してもよい。場合によっては、ユーザトークンおよび／またはクライアントトークンは、ユーザ装置２０２のユーザおよび／またはユーザ装置自体２０２が認証されたことを表わしてもよい。同様に、ユーザトークンおよび／またはクライアントトークンは、要求しているアプリケーション（この場合、ブラウザアプリケーション２０４）が認証されたことを表わすかまたは他の態様で示してもよい。ログインが成功すると、セキュリティアプリケーションは、アプリケーションプロバイダコンピュータ２１２の適切なサービス（たとえば、ウェブアプリケーション２２４および／またはアプリケーションサービス２２６、２２８）にアクセスするためのアクセストークンも受信してもよい。図２では、アクセストークンは、縞模様のダイヤモンド型形状によって識別可能である。そのため、一例では、セキュリティエージェントアプリケーション２１０は、ウェブアプリケーション２２４にログインするようにという最初の要求に少なくとも部分的に基づいて、ブラウザアプリケーション２０４のためのアクセストークン（たとえば、斜めの縞模様のトークン）を要求してもよい。セキュリティエージェントアプリケーション２１０は次に、アクセストークンをブラウザアプリケーション２０４に提供してもよく、それは次にアクセストークン（ここでも、斜めの縞模様のトークン）をウェブアプリケーション２２４に提供してもよい。このアクセストークンは、ユーザ装置２０２のブラウザアプリケーション２０４がアイデンティティサービスコンピュータ２１４で認証されたことをウェブアプリケーションに示してもよい。ウェブアプリケーション２２４は次に、ブラウザアプリケーションと安全に交信してもよい。
【００５７】
加えて、いくつかの例では、セキュリティエージェントアプリケーション２１０はその後、第１のネイティブアプリケーション２０６から、第１のアプリケーションサービス２２６にアクセスするようにというの要求を受信してもよい。この場合、第１のネイティブアプリケーション２０６はブラウザアプリケーション２０４と同じ信頼の輪内にあるため、また、セキュリティエージェントアプリケーション２１０はすでにユーザおよび／またはユーザ装置２０２を認証しているため（すなわち、ユーザおよび／またはクライアントトークンがすでに受信されているため）、セキュリティエージェントアプリケーション２１０は、ユーザ装置２０２のユーザのユーザ信用証明を再要求することなく、アイデンティティサービスコンピュータ２１４からアクセストークン（この場合、水平の縞模様のトークン）を要求できてもよい。つまり、セキュリティエージェントアプリケーション２１０が一旦ユーザおよび装置２０２を認証すると、セキュリティエージェントアプリケーション２１０は、信頼の輪の他のアプリケーションのためにシングルサインオン機能性を実行できてもよい。しかしながら、（上述のように、第２のネイティブアプリケーション２０８が信頼の輪内にないと仮定して）ユーザが第２のネイティブアプリケーション２０８を介して第２のアプリケーションサービス２２８にログインするよう要求した場合、セキュリティエージェントアプリケーション２１０は、その動作用のアクセストークンを要求および／または受信できないであろう。
【００５８】
加えて、他の例では、ユーザ装置２０２は、専用のセキュリティエージェントアプリケーション２１０で構成されていなくてもよい。この場合、モバイルアプリケーションのうちの１つ以上（すなわち、ブラウザアプリケーション２０４および／またはネイティブアプリケーション２０６、２０８）は、セキュリティエージェントアプリケーション２１０として作用してもよい。すなわち、信頼の輪が一旦形成されると、信頼の輪の各アプリケーションには優先順位が与えられてもよい。優先順位は、どのモバイルアプリケーションがそのグループのためのシングルサインオンヘルパー（またはセキュリティ）アプリケーションとして作用すべきであるかを判断するかまたは他の態様で示してもよい。非限定的な一例では、図２に示す３つのモバイルアプリケーション２０４、２０６、２０８がすべて、信頼の輪の一部であってもよい。加えて、第２のネイティブアプリケーション２０８に最も高い優先順位が与えられてもよく、次にブラウザアプリケーション２０４が続いてもよい。そのため、ユーザが３つのモバイルアプリケーションのうちの１つにログインしようとすると、ユーザ装置はまず、優先順位の最も高いアプリケーション（この例では、第２のネイティブアプリケーション２０８）がユーザ装置２０２上にインストールされているかどうかをチェックしてもよい。インストールされている場合、第２のネイティブアプリケーション２０８は、セキュリティエージェントアプリケーション２１０として作用し、REST要求をアイデンティティサービスコンピュータ２１４に送るかまたは信頼の輪についての認証を実行し、および／またはアクセストークンを受信して共有してもよい。これに代えて、第２のネイティブアプリケーション２０８がユーザ装置上にインストールされていない場合、ブラウザアプリケーション２０４が、信頼の輪のためのシングルサインオン動作を行なうためにセキュリティエージェントアプリケーション２１０として作用してもよい。どちらにしても、ユーザが信頼の輪の１つのアプリケーションに一旦ログインすると、信頼の輪の他のアプリケーションにアクセスするためにユーザ信用証明は不要であろう。
【００５９】
上述のように、少なくとも１つの例では、環境またはアーキテクチャ１００および／または２００の１つ以上の局面は、アイデンティティサービスコンピュータ１２０、２１４によってホストされるものなどのような分散プログラム実行サービスを取入れてもよく、および／または分散プログラム実行サービスに取入れられてもよい。図３は、図１および図２のアイデンティティサービスコンピュータ１２０、２１４の追加の局面および／または特徴を例示する簡略化されたアーキテクチャ３００を示す。また、いくつかの例では、アイデンティティインターフェイスサービスは実際には、RESTサービスを、その多くのサービスのうちの１つとして実現してもよい。たとえば、図３は、図１のアイデンティティサービスコンピュータ１２０および／または図２のアイデンティティサービスコンピュータ２１４として実現されたもののようなアイデンティティインターフェイスサービス３０２が、SaaSアプリケーション３０４、モバイルアプリケーション３０６、および／またはRIA３０８などの１つ以上のクライアントアプリケーションから、情報、要求、および／または命令を受信することを例示している。上述のように、これらの要求は、クライアントアプリケーション３０４、３０６、３０８によって、REST呼出としてフォーマット化されてもよく、アイデンティティインターフェイスサービス３０２によって提供されるREST APIに少なくとも部分的に基づいていてもよい。加えて、アイデンティティインターフェイスサービス３０２は、プラグ接続可能層３１４を介して、１つ以上のサービスプロバイダ／データリポジトリ３１０および／またはデータ階層３１２と通信していてもよい。上述のように、プラグ接続可能層３１４を提供することにより、１つ以上のサービスプロバイダ／データリポジトリ３１０は、オンザフライでおよび／またはそれが交信するクライアントアプリケーションのタイプとは独立して、サービス３０２に追加されても、および／または取外されてもよい。このように、サービス３０２は柔軟性を保持してもよい。
【００６０】
いくつかの例では、サービスプロバイダ／データリポジトリ３１０は、１つ以上のセキュリティポリシーサービス３１６、アクセス管理サービス３１８、ディレクトリサービス３２０、データベース３２２、および／またはアイデンティティストア３２４（たとえば、ライトウェイトディレクトリアクセスプロトコル（lightweight directory access protocol：LDAP）サーバ）を含んでいてもよい。加えて、いくつかの局面によれば、サービスプロバイダ／データリポジトリ３１０は、アクセスソフトウェア開発キット（SDK）３２６、信頼サービス３２８、および／またはアイデンティティライブラリ３３０などの１つ以上のプラグ接続可能サービスと通信していてもよい。いくつかの例では、アクセスSDK３２６、信頼サービス３２８、および／またはアイデンティティライブラリ３３０は、プラグ接続可能層３１４を介してサービスプロバイダ／データリポジトリ３１０をアイデンティティインターフェイスサービス３０２にプラグインするためのインターフェイス層を共同で構成してもよい。たとえば、アクセスSDK３２６は、アクセス管理サービス３１８をサービス３０２にプラグインすることを担当してもよい。
【００６１】
アイデンティティインターフェイスサービス３０２はまた、データ階層３１２の１つ以上の実行時間データストア３３４、監査データストア３３６、および／または構成データストア３３８を制御し、管理し、または他の態様でそれらと通信するための管理モジュール３３２を含んでいてもよい。データ階層３１２は、インフラストラクチャプラットフォーム３４０を介してサービス３０２と通信していてもよく、インフラストラクチャプラットフォーム３４０は、データ階層３１２に取付けられ、内部ファイル管理、ロギング、監視、および／または他の管理タスクを行なうように構成されてもよい。場合によっては、管理モジュール３３２およびデータ階層３１２は、アイデンティティインターフェイスサービス３０２に関連付けられたサービスおよび／またはデータを制御し、構成し、管理し、および／または他の態様で対処することを担当していてもよい。加えて、アイデンティティインターフェイスサービス３０２はまた、セキュリティフィルタ３４２、要求／応答ハンドラ３４４、１つ以上のRESTサービスエンジン３４６、および／またはサービスプロバイダインターフェイス（service provider interface：SPI）フレームワーク３４８を含んでいてもよい。
【００６２】
いくつかの局面では、セキュリティフィルタ３４２は、アイデンティティインターフェイスサービス３０２によって提供されるREST APIのセキュリティを保持するように構成されてもよい。このように、承認および／または認証されたクライアントアプリケーションのみにREST APIが提供されてもよく、および／または、承認および／または認証されたクライアントアプリケーションからのAPI呼出のみが処理されてもよい。要求／応答ハンドラ３４４は、クライアントアプリケーション３０４、３０６、３０８などから要求を受信し、それらに応答を提供するように構成されてもよい。いくつかの例では、RESTサービスエンジン３４６は、規則遵守の強制、インフラストラクチャセキュリティの強化、および／またはアイデンティティインターフェイスサービス３０２のサービス動作の円滑化などの、アイデンティティインターフェイスサービス３０２のポリシーを支配するように構成されてもよい。
【００６３】
さらに、SPIフレームワーク３４８は、サービスプロバイダ／データリポジトリ３１０のための適切なメソッド呼出および／または命令を変換し、マッピングし、または他の態様で判断してもよい。これらのメソッド呼出および／または命令は、受信したREST API呼出、および／または要求が関連付けられているサービスプロバイダに少なくとも部分的に基づいていてもよい。限定のない単なる例として、要求／応答ハンドラ３４４は、アイデンティティ関係を更新するようにという要求を受信してもよい。応答は、クライアントアプリケーション３０４、３０６、３０８のうちの１つからのREST呼出としてフォーマット化されてもよい。要求／応答ハンドラ３４４は要求をSPIフレームワーク３４８に転送してもよく、そこで１つ以上の異なる命令または命令の組が判断されてもよい。たとえば、命令は、要求が向けられたサービスプロバイダ／データリポジトリ３１０に依存して異なっていてもよい。つまり、要求がデータベース３２０に対するものであった場合、SPIフレームワーク３４８は、要求がLDAPアイデンティティストア３２４に対するものであった場合とは異なる、アイデンティティ関係を更新するための命令（または命令の組）を判断してもよい。
【００６４】
いくつかの局面では、SPIフレームワーク３４８の実現は、認証SPI３５０、承認SPI３５２、プロファイルSPI３５４、および／または他のID SPI３５６などの１つ以上のSPIを利用することを含んでいてもよい。加えて、認証SPI３５０は、１つ以上のアクセス管理プロバイダ３５８および／または１つ以上の信頼サービスプロバイダ３６０との交信を提供するように構成されてもよい。承認SPI３５２は、１つ以上のアクセス管理プロバイダ３５８との交信を提供するように構成されてもよい。プロファイルSPI３５４は、１つ以上のアイデンティティサービスプロバイダ３６２および／またはディレクトリサービスプロバイダ３６４との交信を提供するように構成されてもよい。また、他のID SPI３５６は、パスワード管理サービス、ポリシー管理サービス、トークン交換サービス、および／またはユーザプロビジョニングサービスなどの１つ以上の他のサービスプロバイダ３６６との交信を提供するように構成されてもよい。このように、１つ以上の個別のSPIは、プラグ接続可能層３１４を介してサービスプロバイダ／データリポジトリ３１０と通信することを担当していてもよい。つまり、SPIフレームワーク３４８は、クライアントアプリケーション３０４、３０６、３０８と１つ以上のサービスプロバイダ３１０との間でプロキシとして作用してもよい。
【００６５】
上述のように、上に述べた例および／または局面の一部またはすべては、さまざまな認証されたサービス（たとえば、モバイルアプリケーションなど）の使いやすさの向上を達成するための技術的効果を提供し得る。加えて、上述の例はまた、そのようなモバイルアプリケーションとのユーザ交信のセキュリティを向上させ、そのため、ユーザ、モバイル装置、および／またはモバイルアプリケーションならびにそれらに関連付けられたウェブサービスのデータセキュリティを向上させ得る。前述の技術的効果は、以下に説明する追加の技術的効果とともに、特にモバイル装置およびそれらの関連付けられたアプリケーションおよびデータに関して、データセキュリティおよびユーザ認証の進行中の問題を解決する。
【００６６】
また、図１〜図３に示す例示的なアーキテクチャ、ツール、およびコンピューティング装置は、単なる例示として提供されている。多くの他の動作環境、システムアーキテクチャ、および装置構成が可能である。したがって、本開示の実施例は、どの特定の動作環境、システムアーキテクチャ、または装置構成にも限定されるよう解釈されるべきではない。
【００６７】
例示的なプロセス
図４は、上述のようなシングルサインオン（SSO）管理とともに行なわれる例示的な装置登録の簡略化されたプロセスフロー４００を示す。いくつかの例では、簡略化されたプロセスフロー４００は、図１のユーザ装置１０４および／またはアイデンティティインターフェイスサービスコンピュータ１２０などの１つ以上のコンピューティング装置によって行なわれてもよい。いくつかの局面では、モバイルユーザ４０２は、図１のユーザ装置１０４および／または図２のユーザ装置２０２などのモバイル装置にアクセスしてもよい。加えて、いくつかの例では、モバイル装置は、ビジネスアプリケーション４０４（たとえば、ブラウザアプリケーション、ネイティブアプリケーションなど）および／またはSSOアプリケーション４０６（たとえば、少なくとも図１、図２を参照して上述されたセキュリティエージェントアプリケーション）を含んでいてもよい。また、いくつかの例では、モバイル装置は、１つ以上のネットワーク４１２を介して、RESTサーバ４０８（または他のアイデンティティサービス）および／または１つ以上のサービスプロバイダ４１０（たとえば、モバイル装置のモバイルアプリケーションのためにデータをホストするアクセス管理サービスおよび／またはサーバ）と交信してもよい。上述のように、少なくとも図１のネットワーク１１４および／または図２のネットワーク２１６を参照して、あらゆる数および／または組合せのネットワーク（有線および／または無線）が好適であり得る。
【００６８】
少なくとも１つの非限定的な例では、プロセスフロー４００は、４１４で、モバイルユーザ４０２がビジネスアプリケーション４０４にアクセスしようとしたときに開始してもよい。これに応答して、ビジネスアプリケーション４０４は、４１６で、セキュリティエージェントアプリケーション４０６からセッションおよび／またはアクセストークンを取得しようとしても（たとえば、それらに対する要求を行なっても）よい。４１８で、セキュリティエージェントアプリケーション４０６は、ユーザ信用証明（たとえば、ユーザ識別子（ID）、パスワードなど）を要求するために、ログインページをモバイルユーザ４０２に提示してもよい。これに応答して、モバイルユーザ４０２は、４２０で、そのようなユーザ信用証明をセキュリティエージェントアプリケーション４０６に提供してもよい。いくつかの例では、セキュリティエージェントアプリケーション４０６は次に、４２２で、ユーザ信用証明、属性、および／またはコンテキスト情報（たとえば、セキュリティエージェントアプリケーションID）を、ネットワーク４１２を介してRESTサーバ４０８に提供することにより、モバイルユーザ４０２の装置を登録しようとしてもよい。４２４で、RESTサーバ４０８は、少なくともユーザ信用証明を含む認証要求を、サービスプロバイダ４１０に送信してもよい。いくつかの例では、４２６で、ログインおよび／または登録セッションを示すためにSSOアプリケーションハンドルが生成されてもよく、いくつかの例では、それと同時に、４２８で、RESTサービス４０８が属性および／またはSSOアプリケーションIDをサービスプロバイダ４１０に提供してもよい。４３０で、サービスプロバイダ４１０は、モバイル装置用の登録セッションを示すための装置ハンドルを返送してもよい。また、４３２で、RESTサーバ４０８は、SSOアプリケーションハンドルおよび装置ハンドルをセキュリティエージェントアプリケーション４０６に送信してもよく、これによりモバイル装置が登録されたことを示す。つまり、プロセス４００は、モバイル装置がSSOサービス用に登録されたことを示すために使用可能な装置トークンをモバイル装置に提供してもよい。
【００６９】
図５は、上述のようなシングルサインオン（SSO）管理とともに行なわれる例示的なアプリケーション登録の簡略化されたプロセスフロー５００を示す。いくつかの例では、簡略化されたプロセスフロー５００は、図１のユーザ装置１０４および／またはアイデンティティインターフェイスサービスコンピュータ１２０などの１つ以上のコンピューティング装置によって行なわれてもよい。いくつかの局面では、モバイルユーザ５０２は、図１のユーザ装置１０４および／または図２のユーザ装置２０２などのモバイル装置にアクセスしてもよい。加えて、いくつかの例では、モバイル装置は、ビジネスアプリケーション５０４（たとえば、ブラウザアプリケーション、ネイティブアプリケーションなど）および／またはSSOアプリケーション５０６（たとえば、少なくとも図１、図２を参照して上述されたセキュリティエージェントアプリケーション）を含んでいてもよい。また、いくつかの例では、モバイル装置は、１つ以上のネットワーク５１２を介して、RESTサーバ５０８（または他のアイデンティティサービス）および／または１つ以上のサービスプロバイダ５１０（たとえば、モバイル装置のモバイルアプリケーションのためにデータをホストするアクセス管理サービスおよび／またはサーバ）と交信してもよい。上述のように、あらゆる数および／または組合せのネットワーク（有線および／または無線）が好適であり得る。
【００７０】
少なくとも１つの非限定的な例では、プロセスフロー５００は、５１４で、モバイルユーザ５０２がビジネスアプリケーション５０４にアクセスしようとしたときに開始してもよい。これに応答して、ビジネスアプリケーション５０４は、５１６で、セキュリティエージェントアプリケーション５０６からセッションおよび／またはアクセストークンを取得しようとしても（たとえば、それらに対する要求を行なっても）よい。５１８で、セキュリティエージェントアプリケーション５０６は、ユーザ信用証明（たとえば、ユーザID、パスワードなど）を要求するために、ログインページをモバイルユーザ５０２に提示してもよい。これに応答して、モバイルユーザ５０２は、５２０で、そのようなユーザ信用証明をセキュリティエージェントアプリケーション５０６に提供してもよい。いくつかの例では、セキュリティエージェントアプリケーション５０６は次に、５２２で、ユーザ信用証明、属性、および／またはコンテキスト情報（たとえば、セキュリティエージェントアプリケーションID）を、ネットワーク５１２を介してRESTサーバ５０８に提供することにより、ビジネスアプリケーションを登録しようとしてもよい。５２４で、RESTサーバ５０８は、少なくともユーザ信用証明を含む認証要求を、サービスプロバイダ５１０に送信してもよい。いくつかの例では、５２６で、ログインおよび／または登録セッションを示すためにSSOアプリケーションハンドルが生成されてもよく、いくつかの例では、それと同時に、５２８で、RESTサービス５０８が属性および／またはSSOアプリケーションIDをサービスプロバイダ５１０に提供してもよい。５３０で、サービスプロバイダ５１０は、ビジネスアプリケーション用の登録セッションを示すための装置ハンドルを返送してもよい。また、５３２で、RESTサーバ５０８は、SSOアプリケーションハンドルおよび装置ハンドルをセキュリティエージェントアプリケーション５０６に送信してもよく、これによりビジネスアプリケーションが登録されたことを示す。セキュリティエージェントアプリケーション５０６は次に、５３４で、アプリケーションハンドルをビジネスアプリケーションに送信してもよい。つまり、プロセス５００は、アプリケーションがSSOサービス用に登録されたことを示すために使用可能なアプリケーション（またはクライアント）トークンをビジネスアプリケーションに提供してもよい。５３６で、ビジネスアプリケーション５０４は、RESTサーバ５０８からアクセストークンを取得するようにという要求を送信してもよい。５３８で、RESTサーバは、適切なサービスプロバイダ５１０にアクセストークンを提供してもよく、および／または要求を転送してもよい。
【００７１】
図６は、上述のようなシングルサインオン（SSO）管理とともに行なわれる例示的なユーザログインの簡略化されたプロセスフロー６００を示す。いくつかの例では、簡略化されたプロセスフロー６００は、図１のユーザ装置１０４および／またはアイデンティティインターフェイスサービスコンピュータ１２０などの１つ以上のコンピューティング装置によって行なわれてもよい。この例では、モバイルユーザ６０２は、図１のユーザ装置１０４および／または図２のユーザ装置２０２などのモバイル装置にアクセスしてもよい。加えて、いくつかの例では、モバイル装置は、ビジネスアプリケーション６０４（たとえば、税金アプリケーション、ディレクトリアプリケーション、経費報告アプリケーションなどを含むネイティブアプリケーション）および／またはセキュリティエージェントアプリケーション６０６（たとえば、少なくとも図１、図２を参照して上述されたセキュリティエージェントアプリケーション）を含んでいてもよい。また、いくつかの例では、モバイル装置は、１つ以上のネットワーク６１２を介して、RESTサーバ６０８（または他のアイデンティティサービス）および／または１つ以上のサービスプロバイダ６１０（たとえば、モバイル装置のモバイルアプリケーションのためにデータをホストするアクセス管理サービス、アイデンティティサービス、および／またはサーバ）と交信してもよい。上述のように、あらゆる数および／または組合せのネットワーク（有線および／または無線）が好適であり得る。
【００７２】
少なくとも１つの非限定的な例では、プロセスフロー６００は、モバイルユーザ６０２がモバイル装置のビジネスアプリケーション６０４を具体的に使用する（すなわち、モバイル装置のブラウザアプリケーションとは対照的に、モバイル装置のネイティブアプリケーションが使用される）際のシナリオを説明していてもよい。プロセスフロー６００は、６１４で、モバイルユーザ６０２がビジネスアプリケーション６０４にアクセスしようとしたときに開始してもよい。これに応答して、ビジネスアプリケーション６０４は、６１６で、セキュリティエージェントアプリケーション６０６からセッションおよび／またはアクセストークンを取得しようとしても（たとえば、それらに対する要求を行なっても）よい。６１８で、セキュリティエージェントアプリケーション６０６は、ユーザ信用証明（たとえば、ユーザID、パスワードなど）を要求するために、ログインページをモバイルユーザ６０２に提示してもよい。これに応答して、モバイルユーザ６０２は、６２０で、そのようなユーザ信用証明をセキュリティエージェントアプリケーション６０６に提供してもよい。いくつかの例では、セキュリティエージェントアプリケーション６０６は次に、６２２で、ユーザ信用証明、属性、および／またはコンテキスト情報（たとえば、セキュリティエージェントアプリケーションID）を、ネットワーク６１２を介してRESTサーバ６０８に提供することにより、ビジネスアプリケーション６０４を登録および／または認証しようとしてもよい。一例では、RESTサーバ６０８は、６２３で、モバイルユーザ６０２を認証し、モバイル装置および／またはモバイルユーザ６０２のためのユーザおよび／またはアクセストークンを生成するかまたは他の態様で取得してもよい。しかしながら、他の例では、サービスプロバイダ６１０などの他のサービスプロバイダが、認証を行なってもよい。この場合、RESTサーバ６０８は、６２６で、サービスプロバイダ６１０からユーザおよび／またはアクセストークンを受信してもよい。いずれにしても、６２８で、RESTサーバ６０８は、ネットワーク６１２を介してユーザおよび／またはアクセストークンをセキュリティエージェントアプリケーション６０６に提供してもよい。６３０で、セキュリティエージェントアプリケーション６０６は、ユーザおよび／またはアクセストークンをビジネスアプリケーション６０４に、および／またはモバイルユーザ６０２に提供してもよい。ビジネスアプリケーション６０４は次に、６３２で、アプリケーションコンテンツ（たとえば、サーバからのページまたはローカルコンテンツを含むページ）をモバイルユーザ６０２に提供してもよい。
【００７３】
図７は、上述のようなシングルサインオン（SSO）管理とともに行なわれる例示的なユーザログインの簡略化されたプロセスフロー７００を示す。いくつかの例では、簡略化されたプロセスフロー７００は、図１のユーザ装置１０４および／またはアイデンティティインターフェイスサービスコンピュータ１２０などの１つ以上のコンピューティング装置によって行なわれてもよい。この例では、モバイルユーザ７０２は、図１のユーザ装置１０４および／または図２のユーザ装置２０２などのモバイル装置にアクセスしてもよい。加えて、いくつかの例では、モバイル装置は、ブラウザアプリケーション７０４（たとえば、ウェブブラウザ）および／またはセキュリティエージェントアプリケーション７０６（たとえば、少なくとも図１、図２を参照して上述されたセキュリティエージェントアプリケーション）を含んでいてもよい。また、いくつかの例では、モバイル装置は、１つ以上のネットワーク７１２を介して、ウェブサーバ７０７（たとえば、ウェブページを供給するように構成さえた図１のウェブアプリケーション１１０）、RESTサーバ７０８（または他のアイデンティティサービス）、および／または１つ以上のサービスプロバイダ７１０（たとえば、モバイル装置のモバイルアプリケーションのためにデータをホストするアクセス管理サービス、アイデンティティサービス、および／またはサーバ）と交信してもよい。上述のように、あらゆる数および／または組合せのネットワーク（有線および／または無線）が好適であり得る。
【００７４】
少なくとも１つの非限定的な例では、プロセスフロー７００は、モバイルユーザ７０２がモバイル装置のブラウザアプリケーション７０４を具体的に使用する（すなわち、モバイル装置のネイティブおよび／またはビジネスアプリケーションとは対照的に、モバイル装置のウェブブラウザが使用される）際のシナリオを説明していてもよい。プロセスフロー７００は、７１４で、モバイルユーザ７０２がブラウザアプリケーション７０４にアクセスしようとしたときに開始してもよい。これに応答して、ブラウザアプリケーション７０４は、７１６で、このアクセスの試みをネットワーク７１２を介してウェブサーバ７０７に通信してもよい。場合によっては、ウェブサーバ７０８は、７１８で、将来の通信で認証が要求され得ることをサービスプロバイダ７１０（たとえば、アイデンティティ管理アプリケーションまたはサービス）に示すために、アクセス要求情報をサービスプロバイダ７１０に提供してもよい。７２０で、サービスプロバイダ７１０は、ネットワーク７１２を介して、ブラウザアプリケーション７０４に、モバイルユーザ７０２からユーザ信用証明を要求するように表示するかまたは他の態様で命令してもよい。少なくともいくつかの構成に基づいて、ブラウザアプリケーション７０４は、７２２で、ユーザ信用証明要求をセキュリティエージェントアプリケーション７０６に向け直してもよい。７２４で、セキュリティエージェントアプリケーション７０６は、ユーザ信用証明（たとえば、ユーザID、パスワードなど）を要求するために、ログインページをモバイルユーザ７０２に提示してもよい。これに応答して、モバイルユーザ７０２は、７２６で、そのようなユーザ信用証明をセキュリティエージェントアプリケーション７０６に提供してもよい。
【００７５】
いくつかの例では、セキュリティエージェントアプリケーション７０６は次に、７２８で、ユーザ信用証明、属性、および／またはコンテキスト情報（たとえば、セキュリティエージェントアプリケーションID）を、ネットワーク７１２を介してRESTサーバ７０８に提供することにより、ブラウザアプリケーション７０４を登録および／または認証しようとしてもよい。一例では、RESTサーバ７０８は、モバイルユーザ７０２を認証し、モバイル装置および／またはモバイルユーザ７０２のためのユーザおよび／またはアクセストークンを生成するかまたは他の態様で取得してもよい。しかしながら、他の例では、サービスプロバイダ７１０などの他のサービスプロバイダが、認証を行なってもよい。この場合、RESTサーバ７０８は、７３０で、サービスプロバイダ７１０に信用証明を送信してもよく、７３２で、サービスプロバイダ７１０からユーザおよび／またはアクセストークンを受信してもよい。いずれにしても、７３４で、RESTサーバ７０８は、ネットワーク７１２を介してユーザおよび／またはアクセストークンをセキュリティエージェントアプリケーション７０６に提供してもよい。７３６で、セキュリティエージェントアプリケーション７０６は、クッキーを注入するために、Web Viewまたはサービスプロバイダ７１０への他のメソッド呼出を作成してもよい。いくつかの局面では、セキュリティエージェントアプリケーション７０６は、７３８で、どのウェブページをモバイルユーザ７０２に供給すべきかを示す適切な情報をブラウザアプリケーションに向け直してもよい。７４０で、ブラウザアプリケーション７０４は、この情報をウェブサーバ７０７に向け直してもよい。また、７４２で、ウェブサーバ７０は、要求されたウェブページをモバイルユーザ７０２に供給してもよい。
【００７６】
図８〜図１０は、シングルサインオン管理を提供するためのそれぞれのプロセス８００、９００、および１０００を示す簡略化された例示的なフロー図を示す。これらのプロセスは論理フロー図として例示されており、それらの各動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実現可能な一連の動作を表わす。コンピュータ命令の状況では、動作は、１つ以上のプロセッサによって実行されると記載された動作を行なう、１つ以上のコンピュータ読取可能な記憶媒体に格納されたコンピュータ実行可能な命令を表わす。一般に、コンピュータ実行可能な命令は、特定の機能を行ない、または特定のデータ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載されている順序は限定として解釈されるよう意図されてはおらず、プロセスを実現するためにあらゆる数の記載された動作を任意の順序でおよび／または並行に組合せてもよい。
【００７７】
加えて、プロセスのうちの一部、いずれか、またはすべては、実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で行なわれてもよく、１つ以上のプロセッサに対してまとめて実行するコード（たとえば、実行可能な命令、１つ以上のコンピュータプログラム、または１つ以上のアプリケーション）として、ハードウェアにより、またはそれらの組合せによって実現されてもよい。上述のように、コードは、たとえば、１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形で、コンピュータ読取可能な記憶媒体上に格納されてもよい。コンピュータ読取可能な記憶媒体は、一時的でないものであってもよい。
【００７８】
いくつかの局面では、図８のプロセス８００は、図１の１つ以上のユーザ装置１０２および／またはアイデンティティインターフェイスサービスコンピュータ１２０によって行なわれてもよい。プロセス８００は、８０２で、サービスプロバイダにアクセスするようにという要求を受信することによって開始してもよい。要求は、モバイル装置の第１のアプリケーションから受信されてもよい。いくつかの局面では、第１のアプリケーションは、ネイティブアプリケーションまたはブラウザアプリケーションであってもよい。加えて、場合によっては、要求は、モバイル装置のセキュリティエージェントアプリケーション（たとえば、ヘルパーアプリケーションおよび／または認証委任アプリケーション）によって受信されてもよい。８０４で、プロセス８００は、第１のアプリケーションに関連付けられたユーザ（たとえば、モバイル装置のユーザ）をログインさせてもよい。いくつかの例では、ユーザのログインに応答して、プロセス８００は、８０６で、サービスプロバイダにアクセスするためのトークンを第１のアプリケーションに提供してもよい。プロセス８００は、８０８で、ユーザに関連付けられたモバイル装置の第２のアプリケーションに第２のトークンを提供することにより、終了してもよい。このように、シングルサインオンが達成されてもよく、ユーザは、複数のアプリケーションを介して複数のサービスプロバイダにアクセスするために複数回認証されなくてもよい。
【００７９】
図９は、シングルサインオン管理の特徴を提供するためのプロセス９００を示す簡略化された例示的なフロー図である。いくつかの局面では、図９のプロセス９００は、図１の１つ以上のユーザ装置１０２および／またはアイデンティティインターフェイスサービスコンピュータ１２０によって行なわれてもよい。プロセス９００は、９０２で、第１のリモートアプリケーションにアクセスするようにという要求を受信することによって開始してもよい。リモートアプリケーションは、アプリケーション機能性をモバイルアプリケーションまたはモバイル装置に提供するように構成されたサーバまたは他のコンピュータであってもよい。場合によっては、要求は、モバイル装置の第１のローカルアプリケーションから受信されてもよく、ローカルアプリケーションは、リモートアプリケーションからコンテンツを通信するかまたは他の態様で受信するように構成されている。第１のローカルアプリケーションは、それがモバイル装置によって実行され、または他の態様でモバイル装置上に存在するという点で、「ローカル」であってもよい。９０４で、プロセス９００は、（たとえば、アクセス要求に少なくとも部分的に基づいた）認証要求をリモート認証プロバイダに提供してもよい。プロセス９００はまた、９０６で、第１のリモートアプリケーションにアクセスするための第１のアクセストークンを受信してもよい。場合によっては、第１のアクセストークンは、リモート認証プロバイダから受信されてもよい。９０８で、プロセス９００は、第１のアクセストークンを第１のローカルアプリケーションに提供してもよい。９１０で、プロセス９００は、第２のアクセストークンをモバイル装置の第２のローカルアプリケーションに提供することにより、終了してもよい。この第２のアクセストークンは、第２のローカルアプリケーションが第２のリモートアプリケーションにアクセスできるようにするためのものであってもよい。場合によっては、プロセス９００は、ユーザの、モバイル装置の、および／または、第１および／または第２のローカルアプリケーションの成功したログインに少なくとも部分的に基づいて、第１および第２のアクセストークンを第１および第２のローカルアプリケーションにそれぞれ提供してもよい。
【００８０】
図１０は、シングルサインオン管理の特徴を提供するためのプロセス１０００を示す簡略化された例示的なフロー図である。いくつかの局面では、図１０のプロセス１０００は、図１の１つ以上のユーザ装置１０２および／またはアイデンティティインターフェイスサービスコンピュータ１２０によって行なわれてもよい。プロセス１０００は、モバイル装置の第１のローカルアプリケーションから、第１のリモートアプリケーションにアクセスするようにという要求に対する要求を受信することによって開始してもよい。上述のように、リモートアプリケーションは、データ、処理および／またはサービスをローカルアプリケーションに提供するように構成されたウェブサービス、ウェブサーバ、および／またはあらゆるコンピュータであってもよい。１００４で、プロセス１０００は、認証要求をリモート認証プロバイダに提供してもよい。いくつかの例では、１００６で、プロセス１０００はまた、リモート認証プロバイダから、第１のリモートアプリケーションにアクセスするための第１のアクセストークンを受信してもよい。つまり、第１のローカルアプリケーションは、第１のリモートアプリケーションにアクセスするために、ユーザ、モバイル装置、および／またはローカルアプリケーションが認証されたことを示すアクセストークンを必要としてもよい。１００８で、プロセス１０００は、第１のアクセストークンを第１のローカルアプリケーションに提供してもよい。いくつかの例では、プロセス１０００はまた、１０１０で、リモート認証プロバイダから、第２のリモートアプリケーションにアクセスするための第２のアクセストークンを受信してもよい。つまり、ユーザ、モバイル装置、および／またはローカルアプリケーションがすでに認証されているため、リモート認証装置は、特定の信頼されたグループ（たとえば、信頼の輪または信頼の輪の輪）内にある他のリモートアプリケーションにアクセスするためのアクセストークンを積極的に提供してもよい。１０１２で、プロセス１０００は、モバイル装置の第２のローカルアプリケーションから、第２のリモートアプリケーションにアクセスするようにという要求を受信してもよい。この例では、プロセス１０００はすでに、第２のリモートアプリケーションにアクセスするためのアクセストークンを受信している。このため、プロセス１０００は、１０１４で、第２のアクセストークンを第２のローカルアプリケーションに提供することにより、終了してもよい。
【００８１】
例示的なシステム
図１１は、本開示の一実施例に従って使用され得るシステム環境１１００のコンポーネントを例示する簡略化されたブロック図である。図示されているように、システム環境１１００は、ウェブブラウザ、専用クライアント（たとえば、オラクルフォームズ（Oracle Forms））などのクライアントアプリケーションを動作させるように構成された１つ以上のクライアントコンピューティング装置１１０２、１１０４、１１０６、１１０８を含む。さまざまな実施例では、クライアントコンピューティング装置１１０２、１１０４、１１０６、および１１０８は、サーバ１１１２と交信してもよい。
【００８２】
クライアントコンピューティング装置１１０２、１１０４、１１０６、１１０８は、汎用パーソナルコンピュータ（たとえば、マイクロソフトウィンドウズ（Microsoft Windows）（登録商標）および／またはアップルマッキントッシュ（Apple Macintosh）（登録商標）オペレーティングシステムのさまざまなバージョンを起動するパーソナルコンピュータおよび／またはラップトップコンピュータを含む）、携帯電話またはPDA（マイクロソフトウィンドウズモバイル（Microsoft Windows Mobile）などのソフトウェアを起動し、インターネット、ｅメール、SMS、ブラックベリー、または他の通信プロトコルに対応する）、および／または商業的に入手可能なUNIX（登録商標）またはUNIX状オペレーティングシステム（さまざまなGNU／LINUX（登録商標）オペレーティングシステムなどを含む）のいずれかを起動するワークステーションコンピュータであってもよい。これに代えて、クライアントコンピューティング装置１１０２、１１０４、１１０６、および１１０８は、ネットワーク（たとえば、以下に説明するネットワーク１１１０）を通して通信可能な、シン・クライアントコンピュータ、インターネット対応ゲーミングシステム、および／またはパーソナルメッセージング装置などの他の電子装置であってもよい。例示的なシステム環境１１１０は４つのクライアントコンピューティング装置を有して図示されているが、あらゆる数のクライアントコンピューティング装置がサポートされてもよい。センサなどを有する装置といった他の装置がサーバ１１１２と交信してもよい。
【００８３】
システム環境１１００は、ネットワーク１１１０を含んでいてもよい。ネットワーク１１１０は、TCP／IP、SNA、IPX、AppleTalkなどを含むさまざまな商業的に入手可能なプロトコルのいずれかを用いてデータ通信をサポート可能な、当業者にはよく知られたあらゆるタイプのネットワークであってもよい。単なる一例として、ネットワーク１１１０は、イーサネット（登録商標）ネットワーク、トークリング（Token-Ring）ネットワークなどのローカルエリアネットワーク（local area network：LAN）；広域ネットワーク；仮想プライベートネットワーク（virtual private network：VPN）などを含む仮想ネットワーク；インターネット；イントラネット；エクストラネット；公衆交換電話網（public switched telephone network：PSDN）；赤外線ネットワーク；無線ネットワーク（たとえば、IEEE８０２、１１スィートのプロトコル、当該技術分野で公知のブルートゥース（登録商標）プロトコル、および／または他の無線プロトコルのうちのいずれかの下で動作するネットワーク）；および／またはこれらのおよび／または他のネットワークの組合せであってもよい。
【００８４】
システム環境１１００はまた、汎用コンピュータ、特化されたサーバコンピュータ（たとえば、ＰＣサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラップマウント型サーバなどを含む）専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは他の適切な構成および／または組合せであってもよい１つ以上のサーバコンピュータ１１１２を含む。さまざまな実施例では、サーバ１１１２は、前述の開示に説明された１つ以上のサービスまたはソフトウェアアプリケーションを起動するように適合されてもよい。たとえば、サーバ１１１２は、本開示の一実施例に従って上述された処理を行なうためのサーバに対応していてもよい。
【００８５】
サーバ１１１２は、上述のもののいずれかを含むオペレーティングシステム、および商業的に入手可能なサーバオペレーティングシステムを起動してもよい。サーバ１１１２はまた、HTTPサーバ、FTPサーバ、CGIサーバ、Java（登録商標）サーバ、データベースサーバなどを含むさまざまな追加のサーバアプリケーションおよび／または中間階層アプリケーションのいずれかを起動してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース（Sybase）、IBMなどから商業的に入手可能なものなどを含む。
【００８６】
システム環境１１００はまた、１つ以上のデータベース１１１４、１１１６を含んでいてもよい。データベース１１１４、１１１６は、さまざまな場所に存在していてもよい。一例として、データベース１１１４、１１１６のうちの１つ以上は、サーバ１１１２にとってローカルな（および／またはサーバ１１１２内に存在する）一時的でない記憶媒体上に存在していてもよい。これに代えて、データベース１１１４、１１１６は、サーバ１１１２からリモートであってもよく、ネットワークベースの接続または専用の接続を介してサーバ１１１２と通信していてもよい。１組の実施例では、データベース１１１４、１１１６は、当業者にはよく知られたストレージエリアネットワーク（storage area network：SAN）内に存在していてもよい。同様に、サーバ１１１２に起因する機能を行なうための必要なファイルは適宜、サーバ１１１２上にローカルに、および／またはリモートに格納されてもよい。１組の実施例では、データベース１１１４、１１１６は、SQLフォーマット化されたコマンドに応答してデータを格納、更新、および検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【００８７】
図１２は、本開示の実施例に従って使用され得るコンピュータシステム１２００の簡略化されたブロック図である。たとえば、サーバ１２２および／または１２１２は、システム１２００などのシステムを用いて実現されてもよい。コンピュータシステム１２００は、バス１２２４を介して電気的に結合され得るハードウェア要素を含んで図示されている。ハードウェア要素は、１つ以上の中央処理装置（CPU）１２０２、１つ以上の入力装置１２０４（たとえば、マウス、キーボードなど）および１つ以上の出力装置１２０６（たとえば、表示装置、プリンタなど）を含んでいてもよい。コンピュータシステム１２００はまた、１つ以上の記憶装置１２０８を含んでいてもよい。一例として、記憶装置１２０８は、ディスクドライブ、光ストレージ装置、ならびに、ランダムアクセスメモリ（RAM）および／または読出専用メモリ（ROM）などの固体記憶装置などの装置を含んでいてもよく、それらはプログラム可能、フラッシュ更新可能などであってもよい。
【００８８】
コンピュータシステム１２００はさらに、コンピュータ読取可能な記憶媒体リーダー１２１２、通信サブシステム１２１４（たとえば、モデム、ネットワークカード（無線または有線）、赤外線通信装置など）、およびワーキングメモリ１２１８を含んでいてもよく、それは上述のようなRAMおよびROM装置を含んでいてもよい。いくつかの実施例では、コンピュータシステム１２００はまた、処理加速部１２１６を含んでいてもよく、それは、デジタル信号プロセッサ（digital signal processor：DSP）、特定用途プロセッサなどを含んでいてもよい。
【００８９】
コンピュータ読取可能な記憶媒体リーダー１２１２はさらに、コンピュータ読取可能な記憶媒体１２１０に接続可能であり、ともに（そしてオプションで記憶装置１２０８と組合されて）、コンピュータ読取可能な情報を一時的におよび／またはより永続的に含むための、リモートの、ローカルな、固定された、および／またはリムーバブルな記憶装置プラス記憶媒体を包括的に表わしている。通信システム１２１４は、データが、システム環境１２００に関して上述したネットワーク１２１２および／または他のコンピュータと交換されるようにしてもよい。
【００９０】
コンピュータシステム１２００はまた、アプリケーションプログラム（クライアントアプリケーション、ウェブブラウザ、中間階層アプリケーション、RDBMSなどであってもよい）などの、オペレーティングシステム１２２０および／または他のコード１２２２を含むワーキングメモリ１２１８内に現在位置するように図示されたソフトウェア要素を含んでいてもよい。例示的な一実施例では、ワーキングメモリ１２１８は、上述のようなリライングパーティおよびオープン承認に関連する処理のために使用される実行可能なコードおよび関連付けられたデータ構造を含んでいてもよい。コンピュータシステム１２００の代替的な実施例は、上述のものからの多くの変更例を有していてもよい、ということが理解されるべきである。たとえば、カスタマイズされたハードウェアも使用されてもよく、および／または、特定の要素が、ハードウェア、ソフトウェア（アプレットなどのポータブルソフトウェアを含む）、または双方で実現されてもよい。また、ネットワーク入出力装置などの他のコンピューティング装置への接続が採用されてもよい。
【００９１】
図１３は、一例に従ったシングルサインオン管理機器１３００を例示する簡略化されたブロック図である。シングルサインオン管理機器１３００のブロックは、本発明の原理を実行するために、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって実現されてもよい。図１３で説明されるブロックは、上述のような本発明の原理を実現するために、組合されても、またはサブブロックに分離されてもよい、ということは当業者には理解される。したがって、ここでの説明は、ここに説明される機能的ブロックのあらゆる可能な組合せ、分離、またはさらなる定義をサポートし得る。
【００９２】
図１３に示すように、シングルサインオン管理機器１３００は、いくつかの実施例では、受信部１３０１と提供部とを含む。他の実施例では、シングルサインオン管理機器１３００は、判断部１３０３をさらに含む。
【００９３】
いくつかの実施例では、受信部１３０１は、第１のアプリケーションから、第２のアプリケーションに関連付けられた認証要求を受信するように構成されている。提供部１３０２は、第１のアプリケーションまたは第２のアプリケーションにアクセス可能なサービスプロバイダに第２のアプリケーションがアクセスできるようにするためのアクセストークンを、第１のアプリケーションに提供するように構成されている。判断部１３０３は、認証要求に含まれる信用証明に少なくとも部分的に基づいて、ユーザがいつ認証されたかを判断するように構成されており、判断は、ユーザが認証されたという表示を第三者のサービスから受信することに少なくとも部分的に基づいている。
【００９４】
好ましくは、第１のアプリケーションは、モバイル装置のセキュリティエージェントアプリケーションを含み、セキュリティエージェントアプリケーションは、第２のアプリケーションおよびモバイル装置の他のアプリケーションのうちの少なくとも１つのためのシングルサインオンを提供するように構成されている。
【００９５】
好ましくは、第１のアプリケーションは、モバイル装置のネイティブアプリケーションを含み、ネイティブアプリケーションは、第２のアプリケーションおよびモバイル装置の他のアプリケーションのうちの少なくとも１つのためのシングルサインオンを提供するように構成されている。
【００９６】
好ましくは、ネイティブアプリケーションは、組込型ウェブブラウザで構成されている。
【００９７】
図１４は、別の例に従ったシングルサインオン管理機器１４００を例示する簡略化されたブロック図である。シングルサインオン管理機器１４００のブロックは、本発明の原理を実行するために、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって実現されてもよい。図１４で説明されるブロックは、上述のような本発明の原理を実現するために、組合されても、またはサブブロックに分離されてもよい、ということは当業者には理解される。したがって、ここでの説明は、ここに説明される機能的ブロックのあらゆる可能な組合せ、分離、またはさらなる定義をサポートし得る。
【００９８】
図１４に示すように、シングルサインオン管理機器１４００は、受信部１４０１と、ログイン部１４０２と、第１の提供部１４０３と、第２の提供部１４０４とを含む。
【００９９】
いくつかの実施例では、受信部１４０１は、第１のアプリケーションから、サービスプロバイダにアクセスするようにという要求を受信するように構成されている。ログイン部１４０２は、第１のアプリケーションに関連付けられたユーザをログインさせるように構成されている。第１の提供部１４０３は、サービスプロバイダにアクセスするためのトークンを、第１のアプリケーションに提供するように構成されている。第２の提供部１４０４は、第２のトークンを、ユーザに関連付けられた第２のアプリケーションに提供するように構成されている。
【０１００】
好ましくは、第１のアプリケーションは、第２のアプリケーションのためのシングルサインオンを提供するように構成された、モバイル装置のセキュリティエージェントアプリケーションを含む。
【０１０１】
好ましくは、第２のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられたモバイル装置のブラウザアプリケーション、アプリケーションサービスプロバイダに関連付けられたモバイル装置のネイティブアプリケーション、または、ハイブリッドアプリケーションサービスプロバイダに関連付けられた、組込型ブラウザを有するネイティブアプリケーションとして構成されたモバイル装置のハイブリッドアプリケーションを含む。
【０１０２】
好ましくは、第１のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられたモバイル装置のブラウザアプリケーションを含み、第２のアプリケーションは、アプリケーションサービスプロバイダに関連付けられたモバイル装置のネイティブアプリケーションを含む。
【０１０３】
好ましくは、第１のアプリケーションは、アプリケーションサービスプロバイダに関連付けられたモバイル装置のネイティブアプリケーションを含む。
【０１０４】
好ましくは、第２のアプリケーションは、ウェブアプリケーションサービスプロバイダに関連付けられたモバイル装置のブラウザアプリケーションを含む。
【０１０５】
好ましくは、第２のアプリケーションは、第２のアプリケーションサービスプロバイダに関連付けられたモバイル装置の第２のネイティブアプリケーションを含む。
【０１０６】
好ましくは、ログイン部１４０２は、表現可能な状態の転送（REST）メソッド呼出を用いた認証サービスでユーザを認証する認証部を含む。
【０１０７】
好ましくは、第２のアプリケーションに提供された第２のトークンは、第２のアプリケーションに関連付けられたアプリケーションサービスプロバイダにログインするためにユーザがログイン信用証明を提供することなく、第２のアプリケーションが、ユーザの代わりに、第２のアプリケーションに関連付けられたアプリケーションサービスプロバイダにログインできるようにする。
【０１０８】
図１５は、さらに別の例に従ったシングルサインオン管理機器１５００を例示する簡略化されたブロック図である。シングルサインオン管理機器１５００のブロックは、本発明の原理を実行するために、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって実現されてもよい。図１５で説明されるブロックは、上述のような本発明の原理を実現するために、組合されても、またはサブブロックに分離されてもよい、ということは当業者には理解される。したがって、ここでの説明は、ここに説明される機能的ブロックのあらゆる可能な組合せ、分離、またはさらなる定義をサポートし得る。
【０１０９】
図１５に示すように、シングルサインオン管理機器１５００は、第１の受信部１５０１と、第１の提供部１５０２と、第２の受信部１５０３と、第２の提供部１５０４と、第３の提供部１５０５とを含む。
【０１１０】
いくつかの実施例では、第１の受信部１５０１は、第１のリモートアプリケーションにアクセスするようにという要求を受信するように構成されており、要求は、モバイル装置の第１のローカルアプリケーションから受信される。第１の提供部１５０２は、認証要求をリモート認証サービスプロバイダコンピュータに提供するように構成されている。第２の受信部１５０３は、第１のリモートアプリケーションにアクセスするための第１のアクセストークンを受信するように構成されている。第２の提供部１５０４は、第１のアクセストークンを第１のローカルアプリケーションに提供するように構成されている。第３の提供部１５０５は、第２のリモートアプリケーションにアクセスするための第２のアクセストークンを提供するように構成されており、第２のアクセストークンは、モバイル装置の第２のローカルアプリケーションに提供される。
【０１１１】
好ましくは、認証要求は、表現可能な状態の転送（REST）メソッド呼出としてリモート認証サービスプロバイダに提供される。
【０１１２】
好ましくは、認証要求は、モバイル装置のユーザの認証を要求するために提供される。
好ましくは、第１のアクセストークンは、ユーザの認証に少なくとも部分的に基づいて、リモート認証サービスプロバイダから受信される。
【０１１３】
好ましくは、シングルサインオン管理機器１４００は、リモート認証サービスプロバイダから第２のアクセストークンを受信する第３の受信部１５０６をさらに含む。
【０１１４】
好ましくは、第２のアクセストークンは、少なくとも、第２のリモートアプリケーションにアクセスするようにという第２のローカルアプリケーションからの要求に応答して、第２のローカルアプリケーションに提供される。
【０１１５】
この発明の一局面によれば、第１のアプリケーションから、第２のアプリケーションに関連付けられた認証要求を受信するステップと、第１のアプリケーションまたは第２のアプリケーションにアクセス可能なサービスプロバイダに第２のアプリケーションがアクセスできるようにするためのアクセストークンを、第１のアプリケーションに提供するステップとを含む、シングルサインオン管理のための方法が提供される。
【０１１６】
この発明の別の局面によれば、第１のアプリケーションから、第２のアプリケーションに関連付けられた認証要求を受信するための手段と、第１のアプリケーションまたは第２のアプリケーションにアクセス可能なサービスプロバイダに第２のアプリケーションがアクセスできるようにするためのアクセストークンを、第１のアプリケーションに提供するための手段とを含む、シングルサインオン管理のためのシステムが提供される。
【０１１７】
この発明の一局面によれば、第１のアプリケーションから、サービスプロバイダにアクセスするようにという要求を受信するステップと、第１のアプリケーションに関連付けられたユーザをログインさせるステップと、サービスプロバイダにアクセスするためのトークンを、第１のアプリケーションに提供するステップと、第２のトークンを、ユーザに関連付けられた第２のアプリケーションに提供するステップとを含む、シングルサインオン管理のための方法が提供される。
【０１１８】
この発明の別の局面によれば、第１のアプリケーションから、サービスプロバイダにアクセスするようにという要求を受信するための手段と、第１のアプリケーションに関連付けられたユーザをログインさせるための手段と、サービスプロバイダにアクセスするためのトークンを、第１のアプリケーションに提供するための手段と、第２のトークンを、ユーザに関連付けられた第２のアプリケーションに提供するための手段とを含む、シングルサインオン管理のためのシステムが提供される。
【０１１９】
この発明の一局面によれば、シングルサインオン管理のためのシステムであって、第１のリモートアプリケーションにアクセスするようにという要求を受信するための手段を含み、要求は、モバイル装置の第１のローカルアプリケーションから受信され、前記システムはさらに、認証要求をリモート認証サービスプロバイダコンピュータに提供するための手段と、第１のリモートアプリケーションにアクセスするための第１のアクセストークンを受信するための手段と、第１のアクセストークンを第１のローカルアプリケーションに提供するための手段と、第２のリモートアプリケーションにアクセスするための第２のアクセストークンを提供するための手段とを含み、第２のアクセストークンは、モバイル装置の第２のローカルアプリケーションに提供される、システムが提供される。
【０１２０】
コードまたはコードの一部を含むための記憶媒体およびコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納および／または送信のためのあらゆる方法または技術で実現される揮発性および不揮発性（一時的でない）、リムーバブルおよび非リムーバブルな媒体などの記憶媒体および通信媒体を含む、当該技術分野で公知のまたは使用されているあらゆる適切な媒体を含んでいてもよく、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク（DVD）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、データ信号、データ送信、もしくは、所望の情報を格納または送信するために使用可能であり、コンピュータによってアクセス可能な他のあらゆる媒体を含んでいてもよい。
【０１２１】
本開示の特定の実施例が説明されてきたが、本開示の範囲内には、さまざまな修正、変更、代替的構造、および均等物も包含される。本開示の実施例は、ある特定のデータ処理環境内の動作に制限されておらず、複数のデータ処理環境内で自由に動作する。加えて、本開示の実施例はある特定の一連のトランザクションおよびステップを用いて説明されてきたが、本開示の範囲は説明された一連のトランザクションおよびステップに限定されないことは、当業者には明らかであるはずである。
【０１２２】
また、本開示の実施例はハードウェアとソフトウェアとのある特定の組合せを用いて説明されてきたが、ハードウェアとソフトウェアとの他の組合せも本開示の範囲内にあると認識されるべきである。本開示の実施例は、ハードウェアのみで、またはソフトウェアのみで、もしくはそれらの組合せを用いて実現されてもよい。
【０１２３】
したがって、明細書および図面は、限定的というよりも例示的な意味であるとみなされるべきである。しかしながら、加減、削除、ならびに他の修正および変更が、より広範な精神および範囲から逸脱することなくそれらに加えられてもよい、ということは明らかであろう。統計的にトリガされたデータ配置を提供するための例示的な方法およびシステムが、上述されている。これらのシステムおよび方法の一部またはすべては、上の図１〜図１０に示したものなどのアーキテクチャによって少なくとも部分的に実現されてもよいが、実現されなくてもよい。
【０１２４】
実施例は構造的特徴および／または方法論的行為に特有の言語で説明されてきたが、本開示は説明された特定の特徴または行為に必ずしも限定されないということが理解されるべきである。むしろ、特定の特徴および行為は、実施例を実現する例示的な形態として開示されている。特に指定のないかぎり、または使用された文脈内で他の態様で理解されないかぎり、とりわけ「可能である」、「し得る」、「かもしれない」または「してもよい」といった条件付き文言は概して、ある特徴、要素、および／またはステップが、ある実施例には含まれ、一方、他の実施例には含まれないということを伝えるよう意図されている。このため、そのような条件付き文言は概して、特徴、要素および／またはステップが１つ以上の実施例にとってどうしても必要であるということを暗示するよう意図されてはおらず、もしくは、これらの特徴、要素および／またはステップが特定の実施例に含まれるかどうか、または行なわれるべきかどうかということを、ユーザ入力でまたはユーザ入力なしで決定し、もしくは促すための論理を、１つ以上の実施例が必ず含むということを暗示するよう意図されてはいない。
【図１】
2014529147.tif 000003
【図２】
2014529147.tif 000004
【図３】
2014529147.tif 000005
【図４】
2014529147.tif 000006
【図５】
2014529147.tif 000007
【図６】
2014529147.tif 000008
【図７】
2014529147.tif 000009
【図８】
2014529147.tif 000010
【図９】
2014529147.tif 000011
【図１０】
2014529147.tif 000012
【図１１】
2014529147.tif 000013
【図１２】
2014529147.tif 000014
【図１３】
2014529147.tif 000015
【図１４】
2014529147.tif 000016
【図１５】
2014529147.tif 000017
【国際調査報告】
2014529147.tif 000018
2014529147.tif 000019
2014529147.tif 000020