特許第5662507号(P5662507)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社 ディー・エヌ・エーの特許一覧

特許5662507認証方法、認証システム、および、サービス提供サーバ
<>
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000002
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000003
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000004
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000005
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000006
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000007
  • 特許5662507-認証方法、認証システム、および、サービス提供サーバ 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5662507
(24)【登録日】2014年12月12日
(45)【発行日】2015年1月28日
(54)【発明の名称】認証方法、認証システム、および、サービス提供サーバ
(51)【国際特許分類】
   G06F 21/41 20130101AFI20150108BHJP
   G06F 21/45 20130101ALI20150108BHJP
【FI】
   G06F21/41
   G06F21/45
【請求項の数】8
【全頁数】21
(21)【出願番号】特願2013-70301(P2013-70301)
(22)【出願日】2013年3月28日
(65)【公開番号】特開2014-194615(P2014-194615A)
(43)【公開日】2014年10月9日
【審査請求日】2014年7月25日
【早期審査対象出願】
(73)【特許権者】
【識別番号】599115217
【氏名又は名称】株式会社 ディー・エヌ・エー
(74)【代理人】
【識別番号】100141519
【弁理士】
【氏名又は名称】梶田 邦之
(72)【発明者】
【氏名】山口 徹
(72)【発明者】
【氏名】伊藤 康太郎
(72)【発明者】
【氏名】水島 壮太
【審査官】 木村 励
(56)【参考文献】
【文献】 特開2009−080726(JP,A)
【文献】 特表2012−510655(JP,A)
【文献】 特開2012−146100(JP,A)
【文献】 特開2013−061818(JP,A)
【文献】 特開2013−250612(JP,A)
【文献】 特開2013−196036(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00 − 21/88
(57)【特許請求の範囲】
【請求項1】
1以上のアプリケーションを記憶するクライアント端末と、該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、前記クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを含むシステムにおける認証方法において、
前記クライアント端末は、ユーザからの指示によりアプリケーションが起動されるたびに、ブラウザを介してサービス提供サーバに認証要求に関する信号を送信し、
前記サービス提供サーバは、前記クライアント端末から認証要求を受信したら、そのクライアント端末に関するセッション情報を発行し、前記認証要求に対して該セッション情報を付与して前記クライアント端末に返信し、
前記クライアント端末は、前記セッション情報が付与された認証要求を前記認証サーバに送信し、
前記認証サーバは、前記クライアント端末からの認証要求を受けたことを契機として、前記サービス提供サーバと連携して、前記サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶された前記ユーザに関するユーザ情報とに基づいて認証処理を実行し、
前記クライアント端末は、バックグラウンドで動作する第1ブラウザと、ユーザからのユーザ情報の入力を受け付け可能な第2ブラウザを制御し、
前記第1ブラウザと前記第2ブラウザは前記アプリケーションの機能として互いにセッション情報を共有しながら動作可能であり、
前記クライアント端末は、
第1ブラウザにより、前記サービス提供サーバとの間で認証処理を実施し、認証要求元のクライアント端末において起動されているアプリケーションと前記サービス提供サーバとの間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバとの間での認証処理に切り替える
ことを含む認証方法。
【請求項2】
前記認証サーバは、当該認証サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行し、
前記サービス提供サーバは、前記認証サーバによって発行されたIDトークンを検証することによって、前記認証サーバによって前記クライアント端末が認証済であることを判定した後に、前記IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立する
ことを含む請求項1に記載の認証方法。
【請求項3】
前記サービス提供サーバは、当該サービス提供サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行し、
前記認証サーバは、前記サービス提供サーバによって発行されたIDトークンを検証することによって、前記サービス提供サーバによって前記クライアント端末が認証済であることを判定した後に、前記IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立する
ことを含む請求項1または2に記載の認証方法。
【請求項4】
前記クライアント端末は、
前記アプリケーションの外部の機能として動作し、前記第1ブラウザと前記第2ブラウザとの間でセッション情報の共有ができない認証アシスト用アプリケーションを有しており、
起動されているアプリケーションと認証サーバとの間でセッションが確立されていない場合であっても、前記認証アシスト用アプリケーションと前記認証サーバとの間でセッションが確立されている場合においては、前記第2ブラウザの代わりに、前記認証アシスト用アプリケーションを起動して、前記認証アシスト用アプリケーションと前記サービス提供サーバ間での処理に切り替える
ことを含む請求項1から3のいずれかに記載の認証方法。
【請求項5】
1以上のアプリケーションを記憶するクライアント端末と、
該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、
前記クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを備えた認証システムであって、
前記クライアント端末は、ユーザからの指示によりアプリケーションが起動されるたびに、ブラウザを介してサービス提供サーバに認証要求に関する信号を送信し、
前記サービス提供サーバは、前記クライアント端末から認証要求を受信したら、そのクライアント端末に関するセッション情報を発行し、前記認証要求に対して該セッション情報を付与して前記クライアント端末に返信し、
前記クライアント端末は、前記セッション情報が付与された認証要求を前記認証サーバに送信し、
前記認証サーバは、前記クライアント端末からの認証要求を受けたことを契機として、前記サービス提供サーバと連携して、前記サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶された前記ユーザに関するユーザ情報とに基づいて認証処理を実行し、
前記クライアント端末は、バックグラウンドで動作する第1ブラウザと、ユーザからのユーザ情報の入力を受け付け可能な第2ブラウザを制御し、
前記第1ブラウザと前記第2ブラウザは前記アプリケーションの機能として互いにセッション情報を共有しながら動作可能であり、
前記クライアント端末は、
第1ブラウザにより、前記サービス提供サーバとの間で認証処理を実施し、認証要求元のクライアント端末において起動されているアプリケーションと前記サービス提供サーバとの間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバとの間での認証処理に切り替える
認証システム。
【請求項6】
前記認証サーバは、当該認証サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行し、
前記サービス提供サーバは、前記認証サーバによって発行されたIDトークンを検証することによって、前記認証サーバによって前記クライアント端末が認証済であることを判定した後に、前記IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立する
ことを含む請求項5に記載の認証システム。
【請求項7】
前記サービス提供サーバは、当該サービス提供サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行し、
前記認証サーバは、前記サービス提供サーバによって発行されたIDトークンを検証することによって、前記サービス提供サーバによって前記クライアント端末が認証済であることを判定した後に、前記IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立する
ことを含む請求項5または6に記載の認証システム。
【請求項8】
前記クライアント端末は、
前記アプリケーションの外部の機能として動作し、前記第1ブラウザと前記第2ブラウザとの間でセッション情報の共有ができない認証アシスト用アプリケーションを有しており、
起動されているアプリケーションと認証サーバとの間でセッションが確立されていない場合であっても、前記認証アシスト用アプリケーションと前記認証サーバとの間でセッションが確立されている場合においては、前記第2ブラウザの代わりに、前記認証アシスト用アプリケーションを起動して、前記認証アシスト用アプリケーションと前記サービス提供サーバ間での処理に切り替える
ことを含む請求項5から7のいずれかに記載の認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理端末を用いたメッセージの送受信を行う技術に関する。
【背景技術】
【0002】
近年、インターネット技術の発展に伴い、ユーザがゲームプログラム等のアプリケーションをクライアント端末にダウンロードして、クライアント端末にて処理する方法が広まってきている。たとえば、スマートフォン端末において、ゲームをサーバからダウンロードしてプレイすることも可能となっている。通常、ユーザは、端末を通してゲームを提供するサービス運営者に対して会員登録を行って、IDとパスワードを取得する。その後、ユーザがIDとパスワードを端末に入力すると、認証サーバにより所定の認証処理が行われることでログインが可能となり、ゲームを楽しむことができる。
【0003】
このようなログイン処理は、異なるアプリケーションシステムを利用する毎に行われるため、その都度、IDとパスワードなどの個人情報の入力を促すこととなり、利用者にとって煩雑となっていた。そのため、一度のログイン処理で複数のシステムに対するアクセスを実現する「シングルサインオン(SSO:SingleSignOn)」の技術が開発されている。SSOでは、認証サーバが認証済みであることを保証する認証チケットを発行し、クライアント端末のブラウザがアプリケーションサーバとデータ通信を実施する際、その認証チケットをアプリケーションサーバに送信し、アプリケーションサーバが認証チケットを参照して、ログイン済みであることを確認している(たとえば、特許文献1、2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−236281号公報
【特許文献2】特開2008−059038号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の認証では、認証サーバとアプリケーションサーバ(以下、サービス提供サーバともいう。)とが別々の事業者により運営されることを前提として、SSO処理のためのシーケンスが構成されていた。ここで、認証サーバとサービス提供サーバとが同一の事業者により運営されているような場合においては、従来のSSO処理は必ずしも効率的でセキュアな処理ではなかった。
【0006】
本発明はかかる課題に鑑みてなされたものであり、その目的は、認証サーバとサービス提供サーバとを連携させることで、より効率的にセキュアなSSO処理を実行可能とするサーバ装置、方法、および、システムを提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は、認証方法に関する。この認証方法は、1以上のアプリケーションを記憶するクライアント端末と、該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、前記クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを含むシステムにおける認証方法における方法である。
【0008】
この方法において、クライアント端末は、ユーザからの指示によりアプリケーションが起動されるたびに、ブラウザを介してサービス提供サーバに認証要求に関する信号を送信し、サービス提供サーバは、クライアント端末から認証要求を受信したら、そのクライアント端末に関するセッション情報を発行し、認証要求に対して該セッション情報を付与して前記クライアント端末に返信し、クライアント端末は、前記セッション情報が付与された認証要求を認証サーバに送信する。
【0009】
認証サーバは、クライアント端末からの認証要求を受けたことを契機として、サービス提供サーバと連携して、サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶されたユーザに関するユーザ情報とに基づいて認証処理を実行する。
【0010】
このような態様によると、クライアント端末からの認証要求を受けたサービス提供サーバと認証サーバとが共に連携して、それぞれのサーバにあらかじめ記憶された当該クライアント端末や、アプリケーションに関する情報に基づいて認証処理を実行することによって、より効率的にセキュアなSSO処理が実現できる。
【0011】
また、この認証方法において、認証サーバは、当該認証サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行してもよい。
【0012】
サービス提供サーバは、認証サーバによって発行されたIDトークンを検証することによって、認証サーバによって前記クライアント端末が認証済であることを判定した後に、IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立してもよい。
【0013】
このような態様によると、認証サーバによって前記クライアント端末が認証済であることを判定した後に、IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立することによって、一方のサーバの認証をもって他方のサーバの認証処理を簡易にできるので、より効率的にセキュアな認証処理を実施できる。
【0014】
また、この認証方法において、サービス提供サーバは、当該サービス提供サーバと、認証要求にかかるクライアント端末における少なくとも1つのアプリケーションとの間にセッションが確立されている場合、前記クライアント端末のIDトークンを発行してもよい。
【0015】
認証サーバは、前記サービス提供サーバによって発行されたIDトークンを検証することによって、前記サービス提供サーバによって前記クライアント端末が認証済であることを判定した後に、前記IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立してもよい。
【0016】
このような態様によると、認証サーバによって前記クライアント端末が認証済であることを判定した後に、IDトークンにかかるクライアント端末によって新たに起動されたアプリケーションとの間においてセッションを確立することによって、一方のサーバの認証をもって他方のサーバの認証処理を簡易にできるので、より効率的にセキュアな認証処理を実施できる。
【0017】
また、この認証方法において、クライアント端末は、バックグラウンドで動作する第1ブラウザと、ユーザからのユーザ情報の入力を受け付け可能な第2ブラウザを制御してもよい。第1ブラウザと第2ブラウザはアプリケーションの機能として互いにセッション情報を共有しながら動作可能であってもよい。
【0018】
クライアント端末は、第1ブラウザにより、サービス提供サーバとの間で認証処理を実施し、認証要求元のクライアント端末において起動されているアプリケーションとサービス提供サーバとの間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバとの間での認証処理に切り替えてもよい。
【0019】
このような態様によると、第1ブラウザにより、サービス提供サーバとの間で認証処理を実施し、認証要求元のクライアント端末において起動されているアプリケーションとサービス提供サーバとの間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバとの間での認証処理に切り替えることによって、ユーザに認証処理が実施されていることを意識させることなく、セキュアなSSO処理をよりスムーズに実行することができる。
【0020】
また、この認証方法において、クライアント端末は、アプリケーションの外部の機能として動作し、第1ブラウザと第2ブラウザとの間でセッション情報の共有ができない認証アシスト用アプリケーションを有してもよい。
【0021】
起動されているアプリケーションと認証サーバとの間でセッションが確立されていない場合であっても、認証アシスト用アプリケーションと認証サーバとの間でセッションが確立されている場合においては、第2ブラウザの代わりに、認証アシスト用アプリケーションを起動して、認証アシスト用アプリケーションとサービス提供サーバ間での処理に切り替えてもよい。
【0022】
このような態様によると、認証要求元のクライアント端末において起動されているアプリケーションと認証サーバとの間でセッションが確立されていない場合であっても、認証アシスト用アプリケーションと認証サーバとの間でセッションが確立されている場合においては、第2ブラウザの代わりに、認証アシスト用アプリケーションを起動して、認証アシスト用アプリケーションとサービス提供サーバ間での処理に切り替えることによって、よりセキュアなSSO処理を効率的に実行することができる。
【0023】
本発明の別の態様は、認証システムである。この認証システムは、1以上のアプリケーションを記憶するクライアント端末と、該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを備える。
【0024】
クライアント端末は、ユーザからの指示によりアプリケーションが起動されるたびに、ブラウザを介してサービス提供サーバに認証要求に関する信号を送信する。サービス提供サーバは、クライアント端末から認証要求を受信したら、そのクライアント端末に関するセッション情報を発行し、認証要求に対して該セッション情報を付与して前記クライアント端末に返信する。クライアント端末は、セッション情報が付与された認証要求を認証サーバに送信する。認証サーバは、クライアント端末からの認証要求を受けたことを契機として、サービス提供サーバと連携して、サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶された前記ユーザに関するユーザ情報とに基づいて認証処理を実行する。
【0025】
本発明の別の態様は、サービス提供サーバである。このサービス提供サーバは、1以上のアプリケーションを記憶するクライアント端末と、該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、前記クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを備えたシステムにおけるサービス提供サーバである。
【0026】
このサービス提供サーバは、クライアント端末から認証要求を受信したら、そのクライアント端末に関するセッション情報を発行し、認証要求に対して該セッション情報を付与して返信して、クライアント端末に、セッション情報が付与された認証要求を認証サーバに送信させるサーバ通信部と、クライアント端末からの認証要求を受けて、認証サーバと連携して、当該サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、認証サーバに記憶されたユーザに関するユーザ情報と報に基づいて認証処理を実行する認証制御部と、を備える。
【0027】
本発明の別の態様は、認証方法である。この認証方法は、1以上のアプリケーションを記憶するクライアント端末と、該クライアント端末とネットワークを介して接続し、該クライアント端末にサービスを提供するサービス提供サーバと、前記クライアント端末およびサービス提供サーバと接続し、認証処理を実行する認証サーバとを備えたシステムにおけるサービス提供サーバにおける方法である。
【0028】
この方法は、クライアント端末から認証要求を受信するステップと、そのクライアント端末に関するセッション情報を発行するステップと、認証要求に対して該セッション情報を付与して返信して、クライアント端末に、セッション情報が付与された認証要求を前記認証サーバに送信させるステップと、クライアント端末からの認証要求を受けて、認証サーバと連携して、当該サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、認証サーバに記憶された前記ユーザに関するユーザ情報と報に基づいて認証処理を実行するステップと、を含む。
【0029】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0030】
本発明によると、サービス提供サーバと認証サーバとが互いに連携して認証処理を実施することによって、よりセキュアな認証処理を実現することができる。
【発明を実施するための形態】
【0031】
本発明の実施例を説明する前に、まず、本発明の概要を述べる。本発明は、インストール型のアプリケーションに対する認証技術であって、クライアント端末の認証処理を認証サーバだけではなくて、サービス提供サーバがアシストする構成をとることによって、認証処理における安全性を高めたものである。
【0032】
本発明においては、サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶されたユーザに関するユーザ情報とに基づいて認証処理を実行する。これにより、一方のサーバにおける認証をもって、他方の認証を保証させることができ、効率的でセキュアな認証処理ができるものである。以下、例を用いて説明する。以下において、サービス提供サーバとは、サービスを提供するプラットフォームであってもよいし、認証サーバは、アプリケ―ションを提供するサーバであってもよい。また、これらのサーバは物理的に一体となっていてもよい。
【実施例1】
【0033】
まず、実施例1について説明する。図1は、本発明の実施例1にかかる認証システム100を示す図である。認証システム100は、サービス提供サーバ10と、認証サーバ20と、サービス提供サーバ10と認証サーバ20と基地局40とを有線回線で接続するネットワーク30と、基地局40で代表される第1基地局40a〜第3基地局40cと、モバイル端末50で代表される第1モバイル端末50a〜第3モバイル端末50cと、PC端末70とを含む。
【0034】
なお、図示の都合上、基地局40、モバイル端末50は共に3台のみ図示したが、これにかぎらず、それ以上の基地局40、モバイル端末50が存在してもよい。PC端末70についても同様である。また、第1モバイル端末50a〜第3モバイル端末50cは、それぞれ異なる基地局40と接続されるとして図示しているが、これにかぎらず、1つの基地局40に複数のモバイル端末50が接続されていても、本発明が適用可能であることは言うまでもない。
【0035】
サービス提供サーバ10は、チャットサービスなどのネットサービスを提供し、また、認証サーバ20と協働して、クライアント端末のログイン処理を効率化するための装置である。サービス提供サーバ10は、ネットワーク30および/または基地局40を介して、認証サーバ20、あるいは、モバイル端末50やPC端末70との間で、認証処理のための通信処理を実行する。なお、以下においては、説明を簡易にするため、単に、「サービス提供サーバ10とモバイル端末40ないしPC端末70との間で通信処理を実行する」などと表現し、ネットワーク30および基地局40を介する点については記載を省略する。また、以下においては、モバイル端末50やPC端末70を総称して、クライアント端末と表現することもある。
【0036】
クライアント端末は、ユーザの指示によりアプリケーションが起動されるたびに、ブラウザを介してサービス提供サーバ10に認証要求に関する信号を送信する。サービス提供サーバ10は、クライアント端末からの認証要求を受信したら、そのクライアント端末に関するセッション情報(Cookie)を発行し、認証要求に対して該セッション情報を付与して返信する。
【0037】
クライアント端末は、セッション情報が付与された認証要求を認証サーバ20に送信する。すると、認証サーバ20は、クライアント端末からの認証要求を受けて、サービス提供サーバ10と連携して、サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶されたユーザに関するユーザ情報とに基づいて認証処理を実行する。
【0038】
ここで、アプリケーションの認証情報とは、アプリケーションに固有のIDと、アプリケーション自体の秘密情報とを含む。このアプリケーションの認証情報はセッションが確立されたアプリケーションに対して発行され、サービス提供サーバ10により管理される。サービス提供サーバ10は、後述するように、ユーザによるアプリケーションの使用を管理し、正当な権限を有するユーザのログインを認証し、正当であれば、そのアプリケーションのセッションを確立する。
【0039】
また、ユーザ情報とは、ユーザIDやユーザによって指定されたパスワードを含む。このユーザ情報は、認証サーバ20によって管理される。認証サーバ20は、後述するように、ユーザ端末を介してユーザ情報を取得し、予め記憶しているユーザ情報と照合することで、そのユーザのログインの正当性を判断し、認証する。
【0040】
上述のように、ユーザは、認証サーバ10にログインするときもあれば、サービス提供サーバ20にログインするときもある。本発明においては、一方でのログインが正当であると判断されるような場合、他方のサーバにおいてもその正当性を援用し、ログインを認めるというものである。そのため、認証サーバ10とサービス提供サーバ間において直接、あるいは、ユーザ端末のブラウザを介して、それぞれにおける認証結果を確認しあうこととしている。
【0041】
すなわち、認証サーバ10とサービス提供サーバ20とが同一事業者による運営であるため、上記のような認証連携が可能となっている。なお、これにかぎらず、同一でない事業者により運営されているような場合であっても、相当程度の信頼関係を有するような場合であれば、本発明を適用できることは言うまでもない。
【0042】
具体的に説明する。認証サーバ20は、クライアント端末からの認証要求に対して、そのクライアント端末において起動されているアプリケーションとのセッションがすでに確立されていると判断したら、そのクライアント端末に関連づけたワンタイムチケットを発行してクライアント端末に送信する。
【0043】
セッションが確立しているとは、ログインされている状態をいう。ログインされている状態とは、その時点より過去において、いずれかのアプリケーションのブラウザ、あるいは、アプリケーション外の認証アシスト用アプリケーション(以下、特定ブラウザともいう。)を介してユーザがIDとパスワード等の秘密情報を入力することで、サービス提供サーバに記憶されたセッション確立済の該クライアント端末のアプリケーションの認証情報と、当該認証サーバに記憶されたユーザに関するユーザ情報とに基づいて、適正な情報であることが確認されて認証処理が完結している状態をいう。
【0044】
クライアント端末は、認証サーバ20から取得したワンタイムチケットをサービス提供サーバ10にリダイレクト(転送)する。これを受けて、サービス提供サーバ10は、認証サーバ20に対して、クライアント端末から取得したワンタイムチケットを送信することで、クライアント端末とのセッションを確立するためのアクセストークンの発行を要求する。
【0045】
ここで、アクセストークンとは、所定のアプリケーションに対するユーザの実行権限を示し、これをサーバに提示することで、所定のアプリケーションをクライアント端末で実行することができるようになる。また、ワンタイムチケットとは、どのクライアント端末によって要求され、どのサーバによって信任、認証されたかを示す情報が含まれる。また、アクセストークンは暗号化されてもよい。その場合、ブラウザ立ち上げ前において予め復号キーをクライアント端末に渡しておくことで、より強化なセキュリティを実現することができる。
【0046】
認証サーバ20は、サービス提供サーバ10から受信したワンタイムチケットが自らが発行したものであることを確認した後に、ワンタイムチケットに関連するアクセストークンを発行してサービス提供サーバ10に返信する。サービス提供サーバ10は、認証サーバ20から受け取ったアクセストークンをクライアント端末に送信する。これにより、クライアント端末は、アクセストークンを取得できるので、アプリケーションを実行できる。
【0047】
なお、認証サーバ20は、認証要求元のクライアント端末のIDトークンの認証確認が成功した場合、あるいは、そのクライアント端末において起動されているアプリケーションからのログイン処理を確認した場合おいて、セッションが確立していると判定してもよい。
【0048】
また、認証要求元のクライアント端末において起動されているアプリケーションとサービス提供サーバ10との間にセッションが確立されている場合、当該サービス提供サーバ10は、そのクライアント端末に対して、IDトークンを含めたセッション情報を発行する。認証サーバ20は、そのクライアント端末を介して得たIDトークンを検証することによって、セッションが確立されているか否かを検証してもよい。
【0049】
一方、認証要求元のクライアント端末において起動されているアプリケーションと認証サーバ20との間にセッションが確立されていない場合、当該クライアント端末は、ユーザ情報を認証サーバ20に送る。ここで、認証サーバ20は、受信したユーザ情報を検証後、アクセストークンと共に、IDトークンも発行して、サービス提供サーバ10に送信する。サービス提供サーバ10は、取得したIDトークンを検証してセッションを確立し、クライアント端末に対して、アクセストークンを送信してもよい。
【0050】
図2は、図1の認証システム100におけるサービス提供サーバ10の構成例を示す図である。サービス提供サーバ10は、サーバ通信部12と、認証処理部14と、サーバメモリ16とを含む。
【0051】
サーバ通信部12は、クライアント端末や認証サーバ20などからの信号を受信し、所定の復調処理を実施して、認証処理部14に復調された信号を送る。また、認証処理部14から送られた信号に対して所定の変調処理を実施して、ユーザ端末に送信する。なお、サーバ通信部12における変復調処理は、従来用いられている変復調技術が用いられてよく、このような態様であったとしても、本発明を適用することができることは当業者に理解されるところである。
【0052】
認証処理部14は、サーバ通信部12を通じて、クライアント端末から認証処理に関する情報を受け取る。認証処理部14は、サーバメモリ16内において、クライアント端末ごとに、セッション情報やユーザID、あるいは、ユーザパスワードなどの秘密情報を管理する。秘密情報は、クライアント端末がサービス提供サーバ10との間で最初に登録処理をする際にクライアント端末より通知されてもよい。これにより、すでにセッションが確立されているクライアント端末から認証要求があった場合、再度のログイン処理を求めることなくIDトークンを発行し、スムーズなSSO処理を実行していく。
【0053】
また、認証処理部14は、セッションが確立されていないクライアント端末から認証要求があった場合、認証サーバ20においてすでにセッションが確立されているかどうかを確認し、確立されているようであれば、認証サーバ20からIDトークンを取得することで、スムーズなSSO処理を実行していく。
【0054】
認証サーバ20においてもセッションが確立されていない場合、認証処理部14は、クライアント端末に対して、ユーザIDやパスワードなどの秘密情報を求め、予め登録されている秘密情報と照合することで、ログイン処理を行い、セッションを確立する。
【0055】
つぎに、クライアント端末側の構成について説明する。図3は、図1のモバイル端末50あるいはPC端末70における構成例を示す図である。ここでは、説明の都合上、モバイル端末50の構成として説明するが、PC端末70においても同様の構成となる。
【0056】
モバイル端末50は、端末通信部52と、ブラウザ制御部54と、端末制御部56と、端末メモリ58と、ユーザインタフェース60とを備える。端末通信部52は、サービス提供サーバ10あるいは認証サーバ20との間で認証処理に関する情報の送受信処理を実行する。
【0057】
ブラウザ制御部54は、バックグラウンドで動作する第1ブラウザと、ユーザからのユーザ情報の入力を受け付け可能な第2ブラウザと、アプリケーションの外部のブラウザ機能として動作する特定ブラウザを制御する。第1ブラウザは、隠しブラウザ(Hidden Embeded Browser)とも呼ばれる。第1ブラウザと第2ブラウザは、所定のアプリケーション内部にコンポーネントとして埋め込まれたブラウザ(Embeded Browser)であり、セッション情報が互いに共有できる。すなわち、第1ブラウザと第2ブラウザは、アプリケーションごとに存在するブラウザである。
【0058】
一方、特定ブラウザは、認証をアシストすることができるブラウザである。この特定ブラウザは、アプリケーションの外部の機能として動作するため、アプリケーションに埋め込まれた第1ブラウザと第2ブラウザとの間ではセッション情報の共有ができない。特定ブラウザは、OS標準のブラウザであってもよく、アプリケーション連携で共有できるブラウザであり、任意のアプリケーションを立ち上げられるものであってもよい。この特定ブラウザを介して認証処理を実現することで、アプリケ―ション連携が容易になり、ユーザは、1回のログイン処理を実施するだけで、以後、他のアプリケーションを実施する場合においてログイン処理が不要となる。
【0059】
通常は、特定ブラウザとアプリケーション内の埋め込みブラウザとの間でCookieを共有できないので、このようなアプリケーション連携は困難であった。しかしながら、認証サーバ20とクライアント端末との間にサービス提供サーバ10を介在させて、特定外部ブラウザでの認証において、開始時と終了時でユーザが同じことを保証するような認証処理を実施することで、外部ブラウザを用いたアプリケーション連携におけるSSOが実現できた。
【0060】
ブラウザ制御部54は、まず第1ブラウザにより、サービス提供サーバ10との間で認証処理を実施する。第1ブラウザは、ユーザに入力を求めない処理を実施する際に用いられる。これにより、ユーザに動作を意識させることなく、高速で処理が実現できる。そして、ユーザに入力を求めるような場面になったら、ブラウザ制御部54は、第2ブラウザに動作を切り替える。これにより、効率的な処理が可能となる。
【0061】
たとえば、ブラウザ制御部54は、まず第1ブラウザにより、サービス提供サーバ10との間で認証処理を実施する。ついで、起動されているアプリケーションとサービス提供サーバ10との間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる必要が生じたような場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバ10との間での認証処理に切り替えることとなる。
【0062】
認証要求元のクライアント端末において起動されているアプリケーションと認証サーバ20との間でセッションが確立されていない場合であっても、そのクライアント端末の特定ブラウザと認証サーバ20との間でセッションが確立されている場合においては、第2ブラウザの代わりに、特定ブラウザを起動して、特定ブラウザとサービス提供サーバ10間での処理に切り替える
【0063】
端末制御部56は、ユーザインタフェース60を介してユーザからの指示を受け付けて、端末メモリ58にアクセスしながら、アプリケーションの実行や認証処理を管理する。アプリケーションの実行および認証処理は、アプリケーション毎に実施される。アプリケーションは、アプリケーションの動作を制御する基幹ソフトウェアライブラリであるSDK(SoftwareDevelopmentKit)と、アプリケーション内部に埋め込まれたブラウザとを含む。このうち、端末制御部56は、SDKの制御を実施する。SDKは、サーバの指示に応じてブラウザを立ち上げたるなどの処理を制御する。
【0064】
また、ユーザインタフェース60は、ユーザへのメッセージやユーザ情報画面、を表示するための画面インタフェースと、キーボードやタッチパネルなどのユーザからの入力を受け付ける入力インタフェースと、カメラなどの画像撮像手段を含む。
【0065】
ユーザインタフェース60は、ユーザからのアプリケーションの実行要求を受け付けて、端末制御部56に伝える。また、ユーザインタフェース60は、必要に応じて、ログイン画面を表示して、ユーザIDやパスワード等の秘密情報、あるいは、特定ブラウザを用いたログイン処理要求に関する入力を受け付け、端末制御部56に伝える。
【0066】
端末メモリ58は、サービス提供サーバ10からダウンロードしたアプリケーションや、画像撮像手段や他のユーザから受信した画像情報を記憶し、また、氏名と連絡先とが対応付けて記憶された連絡先情報などを記憶する。
【0067】
ここで、認証システム100の基本フローの概略について説明する。
【0068】
サービス提供サーバ10は、認証開始時にアプリケーション内埋め込み型ブラウザに対し、ユーザエージェントの同定の為のCookieを発行し、検証可能なように保存した上で、OS標準外部ブラウザ等の特定ブラウザを起動する。
【0069】
特定ブラウザは、サービス提供サーバ10にアクセスした上で、リダイレクトにより認証サーバ20に遷移し、必要であればユーザ認証処理を行う。認証サーバ20によるユーザ認証が済んだ段階でサービス提供サーバ10の戻りURLに対しリダイレクトし、特定ブラウザがサービス提供サーバ10にリクエストする。
【0070】
サービス提供サーバ10はユーザの端末のアプリケーションに関するクライアントID等のクライアント秘密情報を予め保持しており、認証サーバ20から受け取るワンタイムチケット(code)及びIDトークンをクライアント端末を介する事無く検証し、それらが妥当であれば、サービス提供サーバ10に対するユーザセッションを発行し、特定ブラウザとサービス提供サーバ10間でログインセッションを確立した上で、ワンタイムチケット(code)をクライアント端末に渡す。
【0071】
このワンタイムチケットを受け取ったクライアント端末は改めて、アプリケーション内埋め込み型ブラウザを起動し、サービス提供サーバ10にワンタイムチケットを渡す。この際に、サービス提供サーバ10では認証開始時に発行していたCookieから事前にCookieと共に紐づけておいた情報を元に、妥当なユーザエージェントであるかどうかを検証し、妥当であればワンタイムチケットを用いて、認証サーバ20から保護リソースにアクセスする為のアクセストークン及び、ワンタイムチケットに紐づくIDトークンを受け取りこれらを検証し、妥当であれば、アプリケーション内埋め込み型ブラウザとサービス提供サーバ10間で認証セッションを確立する。
【0072】
具体的に説明する。ここでは、図1の認証システム100における4つの認証処理の例について、図4図7に示す4つのシーケンス図を用いて説明する。
【0073】
図4は、図1の認証システム100における第1の認証処理例を示すシーケンス図である。第1の認証処理例は、サービス提供サーバ10および認証サーバ20の双方において、クライアント端末との間ですでにセッションが確立している場合である。本シーケンスは、ユーザがユーザインタフェース60を介してアプリケーションを実行したことを契機として開始されてもよい。
【0074】
第1の認証処理例においては、端末制御部56は、ログイン処理を実行する対象のアプリケーション内のSDKを指すものとする。また、ブラウザ処理部54は、3つのブラウザのうち、隠しブラウザを処理するものとする。
【0075】
まず、端末制御部56は、ブラウザ処理部54に対して、ブラウザを起動させるためのメッセージを通知して、ブラウザを立ち上げさせる(S10)。
【0076】
ブラウザ処理部54は、サービス提供サーバ10に対して、ログインを要求するためのメッセージを通知して、SDKサービスへのログインを要求する(S12)。ここで、サービス提供サーバ10は、このクライアント端末との間ですでにセッションが確立しているかどうかを検証する(S14)。
【0077】
ここで、第1の認証処理例では、クライアント端末との間ですでにセッションが確立しているので、サービス提供サーバ10は、検証OKとして、ブラウザ処理部54に対して、認証要求のためのメッセージをIDトークンと共に通知して、認証サーバ20への認証要求をクライアント端末に実施させる(S16)。
【0078】
ついで、ブラウザ処理部54は、認証サーバ20に対して、サービス提供サーバ10から受け取ったIDトークンと、認証要求を示すものとしてのメッセージを通知する(S18)。
【0079】
認証サーバ20は、通知されたIDトークンを検証して、このクライアント端末との間ですでにセッションが確立しているかどうかについて判定する(S20)。第1の認証処理例では、クライアント端末との間ですでにセッションが確立しているので、認証サーバ20は、先の認証要求に対する応答として、ログインが許可された旨のメッセージと、ワンタイムチケットであるcodeをブラウザ処理部54に通知する(S22)。このワンタイムチケットは、時限失効型のチケットであり、所定期間内に、クライアント端末がこのチケットをサービス提供サーバ10経由で認証サーバ20に戻すことによって、アクセス権限が示されたアクセストークンを得ることができるものである。
【0080】
ブラウザ処理部54は、サービス提供サーバ10に対して、認証サーバ20から送られたログインが許可された旨のメッセージをワンタイムチケットであるcodeと共に通知する(S24)。ここで、サービス提供サーバ10は、認証サーバ20に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージをcodeと共に通知する(S26)。
【0081】
認証サーバ20は、通知されたcodeを確認して、自らが当該クライアント端末のために発行したものであることを検証した上で、アクセストークンを発行し、サービス提供サーバ10に送る(S28)。サービス提供サーバ10は、アクセストークンをブラウザ処理部54に送る(S30)。さらに、ブラウザ処理部54は、端末制御部56にアクセストークンを送る(S32)。以上により、クライアント端末は、アクセストークンを得て、アプリケーションを実行することが可能となる。
【0082】
図5は、図1の認証システム100における第2の認証処理例を示すシーケンス図である。第2の認証処理例は、認証サーバ20においてのみ、クライアント端末との間ですでにセッションが確立していて、サービス提供サーバ10においては確立していない場合である。
【0083】
第2の認証処理例においては、端末制御部56は、ユーザがログインを実行する対象のアプリケーション内のSDK(SoftwareDevelopmentKit)を指すものとする。また、ブラウザ処理部54は、3つのブラウザのうち、隠しブラウザを処理するものとする。
【0084】
本シーケンスは、ユーザがユーザインタフェース60を介してアプリケーションを実行したことを契機として開始されてもよい。なお、図4のS10、S12の処理については、第1の認証処理例と同一であるため、図示および説明を省略し、S14の処理から説明するものとする。
【0085】
S14において、サービス提供サーバ10は、このクライアント端末との間ですでにセッションが確立しているかどうかを検証する。ところが、第2の認証処理例において、クライアント端末は、サービス提供サーバ10との間でセッションが確立されていない。したがって、このクライアント端末のIDトークンを保持していない状態となる。ここで、サービス提供サーバ10は、ブラウザ処理部54に対して、認証確認のためのメッセージを通知して(S40)、認証サーバ20においてセッションが確立されているかを確認させる。
【0086】
ついで、ブラウザ処理部54は、認証サーバ20に対して、認証要求としてのメッセージを通知する(S42)。ここで、認証サーバ20は、このクライアント端末との間ですでにセッションが確立しているかどうかについて判定する(S44)。ここでは、すでにセッションが確立されているので、認証サーバ20は、認証が確認された旨のメッセージと、ワンタイムチケットであるcodeとをブラウザ処理部54に通知する(S46)。
【0087】
ブラウザ処理部54は、サービス提供サーバ10に対して、認証が確認された旨のメッセージをワンタイムチケットであるcodeと共に通知する(S48)。ここで、サービス提供サーバ10は、認証サーバ20に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージをcodeと共に通知する(S50)。
【0088】
認証サーバ20は、通知されたcodeを確認して、自らが当該クライアント端末のために発行したものであることを検証した上で、アクセストークンを発行し、IDトークンと共にサービス提供サーバ10に送る(S52)。第2の認証処理例において、サービス提供サーバ10は、クライアント端末のIDトークンを有していないからである。
【0089】
サービス提供サーバ10は、受け取ったIDトークンと、あらかじめ記憶しているアプリケーションに関する秘密情報とを照合して、IDトークンの妥当性を検証する(S54)。検証の結果が妥当である場合、サービス提供サーバ10は、ブラウザ処理部54に対して、アクセストークンを送る(S56)。さらに、ブラウザ処理部54は、端末制御部56にアクセストークンを送る(S58)。以上により、サービス提供サーバ10との間でのセッションも確立し、クライアント端末は、アクセストークンを用いてアプリケーションを実行することが可能となる。
【0090】
図6は、図1の認証システム100における第3の認証処理例を示すシーケンス図である。第3の認証処理例は、認証サーバ20およびサービス提供サーバ10の双方において、クライアント端末との間でセッションが確立していない場合である。本ケースは、最初にアプリケーションを立ち上げるような場合が想定される。
【0091】
第3の認証処理例においては、端末制御部56は、ユーザがログインを実行する対象のアプリケーション内のSDKを指すものとする。また、ブラウザ処理部54は、3つのブラウザのうち、隠し埋め込みブラウザと埋め込みブラウザの2つを処理するものとする。図6においては、隠し埋め込みブラウザを第1ブラウザとして、埋め込みブラウザを第2ブラウザとして図示する。
【0092】
本シーケンスは、ユーザがユーザインタフェース60を介してアプリケーションを実行したことを契機として開始されてもよい。なお、図5のS44に至るまでの処理については、第2の認証処理例と同一であるため図示および説明を省略し、ここではS44の処理から説明するものとする。
【0093】
S44において、認証サーバ20は、このクライアント端末との間ですでにセッションが確立しているかどうかについて判定する(S44)。ここでは、セッションが確立されていないので、認証サーバ20は、エラーレスポンスとともに、サービス提供サーバ10を介したログイン処理をさせるためのメッセージを第1ブラウザに通知する(S70)。
【0094】
第1ブラウザは、端末制御部56に対して、ログイン処理を開始させるためのメッセージを通知し(S72)、以後、ブラウザの処理は、画面表示が可能な第2ブラウザに切り替わる。ここで、端末制御部56は、ログイン処理を要求するためのメッセージを第2ブラウザに通知する(S74)。
【0095】
ここで、第2ブラウザは、ユーザインタフェース60を表示させて(S76)、ユーザからの入力を促す。ユーザからのユーザIDやパスワード等の入力をユーザインタフェース60を介して受け付けると、端末制御部56は、ユーザから入力された情報をクレデンシャルな情報として第2ブラウザに通知する(S78)。第2ブラウザは、端末制御部56から通知された情報を認証サーバ20に対して、通知する(S80)。
【0096】
認証サーバ20は、あらかじめ記憶しているユーザIDやユーザパスワードを確認して、通知された情報の妥当性を検証する(S82)。妥当であって場合、認証サーバ20は、第2ブラウザに対して、ワンタイムチケットであるcodeと共に、認証が確認された旨のメッセージを通知する(S84)。
【0097】
第2ブラウザは、サービス提供サーバ10に対して、認証が確認された旨のメッセージをワンタイムチケットであるcodeと共に通知する(S86)。ここで、サービス提供サーバ10は、認証サーバ20に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージをcodeと共に通知する(S50)。
【0098】
ここで、認証サーバ20は、サービス提供サーバ10に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージをcodeと、IDトークンとを通知する(S52)。
【0099】
サービス提供サーバ10は、受け取ったIDトークンと、あらかじめ記憶しているアプリケーションについての秘密情報とを照合して、IDトークンの妥当性を検証する(S54)。検証の結果が妥当である場合、サービス提供サーバ10は、第2ブラウザに対して、アクセストークンを送る(S88)。さらに、第2ブラウザは、端末制御部56にアクセストークンを送る(S90)。以上により、サービス提供サーバ10と認証サーバ20の双方でのセッションが確立し、クライアント端末は、アクセストークンを用いてアプリケーションを実行することが可能となる。
【0100】
図7は、図1の認証システム100における第4の認証処理例を示すシーケンス図である。第4の認証処理例は、アプリケーションにおいて、認証サーバ20およびサービス提供サーバ10の双方において、クライアント端末との間でセッションが確立していない場合である。また、アプリケーションの外部のブラウザとして機能する外部ブラウザにおいては、セッションが確立しているものとする。本ケースは、外部ブラウザを用いてログイン処理が完了した後に、アプリケーションを立ち上げるような場合が想定される。
【0101】
第4の認証処理例においては、端末制御部56は、ユーザがログインを実行する対象のアプリケーション内のSDKを指すものとする。また、ブラウザ処理部54は、3つのブラウザのうち、隠し埋め込みブラウザと埋め込みブラウザ、および、外部ブラウザの3つを処理するものとする。図6においては、隠し埋め込みブラウザを第1ブラウザとして、埋め込みブラウザを第2ブラウザとして、外部ブラウザを特定ブラウザとして図示する。なお、特定ブラウザは、アプリケーションの外部において動作するブラウザである。
【0102】
本シーケンスは、ユーザがユーザインタフェース60を介してアプリケーションを実行したことを契機として開始されてもよい。なお、図5のS76に至るまでの処理については、第3の認証処理例と同一であるため図示および説明を省略し、ここではS76の処理から説明するものとする。
【0103】
ここで、第2ブラウザは、ユーザインタフェース60を表示させて(S76)、ユーザからの入力を促す。ユーザから特定ブラウザを用いたログイン要求をユーザインタフェース60を介して受け付けると、端末制御部56は、その情報を特定ブラウザに通知する(S110)。特定ブラウザは、サービス提供サーバ10に対して、外部ブラウザを用いてのSSO処理を要求するためのメッセージを通知する(S112)。
【0104】
サービス提供サーバ10は、特定ブラウザに対して、認証要求に関するメッセージを通知する(S114)。ついで、特定ブラウザは、認証サーバ20に対して認証要求に関するメッセージを通知する(S116)。
【0105】
ここで、認証サーバ20は、外部ブラウザとのセッション情報を検証して(S118)、ワンタイムチケットであるcodeとIDトークンとを付した認証が確認された旨のメッセージを通知する(S120)。
【0106】
特定ブラウザは、サービス提供サーバ10に対して、IDトークンと共に認証が確認された旨のメッセージを通知する(S122)。サービス提供サーバ10は、このIDトークンを検証して(S124)、認証が確認された旨のメッセージを特定ブラウザに通知する(S126)。
【0107】
さらに、特定ブラウザは、端末制御部56に対して、認証サーバ20から取得したcodeと共に、アプリケーションでのセッション処理を完了させるためのメッセージを通知する(S128)。これを受けて、端末制御部56は、codeと共に第1ブラウザに通知する(S130)。ここでは、ユーザから入力を受け付ける必要がないため、処理の高速化やユーザの利便性を考慮して、第2ブラウザではなく、第1ブラウザに通知することとしている。
【0108】
第1ブラウザは、サービス提供サーバ10に対して、codeが付されたメッセージを通知する(S132)。ここで、サービス提供サーバ10は、認証サーバ20に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージをcodeと共に通知する(S50)。
【0109】
ここで、認証サーバ20は、サービス提供サーバ10に対して、当該クライアント端末のためにアクセストークンを要求するためのメッセージと、codeと、IDトークンとを通知する(S52)。
【0110】
サービス提供サーバ10は、受け取ったIDトークンと、あらかじめ記憶しているクライアント端末についての秘密情報とを照合して、IDトークンの妥当性を検証する(S54)。検証の結果が妥当である場合、サービス提供サーバ10は、第1ブラウザに対して、アクセストークンを送る(S56)。さらに、第1ブラウザは、端末制御部56にアクセストークンを送る(S58)。以上により、サービス提供サーバ10と認証サーバ20の双方とのセッションも確立し、クライアント端末は、アクセストークンを用いてアプリケーションを実行することが可能となる。
【0111】
いずれかにセッションが確立しているような場合には、いずれかが有しているセッション情報を互いに補完しあうことによって、効率的に、セッションを確立させることができる。
【0112】
以上のような態様によると、クライアント端末からの認証要求を受けたサービス提供サーバ10と認証サーバ20とが共に連携して、それぞれのサーバにあらかじめ記憶された当該クライアント端末に関する認証情報に基づいて認証処理を実行することによって、サービス提供サーバ10と認証サーバ20とで認証処理を完結できるので、よりセキュアな認証処理が実現できる。
【0113】
また、クライアント端末に関連づけて発行したワンタイムチケットを用いて認証処理を実施することによって、セキュアに認証処理を実施できる。また、ワンタイムチケットをクライアント端末に渡し、サービス提供サーバ10経由で認証サーバ20に戻すことによって、クライアント端末内にアプリケーションの秘密情報を保持させることがなく、サービス提供サーバ10と認証サーバ20とで認証処理を完結できるので、よりセキュアな認証処理が実現できる。
【0114】
また、認証要求元のクライアント端末のIDトークンの認証確認が成功した場合、あるいは、そのクライアント端末において起動されているアプリケーションからのログイン処理を確認した場合に、セッションが確立していると判定することによって、セキュアなSSO処理を効率的に実行することができる。
【0115】
また、認証要求元のクライアント端末において起動されているアプリケーションとサービス提供サーバ10との間にセッションが確立されている場合、当該サービス提供サーバ10は、そのクライアント端末に対して、IDトークンを含めたセッション情報を発行し、認証サーバ20は、そのクライアント端末を介して得たIDトークンを検証することによって、セッションが確立されているか否かを検証することによって、セキュアなSSO処理を効率的に実行することができる。
【0116】
また、認証要求元のクライアント端末において起動されているアプリケーションと前記認証サーバ20との間にセッションが確立されていない場合、当該クライアント端末は、ユーザ情報を認証サーバ20に送り、認証サーバ20は、受信したユーザ情報を検証後、アクセストークンと共に、IDトークンも発行して、サービス提供サーバ10に送信し、サービス提供サーバ10は、取得したIDトークンを検証して、セッションを確立することによって、セキュアなSSO処理を効率的に実行することができる。
【0117】
また、まず第1ブラウザによりサービス提供サーバ10との間で認証処理を実施した後に、認証要求元のクライアント端末において起動されているアプリケーションとサービス提供サーバ10との間にセッションが確立されていない場合であって、かつ、ユーザに対してユーザ情報を入力させる場合には、ユーザ情報を受け付けるために第2ブラウザを起動して、第2ブラウザとサービス提供サーバ10との間での認証処理に切り替えることによって、ユーザに認証処理が実施されていることを意識させることなく、セキュアなSSO処理をよりスムーズに実行することができる。
【0118】
また、認証要求元のクライアント端末において起動されているアプリケーションと認証サーバ20との間でセッションが確立されていない場合であっても、そのクライアント端末の特定ブラウザと認証サーバ20との間でセッションが確立されている場合においては、第2ブラウザの代わりに、特定ブラウザを起動して、特定ブラウザとサービス提供サーバ10間での処理に切り替えることによって、セキュアなSSO処理を効率的に実行することができる。
できる。
【0119】
また、サービス提供サーバ10が、クライアント端末の秘密情報を管理し、かつ、サービス提供サーバ10と、アプリケーションを記憶するクライアント端末との連携の際のブラウザ同定のためのセッション管理をサービス提供サーバ10上で行うことで、より強固なセキュリティが担保される。
【0120】
具体的には、認証トランザクション中にアプリケーション連携を挟む場合に連携前と後の埋め込みブラウザの同定の為の Cookie管理をプラットフォームが保証する事が可能になる。
認証サーバ20との通信時に用いるクライアント端末の秘密情報をインストール型アプリケーションに保存する必要が無い。そのため、認証チケット置換攻撃などの不正行為が簡単には成立せず、強化なセキュリティを実現することができる。
【0121】
以上、本発明を実施例をもとに説明した。本発明は上述した実施例並びに各実施例の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。上記実施例は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0122】
図1】実施例1にかかる認証システムの構成例を示す図である。
図2図1の認証システムにおけるサービス提供サーバの構成例を示す図である。
図3図1の認証システムにおけるモバイル端末あるいはPC端末における構成例を示す図である。
図4図1の認証システムにおける第1の認証処理例を示すシーケンス図である。
図5図1の認証システムにおける第2の認証処理例を示すシーケンス図である。
図6図1の認証システムにおける第3の認証処理例を示すシーケンス図である。
図7図1の認証システムにおける第4の認証処理例を示すシーケンス図である。
【符号の説明】
【0123】
10 サービス提供サーバ、 12 サーバ通信部、 14 認証処理部、 16 サーバメモリ、 20 認証サーバ、 30 ネットワーク、 40 基地局、 40a 第1基地局、 40b 第2基地局、 40c 第3基地局、 50 モバイル端末、 50a 第1モバイル端末、 50b 第2モバイル端末、 50c 第3モバイル端末、 52 端末通信部、 54 ブラウザ処理部、 56 端末制御部、 58 端末メモリ、 60 ユーザインタフェース、 70 PC端末、 100 認証システム
図1
図2
図3
図4
図5
図6
図7