2017.06.17
OSの深層部分、知れば知るほど奥深い、macOSの仕組みを解き明かす。
アカウントが溢れる時代で
今から10数年前のインターネットの黎明期から普及期に遡ると、一般ユーザにとって「アカウント」といえば、インターネット接続プロバイダ(ISP)へのログインパスワードと、せいぜいメールや一部のWEBサービスくらいを指したものでした。しかし、コンピュータやスマートフォンが普及し、SNSを含め、さまざまなWEBサービスが存在している現在において、私たちは比べものにならないほど多種多様のアカウント情報を保持するようになっています。たとえば、フェイスブックやツイッターといったWEBサービスにログインする際に入力する「ユーザID」と「パスワード」などがそれです。
毎回それらを入力するのも、そもそもすべてのIDとパスワードを覚えておくのも大変ですから、macOSではパスワードを代わりに覚えて入力を省力化する「キーチェーン」という仕組みがありますよね。
クラウド時代のアカウント管理
一方、Mac以外のOSの世界はというと、同様の仕組みを持ったOSもありますが、ユーザが手作業でパスワードを管理することが未だ多く、たくさんのアカウント情報を覚える必要があります。面倒くさがって、もし複数のWEBサイトで同じパスワードを使い回したりすると、その中の1つのアカウント情報がクラック(不正利用)されると、連鎖的にほかのWEBサイトの情報も危険にさらされてしまいます。
また、WEBサイトの運営側からしてみても、ユーザから預かったパスワードなどの管理は簡単なものではありません。もしこれらの情報が漏洩でもしようものなら、社会的影響も大きく、企業経営にも影響するほどです。
そこで、ネットワークにおいて「ユーザを認証する」作業と「実際のサービスを提供する」作業を分ける仕組みが考えられました(図1)。認証する側はパスワードなどを安全に管理し、「このアクセスはユーザAさんだよ」と「お墨付き」を与えることに専念します。よって、実際のサービスを提供するWEBサイト側は、そのお墨付きを元にサービスを提供することに集中できます。万が一、サービスのWEBサイトがクラックされても、そこにパスワード情報はないので、被害はそこまでで済むというわけです。こうしたやりとりを「クレームベース認証」と呼びます。クレームベース認証を実現する仕様として、「OAuth」や「OpenID Connect」、「SAML」などが提案されました。
ツイッターやフェイスブック、ヤフーなどのアカウント情報を代用してほかのサービスにログインできるWEBサービスがありますが、それはクレームベース認証を使っているのです。これにより、いちいち個別のパスワードを利用しなくてもいい、パスワードをたくさん管理しなくていい便利な世の中になってきました。