(57)【要約】【課題】  セキュリティ保護機能を備えたオープン中のソフトウェアがアクセスのためのサインイン状態に入るとき、セキュリティ保護機能を備えた他のオープン中のソフトウェアが、プロンプトでユーザの介入を求めることなく、自動的に準備状態のサインイン状態に入るようにする。【解決手段】  最初のソフトウェアをサインインしたのと同じオペレーションが、現在オープン中の他のソフトウェアを準備状態のサインイン状態に移行する。アクセスのためのサインイン状態では、ユーザの身元が十分に認証され、セキュリティ保護機能へのアクセスが許可される。準備状態のサインイン状態では、プロンプトでユーザの介入を求めることなく認証し、ソフトウェアがセキュリティ保護機能にアクセスするための準備の状態に設定される。この特徴により、ユーザは、実質的に、セキュリティ保護機能を備えたソフトウェアに対して一度のサインインセッションだけで済むことになる。【選択図】  図１
2004185625.tif 000002
【特許請求の範囲】
【請求項１】
２つまたは３つ以上のソフトウェアアプリケーションの間でサインインオペレーションを共有するための方法であって、該ソフトウェアアプリケーションの各々は、１つまたは２つ以上のセキュリティ保護機能を備える前記方法は、
第１の実行中ソフトウェアアプリケーションにサインインする要求を受け取り、
前記第１の実行中ソフトウェアアプリケーション内のアクセスのためのサインインした状態に入るためのクレデンシャルを処理して、前記１つまたは２つ以上のセキュリティ保護機能へのアクセスを許可し、
前記アクセスのためのサインインした状態に応答して、１つまたは２つ以上の他のソフトウェアアプリケーションが実行中であるかどうかを検出し、
前記アクセスのためのサインインした状態と、前記１つまたは２つ以上の他のソフトウェアアプリケーションが実行中であることに応答して、前記１つまたは２つ以上の他の実行中ソフトウェアアプリケーションを、前記クレデンシャルへのアクセスと共に準備状態にあるサインインした状態に移行する
ことを含むことを特徴とする方法。
【請求項２】
請求項1に記載の方法において、前記他の実行中ソフトウェアアプリケーションは、実行モードにあるソフトウェアアプリケーションと始動中のソフトウェアアプリケーションとを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法において、クレデンシャルを処理することは、
クレデンシャルを受け取り、
前記クレデンシャルが真正であるかどうかを検出し、
前記クレデンシャルが真正であることに応答して、認証情報を受け取ってストアし、前記クレデンシャルを共有メモリに書き込み、アクセスのためのサインインが行われたことを示す通知を前記他の実行中ソフトウェアアプリケーションに送る
ことを含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法において、前記他の実行中ソフトウェアアプリケーションを移行することは、
前記アクセスのためのサインインが行われたとの通知を受け取り、
前記通知を受け取ったことに応答して、実行モードにある各ソフトウェアアプリケーションのインタフェースをサインインした状態を示すように変更する
ことを含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法において、前記他の実行中ソフトウェアアプリケーションを移行することは、
クレデンシャルが前記共有メモリにストアされているかどうかを検出し、
前記クレデンシャルがストアされていることに応答して、始動中の各ソフトウェアアプリケーションのインタフェースをサインインした状態に変更する
ことをさらに含むことを特徴とする方法。
【請求項６】
請求項５に記載の方法において、前記サインインした状態は、前記アクセスのためのサインインした状態または前記準備状態のサインインした状態を含むことを特徴とする方法。
【請求項７】
請求項６に記載の方法において、
ソフトウェアアプリケーションが前記準備状態のサインインした状態にあるとき、該ソフトウェアアプリケーション内のセキュリティ保護機能にアクセスする要求を受け取り、
前記要求を受け取ったことに応答して、前記クレデンシャルを前記共有メモリから取り出し、
前記クレデンシャルが真正であるかどうかを検出し、
前記クレデンシャルが真正であることに応答して、前記ソフトウェアアプリケーションの前記セキュリティ保護機能にアクセスするための認証情報を受け取ってストアしておき、これによって前記ソフトウェアアプリケーションが前記準備状態のサインインした状態から前記アクセスのためのサインインした状態に移行され、前記セキュリティ保護機能がアクセスされるようにする
ことを含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法において、前記クレデンシャルが真正であるかどうかを検出することは、
前記クレデンシャルを認証のために送信し、
前記クレデンシャルの身元を検証し、
前記クレデンシャルの前記身元が検証されたことに応答して、前記クレデンシャルの有効性を確認する
ことを含むことを特徴とする方法。
【請求項９】
請求項８に記載の方法において、前記クレデンシャルは暗号化フォーマットでストアおよび送信され、認証情報は暗号化クッキーを含むことを特徴とする方法。
【請求項１０】
請求項９に記載の方法において、２つまたは３つ以上のソフトウェアアプリケーションの間でサインアウトオペレーションを共有することをさらに含み、前記ソフトウェアアプリケーションは、１つまたは２つ以上のセキュリティ保護機能を備える、前記方法は、
ソフトウェアアプリケーションがサインインした状態にあるときに該ソフトウェアアプリケーションのサインアウトする要求を受け取り、
サインアウトが行われたことを示すメッセージを前記他の実行中ソフトウェアアプリケーションに送り、
サインインを要求したソ前記フトウェアアプリケーションのメモリに認証情報がストアされているかどうかを検出し、
認証情報がストアされていることに応答して、前記ソフトウェアアプリケーションのメモリから前記認証情報を除去し、
前記各実行中ソフトウェアアプリケーションをサインインした状態からサインアウトした状態に移行する
ことを含むことを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、前記ソフトウェアアプリケーションは前記サインインオペレーションを共有することを認可され、
各実行中ソフトウェアアプリケーションをサインインした状態に移行することに応答して、サインインした状態に移行された前記各実行中ソフトウェアアプリケーションの参照カウントをインクリメントし、
各実行中ソフトウェアアプリケーションをサインインした状態からサインアウトした状態に移行することに応答して、サインアウトした状態に移行された前記各実行中ソフトウェアアプリケーションの参照カウントをデクリメントする
ことをさらに含むことを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、前記参照カウントは、前記アクセスのためのサインインした状態または前記準備状態のサインインした状態に現在あるソフトウェアアプリケーションの数を含むことを特徴とする方法。
【請求項１３】
請求項１２に記載の方法において、前記クレデンシャルはユーザ名およびパスワードを含むことを特徴とする方法。
【請求項１４】
請求項１２に記載の方法において、各実行中ソフトウェアアプリケーションをサインアウトした状態に移行することは、各実行中ソフトウェアアプリケーションのインタフェースをサインアウトした状態に変更することをさらに含むことを特徴とする方法。
【請求項１５】
請求項１２に記載の方法において、
前記参照カウントがゼロであるかどうかを検出し、
前記参照カウントがゼロであることに応答して、前記クレデンシャルを前記共有メモリからクリアする、
ことをさらに含むことを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において、
ソフトウェアアプリケーションを終了する要求を受け取り、
前記ソフトウェアアプリケーションがサインインした状態にあるかどうかを検出し、
前記ソフトウェアアプリケーションがサインインした状態にあることに応答して、前記参照カウントをデクリメントし、前記ソフトウェアアプリケーションを終了する
ことをさらに含むことを特徴とする方法。
【請求項１７】
請求項１６に記載の方法において、前記ソフトウェアアプリケーションがサインインした状態にないことに応答して、前記ソフトウェアアプリケーションを終了することをさらに含むことを特徴とする方法。
【請求項１８】
コンピューティングシステムによって読み取り可能であって、ソフトウェアアプリケーションにログインするためのコンピュータプロセスを実行するための命令をエンコードしているコンピュータプログラムプロダクトであって、前記ソフトウェアアプリケーションは１つまたは２つ以上セキュリティ保護機能を備えており、前記コンピュータプロセスは、
単一のソフトウェアアプリケーション内のログインした状態に入るための要求を受け取り、
前記単一のソフトウェアアプリケーション内のアクセスのためのログインした状態に入るためのクレデンシャルを検証し、
１つまたは２つ以上の他のソフトウェアアプリケーションがオープンしているかどうかを検出し、
前記１つまたは２つ以上の他のソフトウェアアプリケーションがオープンしていることに応答して、オープンしているソフトウェアアプリケーションを前記クレデンシャルへのアクセスと共に準備状態のログインした状態に進める
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項１９】
請求項１８に記載のコンピュータプログラムプロダクトにおいて、前記コンピュータプロセスは、
前記ソフトウェアアプリケーションが準備状態のログインした状態にあるとき、前記ソフトウェアアプリケーション内のセキュリティ保護機能にアクセスする要求を受け取り、
前記要求に応答して、有効性の確認をするために前記クレデンシャルを取り出して、送信し、
前記クレデンシャルの有効性が確認されたことに応答して、認証情報を取り出して、ストアしておき、前記ソフトウェアアプリケーションを前記準備状態のログインした状態から前記アクセスのためのログインした状態に進める
ことをさらに含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２０】
請求項１８に記載のコンピュータプログラムプロダクトにおいて、クレデンシャルを検証することは、
クレデンシャルを受け取り、
前記クレデンシャルが有効であるかどうかを検出し、
前記クレデンシャルが有効であることに応答して、前記クレデンシャルを共有メモリに書き込み、
アクセスのためのログインが行われたことを示すメッセージを前記他のオープンしているソフトウェアアプリケーションに送信する
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２１】
請求項２０に記載のコンピュータプログラムプロダクトにおいて、前記コンピュータプロセスは、
１つまたは２つ以上の他のソフトウェアアプリケーションが始動中であるかどうかを検出し、
前記１つまたは２つ以上の他のソフトウェアアプリケーションが始動中であることに応答して、各始動中のソフトウェアアプリケーションを、前記クレデンシャルへのアクセスと共に準備状態のログインした状態に進める
ことをさらに含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２２】
請求項２１に記載のコンピュータプログラムプロダクトにおいて、前記始動中のアプリケーションを準備状態のログインした状態に進めることは、
前記クレデンシャルが前記共有メモリにストアされているかどうかを検出し、
前記クレデンシャルがストアされていることに応答して、前記各始動中のソフトウェアアプリケーションのインタフェースをログインした状態に変更し、
前記準備状態のログインした状態に進められた各始動中のソフトウェアアプリケーションの参照カウントをインクリメントする、
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２３】
請求項２２に記載のコンピュータプログラムプロダクトにおいて、前記他のオープンしているアプリケーションを前記準備状態のログインした状態に進めることは、
前記アクセスのためのログインが行われたことを示す前記メッセージを受け取り、
前記オープンしているアプリケーションのインタフェースをログインした状態に変更し、
前記準備状態のログインした状態に進められた各オープンしているアプリケーションの前記参照カウントをインクリメントする
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２４】
請求項２３に記載のコンピュータプログラムプロダクトにおいて、前記参照カウントは、現在ログインした状態にあるソフトウェアアプリケーションの数を含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２５】
請求項２２に記載のコンピュータプログラムプロダクトにおいて、前記クレデンシャルは暗号化フォーマットでストアされ、送信されることを特徴とするコンピュータプログラムプロダクト。
【請求項２６】
請求項２３に記載のコンピュータプログラムプロダクトにおいて、２つまたは３つ以上のソフトウェアアプリケーションの間でログアウトオペレーションを共有することをさらに含み、前記ソフトウェアアプリケーションは１つまたは２つ以上のセキュリティ保護機能を備える前記コンピュータプログラムプロダクトは、
ソフトウェアアプリケーションがログインした状態にあるとき、該ソフトウェアアプリケーションをログアウトする要求を受け取り、
認証情報が前記ソフトウェアアプリケーションのメモリにストアされているかどうかを検出し、
前記認証情報がストアされていることに応答して、前記ソフトウェアアプリケーションのメモリから前記認証情報を除去し、
共有ログアウトが行われたことを示すメッセージを前記他のオープンしているソフトウェアアプリケーションに送り、
前記各ソフトウェアアプリケーションをログアウトした状態に進める
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２７】
請求項２６に記載のコンピュータプログラムプロダクトにおいて、前記ソフトウェアアプリケーションは、前記ログインおよびログアウトオペレーションを共有することを承認されていて、
各オープンしているソフトウェアアプリケーションをログインした状態に進めることに応答して、ログインした状態に進められた前記各オープンしているソフトウェアアプリケーションの参照カウントをインクリメントし、
前記各ソフトウェアアプリケーションをログアウトした状態に進めることに応答して、ログアウトした状態に進められた前記各ソフトウェアアプリケーションの前記参照カウントをデクリメントする、
ことを含むことを特徴とするコンピュータプログラムプロダクト。
【請求項２８】
２つまたは３つ以上のソフトウェアアプリケーションにログインするためのシステムであって、該ソフトウェアアプリケーションは１つまたは２つ以上のセキュリティ保護機能を備える該システムは、
共有クレデンシャルをストアしているメモリユニットと、
ソフトウェアアプリケーション内でログインする要求を受け取り、前記ソフトウェアアプリケーション内でアクセスのためのログインした状態に入るためのクレデンシャルを処理し、１つまたは２つ以上の他のソフトウェアアプリケーションが実行モードにあるかどうかを検出し、前記１つまたは２つ以上の他のソフトウェアアプリケーションが実行モードにあることに応答して、実行モードにあるソフトウェアアプリケーションを前記クレデンシャルへのアクセスと共に準備状態のログインした状態に移行する処理ユニットと、
を含むことを特徴とするシステム。
【請求項２９】
請求項２８に記載のシステムにおいて、
前記ログインした状態とネットワークアクティビティとを示すディスプレイユニットをさらに含むことを特徴とするシステム。
【請求項３０】
２つまたは３つ以上のアプリケーションの間でサインインオペレーションを共有するためのシステムであって、各アプリケーションは少なくとも１つのセキュリティ保護機能を備える該システムは、
セキュリティ保護機能を備えた第１の実行中ソフトウェアアプリケーションにサインインする要求を受け取る受信モジュールと、
前記第１の実行中ソフトウェアアプリケーションに対するサインイン入力の有効性を確認し、前記第１の実行中ソフトウェアアプリケーションの状態をセキュリティ保護機能へのアクセスを示すアクセスのためのサインインした状態に変更するクレデンシャルモジュールと、
前記クレデンシャルモジュールに応答して、セキュリティ保護機能を備えた第２の実行中ソフトウェアアプリケーションの状態を、前記サインイン入力へのアクセスと共に準備状態のサインインした状態に変更する移行モジュールと
を含むことを特徴とするシステム。
【請求項３１】
請求項３０に記載のシステムにおいて、
共有クレデンシャルを前記共有メモリにストアしているメモリユニットと、
ソフトウェアアプリケーションが準備状態のサインインした状態にあるとき、該ソフトウェアアプリケーション内のセキュリティ保護機能にアクセスする要求を受け取り、前記要求を受け取ることに応答して、前記共有クレデンシャルを前記共有メモリから取り出し、前記クレデンシャルが真正であるかどうかを検出し、前記クレデンシャルが真正であることに応答して、前記ソフトウェアアプリケーションのセキュリティ保護機能にアクセスするための認証情報を受け取り、ストアしておく処理ユニットであって、これによって前記ソフトウェアアプリケーションが前記準備状態のサインインした状態から前記アクセスのためのサインインした状態に移行されて、前記セキュリティ保護機能がアクセスされる処理ユニットと
をさらに含むことを特徴とするシステム。
【請求項３２】
請求項３１に記載のシステムにおいて、サインアウト要求に応答して、前記実行中アプリケーションの状態をサインアウトした状態に変更するサインアウトモジュールをさらに含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、ユーザまたはコンピューティングシステムの身元（identity）を認証する方法およびシステムに関する。さらに具体的には、本発明は、セキュリティ保護機能（secured feature）を備えたソフトウェアアプリケーションの間でサインインのオペレーションを共有するための方法、システム、および装置に関する。
【背景技術】
【０００２】
今日のソフトウェアアプリケーションは、ユーザおよびコンピュータがソフトウェアアプリケーション内のセキュリティ保護機能にアクセスするためにサインインし、これによって認証サービスに接続することにより身元を検証することを要求するセキュリティ保護されたネットワークサービス機能をもつように作られている。
【０００３】
MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているPASSPORT.NET（商標）のような認証サービスは、セキュリティ保護機能にアクセスするためにユーザを認証することを必要とするソフトウェアアプリケーションには不可欠な一部になりつつある。これらの認証サービスは、ソフトウェアアプリケーション内のセキュリティ保護機能へのアクセスを制御し、ネットワークユーザのために身元および認証 (identity and authentication) サービスを提供している。例えば、ワードプロセッシングアプリケーション内から使用されるセキュリティ保護されたネットワークファックスサービスは、ユーザの身元を認証するためにユーザ名とパスワードの入力を要求し、ネットワークファックスサービスの使用を認可している。いったん身元が認証されると、認証オペレーションは認証ゲートウェイとして働き、サインインしたセッション (signed in session) 期間中にアクセスされるどのネットワークサービスまたはＷｅｂサイトでもユーザ名とパスワードを入力することなく、ユーザがワードプロセッシングアプリケーション内からセキュアにネットワークサービスにアクセスすることができるようにしている。
【０００４】
しかし、各々がセキュリティ保護機能を備えたソフトウェアアプリケーションファミリのユーザは、依然としてユーザ名とパスワードを入力するか、あるいはサインインボタン (sign-in button) をクリックして、各ソフトウェアアプリケーション内のサインインした状態に最初に到達しなければならない。現行のサインインオペレーションの１つの問題点は、オペレーションが波及的 (pervasive) でり、セキュリティ保護されたソフトウェアフィーチャにアクセスする目的でサインインするためにユーザインタフェースのプロンプトでユーザが反復的に介入することが要求されることである。これは、セキュリティ保護機能を備えたソフトウェアアプリケーションの１つにユーザがサインインするたびに行わなければならない。例えば、ユーザがMICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているWORD（商標）、EXCEL（商標）、およびPOWER POINT（商標）のセキュリティ保護機能を使用したい場合は、ユーザは各ソフトウェアアプリケーションを始動し、ユーザ名とパスワードをタイプインするか、あるいはインタフェースボタンをクリックして、アプリケーションごとに保存されているパスワードを入力しなければならない。サインインプロンプトは各ソフトウェアアプリケーション別になっているので、セキュリティ保護機能を利用するために反復的にサインインすることは、定期的にセキュリティ保護機能にアクセスするユーザにとって煩わしい負担になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記問題点およびその他の問題点を解決することを課題にしている。
【課題を解決するための手段】
【０００６】
本発明によれば、上記問題点およびその他の問題点を、セキュリティ保護機能を備えたソフトウェアアプリケーションの間でサインインオペレーションを共有することによって解決している。本発明によれば、セキュリティ保護機能を備えた、あるオープン中または実行中のソフトウェアアプリケーションがアクセスのためのサインインした状態 (access signed-in state) に入ったとき、セキュリティ保護機能を備えた、他のオープン中または実行中のソフトウェアアプリケーションは、プロンプトでユーザの介入を求めることなく、準備状態のサインインした状態 (ready signed-in state) に入る。最初のオープン中または実行中のソフトウェアアプリケーションにサインインした同じオペレーションが、現在オープン中、実行アクティブ状態、または実行モードである他のソフトウェアアプリケーションを、準備状態のサインインした状態に移行する。アクセスのためのサインインした状態にあるときは、ユーザの身元が十分に認証され、セキュリティ保護機能へのアクセスが許可される。準備状態のサインインした状態では、ソフトウェアアプリケーションは、ユーザの介入をプロンプトで求めることなく認証し、セキュリティ保護機能にアクセスするために準備の状態に置かれる。
【０００７】
本発明の１つの特徴は、サインインクレデンシャル（例えば、ユーザ名とパスワード）を共有し、セキュリティ保護機能を備えたオープン中のソフトウェアアプリケーション間で普遍的で共有されたサインインセッションを提供するために共有されたクレデンシャルを処理することである。この特徴によると、ユーザは、実際には、セキュリティ保護機能を備えたソフトウェアアプリケーションに対して一度のサインインまたはログインセッションを行うだけで済む。ユーザがあるセキュリティ保護されたソフトウェアアプリケーションにサインインすると、それらサインインクレデンシャルが認証され、セキュリティ保護機能を提供する他のアプリケーションと共有される。
【０００８】
この特徴は、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているMICROSOFT OFFICE（商標）のような、セキュリティ保護機能を備えている、あるいは提供するソフトウェアアプリケーションのスイート(suite)に対して特に有用である。ユーザは、セキュリティ保護されたスイートアプリケーションに一度だけ能動的にサインインすることができ、それらサインインクレデンシャルはメモリにストアしておいて、現在オープン中か、実行モードにあるか、あるいは後に実行のためにオープンまたは始動される他のセキュリティ保護されたスイートアプリケーションを、準備状態のサインインした状態からアクセスのためのサインインした状態に移行するために使用することができる。このようにすると、ユーザがソフトウェアアプリケーション内のセキュリティ保護機能へアクセスする目的でサインインするためにそれらのクリデンシャルを再入力する必要がなくなる。また、このようにすることで、スイート中のソフトウェアアプリケーションが共同で稼動する能力が向上することにもなる。
【０００９】
本発明の別の特徴は、あるソフトウェアアプリケーションがアクセスのためのサインインした状態に入ったあと、各オープン中または実行中のソフトウェアアプリケーションは、実際には、非同期的な態様で準備状態のサインインした状態に入るが、これは、実質的にユーザから見えない形で行われる。あるソフトウェアアプリケーションがアクセスのためのサインインした状態に入ったとき、他のオープン中または実行中のソフトウェアアプリケーションは、その状態にあることを示すメッセージまたは通知を、邪魔をしない方法 (non-intrusive manner) で受け取る。次に、各オープン中または実行中のソフトウェアアプリケーションは、一度に１つずつ準備状態のサインインした状態に移行する。さらに、セキュリティ保護機能を備えた他のソフトウェアアプリケーションが実行のためにオープンまたは始動されると、あるアプリケーションがアクセスのためのサインインした状態に入っているかどうかのテストまたは検出が行われる。アクセスのためのサインイン状態があるか、または存在していれば、オープンまたは始動しようとしているソフトウェアアプリケーションは、準備状態のサインインした状態に非同期的に移行する。その結果、サインインするときに不必要で、反復的なステップが回避され、ランダムに行われる邪魔なプロンプト (intrusive prompt) やサインインダイアログが、ソフトウェアアプリケーションの使用中に現れることが少なくなる。
【００１０】
本発明の別の特徴では、クレデンシャル情報は暗号化フォーマットでストアされる。共有メモリにストアされているクレデンシャルは、共有される前に認証され、ソフトウェアアプリケーションがそのクレデンシャルを使用して、準備状態のサインインした状態からアクセスのためのサインインした状態に移行または進むとき再び認証される。この移行が行われる期間、そのソフトウェアアプリケーションのメモリは、ソフトウェアアプリケーション内のセキュリティ保護機能にアクセスを提供し、許可するための暗号化クッキー (encrypted cookie) を認証サーバから受け取る。
【００１１】
本発明の別の特徴は、常にサインインした状態にあるアプリケーションの数がモニタされるか、あるいは参照カウントでカウントされ、その数がゼロに達すると、共有メモリがクリアされるようにすることである。このようにすると、無認可のアプリケーション (unauthorized application) がサインインした状態に入ることによる共有サインインが防止される。
【００１２】
本発明の別の特徴は、サインインオペレーションを共有したあとサインアウト (sign out) を共有することである。アクセスのための、または準備状態のサインインした状態にあるセキュリティ保護されたソフトウェアアプリケーションがサインアウトした状態 (signed-out state) に移行すると、そのアプリケーションがアクセスのためのサインインした状態から移行する場合は、クレデンシャルと暗号化クッキーはそのアプリケーションのメモリから除去される。サインアウトしたことが他のオープン中または実行中アプリケーションに通知され、各アプリケーションがサインアウトするたびに参照カウントがデクリメントされ、アプリケーションのインタフェースがサインアウトした状態に変更される。このようにすると、ユーザと他のアプリケーションには、各アプリケーションのステータスが常時知らされることになる。そのあと、アクセスのための、または準備状態のサインインした状態にある各オープン中または実行中のソフトウェアアプリケーションは、非同期的に参照カウントをデクリメントし、それぞれのインタフェースをサインアウトした状態に変更する。このようにすると、それぞれのセキュリティ保護されたアプリケーションから能動的にサインアウトする必要がなくなる。
【００１３】
本発明は、コンピュータプロセスとしても、コンピューティングシステムとしても、あるいはコンピュータプログラムプロダクトやコンピュータ可読媒体のような製造物品としても実現することができる。コンピュータプログラムプロダクトは、コンピュータシステムによって読み取り可能で、コンピュータプロセスを実行するための命令からなるコンピュータプログラムをエンコードしているコンピュータ記憶媒体とすることができる。また、コンピュータプログラムプロダクトは、コンピューティングシステムによって読み取り可能で、コンピュータプロセスを実行するための命令からなるコンピュータプログラムをエンコードしている、搬送波上の伝播信号にすることも可能である。
【００１４】
本発明の利点は、ネットワーク伝送が必要時方式 (as-needed basis) で行われるため、ネットワーク効率性が改善されることである。一部のセキュリティ保護されたソフトウェアアプリケーションが準備状態のサインインした状態にあっても、セキュリティ保護機能が要求されたときだけネットワーク伝送を実行するので、ネットワークトラフィックは低減され、このアプリケーションは、アクセスのためのサインインした状態に移行することになる。
【００１５】
本発明の別の利点は、無認可のアプリケーションは、サインインオペレーションを共有することが禁止されるので、サインインに対する攻撃が防止されることである。共有サインインに関与しないアプリケーションには、サインインを共有するために必要なアプリケーションプログラムインタフェース (application program interface) にアクセスするために必要なコードが含まれていない。
【００１６】
本発明の大きな有用性は、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているOFFICE（商標）のような、セキュリティ保護機能を備えたソフトウェアアプリケーションのスイートまたはファミリの間でサインインを共有し、従ってサインアウトするオペレーションも共有する。このようにすると、ユーザは、最初のセキュリティ保護されたアプリケーションをうまくサインインまたはサインアウトしたあと、各セキュリティ保護されたアプリケーションを手操作でサインインまたはサインアウトする必要性が軽減されることになる。
【００１７】
本発明を特徴付けている、上記およびその他の種々の特徴と利点は、添付図面を参照して下述する詳細な説明を読めば理解されるはずである。
【発明を実施するための最良の形態】
【００１８】
以下図面を参照し本発明の実施形態を詳細に説明する。  
図１を参照して説明すると、例示の図は、本発明の実際の実施形態で利用されているシステムアーキテクチャ１０を示している。図１に示すように、クライアントコンピュータ２０が用意されているが、これは、ネットワーク５０を通して認証サーバ６０に接続されている。ここで説明している１つの実際の実施形態によれば、クライアントコンピュータ２０は標準的パーソナルコンピュータからなり、これは、デジタル加入者線 (Digital Subscriber Line) またはケーブルモデムなどのコネクションを通して、インターネットなどのネットワーク５０に接続されている。しかし、当然に理解されるように、クライアントコンピュータ２０は、ＰＤＡ(Personal Digital Assistant) などの、別タイプのコンピューティングデバイスからなることも可能であり、ダイヤルアップや衛星コネクションなどの、別タイプのコネクションを通してネットワーク５０に接続することも可能である。
【００１９】
クライアントコンピュータ２０は、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているINTERNET EXPLORER（商標）などの標準的Ｗｅｂブラウザアプリケーションプログラムを実行する機能を備えている。このＷｅｂブラウザアプリケーションプログラムがセキュリティ保護されたネットワークサイトとサービス８０にアクセスするために利用できるのは、そのパーソナルまたはクライアントコンピュータ２０が認証されたクレデンシャルを有している場合である。クレデンシャルは、クライアントコンピュータ２０がその暗号化クレデンシャルをネットワーク５０経由で認証サーバ６０に送信したあと認証される。認証サーバ６０は、セキュリティ保護されたホストサービスまたはＷｅｂサイト８０へのアクセスをユーザに許可する前にユーザの身元を認証する。例えば、クライアントコンピュータ２０のユーザが、これらのセキュリティ保護機能を備えたワードプロセッシングソフトウェアアプリケーション内でセキュリティ保護されたファックスまたはプリントサービスにアクセスできるためには、その前に、そのユーザは、ネットワーク５０経由でクレデンシャル（例えば、ユーザ名とパスワード）を認証サーバ６０に渡さなければならない。
【００２０】
ソフトウェアアプリケーション内のあるセキュリティ保護機能が要求されると、クライアントコンピュータ２０は、クレデンシャルの入力と共にサインインまたはログインすることを、ユーザにプロンプトで促す。あるアプリケーションがアクセスのためのサインインまたはログインした状態に入ると、他のオープン中または実行中のセキュリティ保護されたソフトウェアアプリケーションは、サインインしたとの通知を受け取り、続いて準備状態のサインインまたはログインした状態に入る。ソフトウェアアプリケーションがクライアントコンピュータ２０上で準備状態のサインインした状態に到達すると、セキュリティ保護機能にアクセスするためのクレデンシャルを入力するためにユーザが介入する必要がなくなるので、ソフトウェアアプリケーションは、ユーザ側にアクションをプロンプトで要求することなく、アクセスのためのサインインまたはログインした状態に移行または進むことができる。準備状態のサインインした状態にあるアプリケーションを使用するときは、セキュリティ保護機能へのアクセスを要求するだけで、サインインプロセスが開始される。サインインまたはログインプロセスの期間、アクセスのためのサインインした状態に現在あるアプリケーションにサインインするために最初に使用した暗号化クレデンシャルは、セキュリティ保護機能へのアクセスを要求したアプリケーションによって共有メモリから取得または取り出され、認証サーバ６０に送信されることになる。
【００２１】
一旦クレデンシャルが認証サーバ６０によって検証または有効性が確認されると、認証サーバ６０は、暗号化クッキーをクライアントコンピュータ２０に戻し、そこで、暗号化クッキーは暗号化クッキーを要求したアプリケーションのメモリにストアされる。この暗号化クッキーがあると、クライアントコンピュータ２０は、セキュリティ保護されたホストサービスとＷｅｂサイトにアクセスすることを認められる。暗号化クッキーを受け取ると、ソフトウェアアプリケーションはアクセスのためのサインインまたはログインした状態に設定されるので、クライアントコンピュータ２０は、サインインまたはログインセッション期間中に再度クレデンシャルを認証することなく、ネットワーク５０経由でソフトウェアアプリケーションからセキュリティ保護されたサイトとサービスにアクセスすることが可能になる。しかし、ユーザがソフトウェアアプリケーションからログアウト、終了、またはサインアウトして、そのソフトウェアアプリケーション内からセキュリティ保護機能へのアクセスを再度要求する場合は、アクセスのための、または準備状態のサインインした状態がそのアプリケーションに戻されていない限り、ユーザはクレデンシャルの入力をプロンプトで求められることになる。
【００２２】
図２は、本発明の実施形態を実現することができる適切なコンピューティング環境を示す図である。以下では、パーソナルコンピュータによって実行されるコンピュータ実行可能命令という広い意味で、本発明の一実施形態について説明することにする。当業者ならば理解されるように、本発明は他のコンピュータシステム構成で実施することが可能であり、その中には、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどが含まれている。本発明は、通信ネットワークを通してリンクされているリモート処理デバイスによってタスクが実行されるような、分散型コンピューティング環境で実施することも可能である。
【００２３】
図２を参照して説明すると、本発明を実現するための例示システムは、従来のクライアントコンピュータ２０の形態をした汎用コンピューティングデバイスを含み、そこには、ＣＰＵ（central processing unit）２０４、システムメモリ、およびシステムメモリからＣＰＵ２０４を含む種々のシステムコンポーネントを結合するシステムバス２１２が含まれる。システムバス２１２は、いくつかのタイプのバス構造のいずれにすることも可能であり、その中には、種々のバスアーキテクチャのいずれかを採用したメモリバスまたはメモリコントローラ、ペリフェラル（周辺）バス、およびローカルバスが含まれる。システムメモリは、ＲＯＭ (read only memory)２１０ およびＲＡＭ (random access memory)２０８を含む。起動期間のように、クライアントコンピュータ２０内のエレメント間で情報を転送するのを支援する基本ルーチンが入っているＢＩＯＳ (basic input/output system)はＲＯＭ２１０に格納されている。
【００２４】
ＲＡＭ２０８には共有メモリ２１６があり、共通の機能をもつアプリケーションは必要時にそこから情報を取り出す。共有メモリ２１６は、ＤＬＬ (dynamic link library) によって作成される。共有クレデンシャルは、最初のソフトウェアアプリケーションがアクセスのためのサインインまたはログイン状態に入ったとき、暗号化フォーマットで共有メモリ２１６に書き込まれる。アクセスのためのサインインした状態または条件にあるときオープンまたは実行される後続のソフトウェアアプリケーションは、要求に応じてこのクレデンシャルを取り出し、ネットワーク５０経由でそれを認証サーバ６０に送信してサインインする。この同じクレデンシャルは、サインインまたはログインを共有することが承認または認可されたすべてのセキュリティ保護されたソフトウェアアプリケーションがクローズ、サインアウト、またはログアウトされたとき、共有メモリ２１６とＲＡＭ２０８からクリアされる。
【００２５】
クライアントコンピュータ２０は、さらに、ストレージデバイス２１４を装備し、そこには、オペレーティングシステム２１７、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているOFFICE（商標）などの、セキュリティ保護機能を備えたソフトウェアアプリケーションプログラム２３２、その他のアプリケーションプログラム２３６、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているINTERNET EXPLORER（商標）などの、標準的Ｗｅｂブラウザアプリケーションプログラム２２８、および共有サインインまたはログインアプリケーションプログラム２３０が格納されている。
【００２６】
オペレーティングシステム２１７は、ネットワーク５０経由で認証サーバ６０から送られ、その要求をしたソフトウェアアプリケーションプログラムのメモリ２３４にストアされている暗号化クッキーの形態の認証情報と共に働く。暗号化クッキーがあると、クライアントコンピュータ２０は、ユーザがアクセスを要求したとき、ネットワーク５０経由でソフトウェアアプリケーション内からセキュリティ保護機能にアクセスすることが可能になる。
【００２７】
ストレージデバイス２１４は、バス２１２に接続されたストレージコントローラ（図示せず）を通してＣＰＵ２０４に接続されている。ストレージデバイス２１４とその関連するコンピュータ可読媒体は、クライアントコンピュータ２０の不揮発性ストレージを提供している。本明細書では、コンピュータ可読媒体は、ハードディスクやＣＤ−ＲＯＭドライブなどのストレージデバイスを意味するものとして説明されているが、当業者ならば理解されるように、コンピュータ可読媒体は、パーソナルコンピュータ２０によってアクセスできる、利用可能な媒体ならば、どのような媒体であってもよい。
【００２８】
コンピュータ可読媒体の例を挙げると、コンピュータ記憶媒体 (computer storage media) と通信媒体 (communication media) があるが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法またはテクノロジで実現される、揮発性および不揮発性であって、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のソリッドステートメモリテクノロジ、ＣＤ−ＲＯＭ、ＤＶＤもしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、あるいは必要とする情報をストアするために使用可能で、コンピュータによってアクセス可能である任意のその他の媒体が含まれるが、これらに限定されない。
【００２９】
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波などの変調データ信号や他のトランスポートメカニズムの形で具現化しているのが一般的であり、任意の情報配信媒体を含む。ここで「変調データ信号」という用語は、その特性の１つまたは２つ以上が、信号の中で情報を符号化するような形で設定または変更されている信号を意味している。通信媒体の例を挙げると、有線ネットワークまたは直接配線接続のような有線媒体、および音響、ＲＦ、赤外線、他の無線媒体のような無線媒体があるが、これらに限定されない。上記に挙げたものを任意に組み合わせたものも、当然にコンピュータ可読媒体の範囲に含まれる。コンピュータ可読媒体は、コンピュータプログラムプロダクトと呼ばれることもある。
【００３０】
本発明の種々の実施形態によれば、クライアントコンピュータ２０は、インターネットなどの、ネットワーク５０を経由するリモートコンピュータとの論理コネクションを使用するネットワーク化された環境で動作することが可能である。クライアントコンピュータ２０は、バス２１２に接続されたネットワークインタフェースユニット２２０を通してネットワーク５０に接続することができる。当然に理解されるように、ネットワークインタフェースユニット２２０は、他のタイプのネットワークやリモートコンピュータシステムに接続するためにも利用することができる。クライアントコンピュータ２０は、キーボード、マウス、または電子スタイラス（図２に図示せず）を含む、いくつかのデバイスから入力を受信して、処理するための入出力コントローラ２２２を装備することも可能である。同様に、入出力コントローラ２２２は、ディスプレイスクリーン、プリンタ、または他のタイプの出力デバイスに出力を提供することもできる。
【００３１】
簡単に上述したように、いくつかのプログラムモジュールおよびデータファイルは、クライアントコンピュータ２０のストレージデバイス２１４とＲＡＭ２０８にストアしておくことができるが、その中には、MICROSOFT CORPORATION（米国ワシントン州レドモンド）が提供しているWINDOWS（登録商標） XPオペレーティングシステムのような、ネットワーク化されたパーソナルコンピュータのオペレーションを制御するのに適したオペレーティングシステム２１７が含まれる。ストレージデバイス２１４とＲＡＭ２０８は、１つまたは２つ以上のデータファイルをストアしておくこともできる。共有サインインまたはログインオペレーションに関する更なる詳細について、以下に詳しく説明する。
【００３２】
本発明の種々の実施形態のロジカルオペレーションは、(1) コンピュータシステム上で実行されるコンピュータに実装したアクト (computer implemented acts) またはプログラムモジュールのシーケンスとして、および/または (2) コンピュータシステム内の相互接続されたマシンロジック回路もしくは回路モジュールとして実現される。どのように実現するかは、本発明を実現するコンピューティングシステムに要求されるパフォーマンスによって決まる選択の問題である。従って、ここで説明されている本発明の実施形態を構成する論理オペレーションは、オペレーション、構造デバイス (structural device)、アクト (act)、またはモジュールといったようにさまざまな言い方で示される。当業者ならば理解されるように、これらのオペレーション、構造デバイス、アクトおよびモジュールは、特許請求の範囲に記載されている本発明の趣旨と範囲から逸脱することなく、ソフトウェアでも、ファームウェアでも、特定用途のデジタルロジックでも、これらの任意の組み合わせでも実現することが可能である。
【００３３】
図３は、セキュリティ保護機能を備えたソフトウェアアプリケーションにサインインまたはログインし、共有サインインオペレーションを開始するために実行または実施されるオペレーションフロー３００を示す図である。このオペレーションフロー３００は受信オペレーション３０４からスタートし、そこでは、セキュリティ保護機能を備えたソフトウェアアプリケーションはオープン中または実行中であり、他のアプリケーションがサインインまたはログインした状態にはない。受信オペレーション３０４は、セキュリティ保護機能にアクセスするためにサインインまたはログインする要求を受け取る。このオペレーションは、セキュリティ保護機能へのアクセスを要求するユーザ入力を認識することによって行われる。
【００３４】
受信オペレーション３０４が要求を受け取ったあと、クレデンシャルモジュール３０６は、クレデンシャルを処理または検証して、アクセスのためのサインインまたはアクセスのためのログインした状態に入る。先ず第一に、クレデンシャルモジュール３０６は、プロンプトでユーザにクレデンシャルを求める。ユーザはプロンプトで求められたときクレデンシャルを入力し、そのクレデンシャルは認証サーバ６０に送信される。次に、クレデンシャルモジュール３０６は、入力したクレデンシャルが真正または有効であるかどうかを検出する。クレデンシャルが真正または有効であれば、モジュール３０６は、クレデンシャルを暗号化フォーマットで共有メモリ２１６に書き込み、参照カウントをインクリメントし、ソフトウェアアプリケーションをアクセスのためのサインインまたはアクセスのためのログインした状態に移行または進める。アクセスのためのサインインまたはログインした状態では、ユーザの身元が完全に認証または検証され、セキュリティ保護機能へのアクセスが許可されている。そのあと、モジュール３０６は、サインインまたはログインが行われたとの通知を、すべてのオープン中または実行中のセキュリティ保護されたアプリケーションに送る。そのあと、オペレーションフロー３００は、サインインしたステータステストオペレーション (signed-in status test operation)３０８に進む。
【００３５】
サインインしたステータステストオペレーション３０８は、現在オープン中または実行モードにあって、サインインしたステータスにないセキュリティ保護されたアプリケーションがあるかどうかを検出する。なお、この中には、オープン中か、または実行モードで始動中のセキュリティ保護されたアプリケーションも含まれる。すべてのオープン中または実行中のセキュリティ保護されたアプリケーションがサインインまたはログインした状態に移行または進んでいた場合、オペレーションフロー３００は、ＮＯに分岐してテストオペレーション３０８から検出オペレーション３０９に移る。実行モードにあって、このステータスをもたないセキュリティ保護されたアプリケーションがある場合は、オペレーションフロー３００はＹＥＳに分岐して移行モジュール３１０に移る。
【００３６】
移行モジュール３１０は、クレデンシャルモジュール３０６から送られてきた通知をオープン中または実行中のセキュリティ保護されたアプリケーションに送付し、移行ごとに参照カウントをインクリメントし、実行モードにある各アプリケーションの状態とインタフェースを、準備状態のサインインまたはログインした状態に非同期的に変更する。準備状態のサインインまたはログインした状態により、ソフトウェアアプリケーションは、共有メモリ２１６にストアされたクレデンシャルへのアクセスが許可され、そのアプリケーションは、ユーザの介入をプロンプトで求めることなく、要求に応じて認証し、セキュリティ保護機能にアクセスするために準備の状態に置かれることになる。そのあと、オペレーションフロー３００は、検出オペレーション３０９へ進む。検出オペレーション３０９は、アクセスのためまたは準備状態のサインインまたはログインした状態にある何らかのセキュリティ保護されたアプリケーションが、サインアウト、終了、またはログアウト要求を受け取ったかどうかを検出する。サインアウトまたはログアウト要求は、サインアウトボタン (sign-out button) をクリックするか、あるいはソフトウェアアプリケーションをクローズまたは終了すると、開始される。サインアウト、終了またはログアウト要求を受け取らなかった場合は、オペレーションフロー３００はＮＯに分岐し、サインインまたはログインしたステータスまたは状態を実行モードにある何らかのセキュリティ保護されたアプリケーションが存在するかどうかを、サインインしたステータステストオペレーション３０８に戻ることによって検出し続ける。サインアウト、終了またはログアウト要求が受け取られた場合は、オペレーションフロー３００はＹＥＳに分岐し、サインアウトモジュール３１４に移る。
【００３７】
サインアウトモジュール３１４は、共有クレデンシャルと認証情報をメモリ２３４からクリアし、参照カウントをデクリメントし、サインアウトまたはログアウトが行われたとの通知を他のセキュリティ保護されたアプリケーションに送る。次に、サインアウトモジュール３１４は、サインアウトまたはログアウトの通知を、アクセスのためのまたは準備状態のサインインまたはログインした状態にあるセキュリティ保護されたアプリケーションに送付し、通知を受け取るアプリケーションごとに参照カウントをデクリメントし、アクセスのためのサインインまたはログインした状態にある各アプリケーションのメモリ２３４から認証情報をクリアし、セキュリティ保護されたアプリケーションの状態とインタフェースを、サインアウトまたはログアウトした状態に非同期的に変更する。すべてのアプリケーションがサインアウトすると、モジュール３１４は、共有メモリ２１６から共有クレデンシャルをクリアし、結合子３１６でコントロールを他のルーチンに戻す。
【００３８】
図４を参照して説明すると、以下に説明するスクリーン図には、本発明の実際の実施形態によって提供される例示コンピュータディスプレイが示されている。図４は、セキュリティ保護されたソフトウェアアプリケーションがアクセスのためのサインインした状態に入ると、その応答として表示されるユーザインタフェース４０を示している。列４２は、サインインまたはログインしたソフトウェアアプリケーションを示している。２つのアプリケーションはアクセスのためのサインインまたはログインした状態に入っていないが、そのどちらも、準備状態のサインインまたはログインした状態に移行している。ユーザには、これはアクセスのためのサインインまたはログインした状態として見えるので、準備状態のサインインまたはログインした状態のどのようなアプリケーションのセキュリティ保護機能にアクセスするとき、認証とアクセスは、ユーザの介入をプロンプトで求めることなく行われる。
【００３９】
例えば、WORDがアクセスのためのサインインした状態に入る場合、EXCELとPOWERPOINTはこのサインインを共有し、準備状態のサインインした状態に入る。ユーザがEXCEL内のあるセキュリティ保護機能を選択すると、この共有クレデンシャルが共有メモリ２１６から取り出され、ユーザには非波及的 (non-pervasive) なネットワークアクティビティインジケータとして見える状態で認証される。クレデンシャルの入力を求めるプロンプトは、現れない。この実施形態によると、ネットワーク伝送は必要時方式 (as-needed basis) で行われるので、ネットワーク効率性が改善されることにもなる。
【００４０】
さらに、ユーザがセキュリティ保護されたアプリケーションからサインアウトまたはログアウトするために能動的に信号を送ると、他のアプリケーションは通知を受け取り、非同期的にサインアウトまたはログアウトする。ディスプレイ４０は、すべてのアプリケーションについてサインアウトまたはログアウトした状態を表示するように、列４４と４２のインジケータをそれに応じて変更する。すべてのアプリケーションがサインアウトしたとき、共有メモリ２１６から共有クレデンシャルがクリアされる。サインインとサインアウトオペレーションの共有に関する更なる詳細を以下で説明する。
【００４１】
図５Ａ乃至図５Ｃは、セキュリティ保護機能を備えたソフトウェアアプリケーションがサインインまたはログイン、従って、サインアウトまたはログアウトオペレーション、を共有する場合の本発明の別の実施形態を示している。オペレーションフロー５００は始動オペレーション５０２からスタートし、そこでは、セキュリティ保護機能を備えたソフトウェアアプリケーションがオープンまたは起動され、実行モードに入る。次に、検出オペレーション５０４は、アプリケーションがサインインまたはログインオペレーションを共有することを承認されているかどうかを検出する。アプリケーションが承認されなければ、オペレーションフロー５００は、ＮＯに分岐して、始動オペレーション５０２で別のアプリケーションがオープンまたは始動するのを待つ。サインインオペレーションを共有することを承認または認可されないアプリケーションは、共有クレデンシャルをアクティブにした状態にすることは許可されない。
【００４２】
アプリケーションが承認または認可されていれば、オペレーションフロー５００はＹＥＳに分岐して、検出オペレーション５０６に移る。検出オペレーション５０６は、クレデンシャルが共有メモリにストアされているかどうかを検出する。クレデンシャルが存在しないか、あるいは共有メモリにストアされていなければ、どのセキュリティ保護されたアプリケーションも、現在アクセスのためのサインインまたはログインした状態になっていない。その結果、オペレーションフロー５００はＮＯに分岐し、検出オペレーション５０８に移る。クレデンシャルが存在またはストアされていれば、オペレーションフロー５００はＹＥＳに分岐して、以下で説明するカウンタオペレーション５１８に移る。
【００４３】
検出オペレーション５０８は、サインインまたはログインする要求が行われたかどうかを検出する。サインインまたはログインする要求が行われていなければ、オペレーションフロー５００はＮＯに分岐して、検出オペレーション５０６に移る。サインインまたはログインする要求が行われていれば、オペレーションフロー５００はＹＥＳに分岐して、受信オペレーション５１０に移り、そこでは、ユーザからクレデンシャルを要求し、受信する。次に、検出オペレーション５１２は、受信したクレデンシャルが有効または真正であるかどうかを検出する。これは、クレデンシャルをネットワーク５０経由で認証サーバ６０に送信することによって行われる。
【００４４】
クレデンシャルが有効または真正でなければ、オペレーションフロー５００はＮＯに分岐して、結合子５１３に移り、そこで、エラーが戻される。クレデンシャルが有効または真正であれば、オペレーションフローはＹＥＳに分岐し、そこでは、書き込みオペレーション５１４がクレデンシャルを、暗号化フォーマットで共有メモリ２１６に書き込む。そのあと、通知オペレーション５１６は、そのサインインまたはログインの通知を、実行中の他のセキュリティ保護されたアプリケーションに送る。次に、カウンタオペレーション５１８は参照カウントをインクリメントし、インタフェースオペレーション５２０はアクセスのためのサインインしたアプリケーションについて、ディスプレイ４０をサインインした状態に変更する。
【００４５】
セキュリティ保護されたアプリケーションが、上述したようにアクセスのためのサインインした状態に入ったあと、オペレーションフロー５００は、サインインしたステータステストオペレーション５２２に進む。サインインしたステータステストオペレーション５２２は、現在オープン中または実行モードにあって、サインインしたステータスをもたない、何らかの承認されたセキュリティ保護されたアプリケーションがあるかどうかを検出する。すべてのオープン中または実行中のアプリケーションがサインインした状態に移行または進んでいた場合は、オペレーションフロー５００はＮＯに分岐して、以下で説明する検出オペレーション５１７に移る。実行モードにあって、サインインしたステータスをもたない、承認されたアプリケーションがある場合は、オペレーションフロー５００はＹＥＳに分岐して、上述したカウンタオペレーション５１８に移る。ここで、サインインまたはログインを共有することを承認または認可された実行中アプリケーションは、非同期的な態様で準備状態のサインインした状態に移行される。
【００４６】
検出オペレーション５１７は、準備状態のサインインまたはログインした状態にあるアプリケーションのいずれかが、セキュリティ保護機能にアクセスする要求を受け取ったかどうかを検出する。そのような要求が行われていれば、取り出しオペレーション５１９は、共有クレデンシャルを共有メモリ２１６から取り出す。次に、検出オペレーション５２１は、このクレデンシャルが真正または有効であるかどうかを検出する。真正でなければ、結合子５１３でエラーが戻される。このクレデンシャルが真正または有効であれば、アクセスモジュール５２３は認証情報を受け取り、それを準備状態のサインインしたアプリケーションのメモリにストアし、アプリケーションをアクセスのためのサインインした状態に移行または進めさせ、要求したセキュリティ保護機能にアクセスする。認証情報は、認証サーバ６０から送られた暗号化クッキーの形態の認証済みクレデンシャルであってもよい。この特徴によると、ネットワーク伝送を必要時方式で制限するので、ネットワーク効率性が改善される。次に、オペレーションフロー５００は、以下で説明する検出オペレーション５２４に進む。
【００４７】
検出オペレーション５１７がアクセス要求を検出しなかった場合は、オペレーションフロー５００は検出オペレーション５２５に進み、そこでは、承認または認可されたアプリケーションを始動する要求が行われたかどうかが判断される。そのような要求があった場合は、オペレーションフロー５００はＹＥＳに分岐して、上述した検出オペレーション５０６に進む。承認または認可されたアプリケーションを始動する要求がなかった場合は、オペレーションフロー５００はＮＯに分岐して、検出オペレーション５２４に移る。
【００４８】
検出オペレーション５２４は、アプリケーションを終了する要求が行われたかどうかを検出する。そのような要求があったときは、検出オペレーション５２６は、終了を要求したアプリケーションがまだサインインまたはログインされているかどうかを判断する。アプリケーションがサインインまたはログインされていなければ、アプリケーションは終了オペレーション５２８で終了する。そのあと、オペレーションフロー５００は、再び、上述した検出オペレーション５２４に進む。アプリケーションが検出オペレーション５２６でまだサインインされていれば、カウンタオペレーション５２７は参照カウントをデクリメントし、アプリケーションは終了オペレーション５２８で終了する。検出オペレーション５２４で終了する要求がなければ、検出オペレーション５３０は、サインアウトまたはログアウトする要求があったかどうかを検出する。
【００４９】
サインアウトまたはログアウトする要求があった場合は、オペレーションフロー５００はＹＥＳに分岐して通知オペレーション５３２に移り、そこでは、サインアウトの通知が実行中アプリケーションに送信される。アプリケーションは、サインアウトまたはログアウトプロセス期間中は、サインインまたはログインすることが阻止される。次に、検出オペレーション５３３は、認証情報がサインアウトまたはログアウトするアプリケーションのメモリにストアされていたかどうかを検出する。認証情報がストアされていた場合は、除去オペレーション５３４はクレデンシャルと認証情報を、アプリケーションのメモリ２３４から除去し、オペレーションフロー５００は、以下で説明するインタフェースオペレーション５３６に進む。認証情報がストアされていなかった場合は、オペレーションフロー５００は、検出オペレーション５３３からインタフェースオペレーション５３６に進み、そこでは、ソフトウェアアプリケーションのインタフェース４０は、サインアウトまたはログアウトした状態または条件に変更される。次に、カウンタオペレーション５３８は参照カウントをデクリメントし、そのあと、オペレーションフロー５００は検出オペレーション５４０に進む。
【００５０】
検出オペレーション５４０は、参照カウントがゼロに等しいかどうか、つまり、すべての承認または認可されたソフトウェアアプリケーションがサインアウトまたはログアウトされたかどうかを判断する。参照カウントがゼロに等しければ、オペレーションフロー５００はＹＥＳに分岐し、そこでは、クレデンシャルが削除オペレーション５４２によって共有メモリ２１６からクリアまたは除去され、コントロールは結合子５４６で他のルーチンに戻される。参照カウントがゼロに等しくなければ、オペレーションフローはＮＯに分岐して、上述した検出オペレーション５３３に進む。この分岐は、アクセスのためまたは準備状態のサインインした状態にあるすべてのセキュリティ保護されたアプリケーションを、参照カウントがゼロに等しくなるまでサインアウトまたはログアウトし続けることになる。
【００５１】
検出オペレーション５３０がサインアウトまたはログアウトの要求が出されていないことを検出した場合は、オペレーションフロー５００は、上述した検出オペレーション５１７に進む。
【００５２】
以上、本発明の実施形態を参照して本発明を詳細に示し、説明してきたが、当業者ならば理解されるように、本発明の趣旨と範囲から逸脱することなく、形態と細部においてさまざまなその他の変更を行うことが可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実際の実施形態で利用されているシステムアーキテクチャを示す図である。
【図２】本発明を実現することができる１つのコンピューティング環境を示す図である。
【図３】本発明の一実施形態においてセキュリティ保護機能を備えたソフトウェアアプリケーションと共に共有サインインを実行するオペレーションのフローを示す図である。
【図４】本発明の実際の実施形態によって提供される例示コンピュータディスプレイを示すスクリーン図である。
【図５Ａ】セキュリティ保護機能を備えたソフトウェアアプリケーションがサインインとサインアウトオペレーションを共有する場合の本発明の別の実施形態を示す図である。
【図５Ｂ】セキュリティ保護機能を備えたソフトウェアアプリケーションがサインインとサインアウトオペレーションを共有する場合の本発明の別の実施形態を示す図である。
【図５Ｃ】セキュリティ保護機能を備えたソフトウェアアプリケーションがサインインとサインアウトオペレーションを共有する場合の本発明の別の実施形態を示す図である。
【符号の説明】
【００５４】
１０  システムアーキテクチャ
２０  クライアントコンピュータ
４０  ユーザインタフェース
４２  サインイン状態
４４  サインアウト状態
５０  ネットワーク
６０  認証サーバ
８０  セキュリティ保護されたネットワークサイトとサービス
２０４  ＣＰＵ
２０８  ＲＡＭ
２１０  ＲＯＭ
２１２  システムバス
２１４  ストレージデバイス
２１６  共有メモリ／共有クレデンシャル
２１７  オペレーティングシステム
２２０  ネットワークインタフェースユニット
２２２  入出力コントローラ
２２８  Ｗｅｂブラウザアプリケーション
２３０  共有サインイン／ログインアプリケーション
２３２  セキュリティ保護機能を備えたソフトウェアアプリケーション
２３４  ソフトウェアアプリケーションメモリ
２３６  他のアプリケーションプログラム
【図１】
2004185625.tif 000003
【図２】
2004185625.tif 000004
【図３】
2004185625.tif 000005
【図４】
2004185625.tif 000006
【図５Ａ】
2004185625.tif 000007
【図５Ｂ】
2004185625.tif 000008
【図５Ｃ】
2004185625.tif 000009