アカウント認証の基礎知識
■ITサービス利用時に必要となる「アカウント」と「認証」を理解しよう
待ちに待ったパソコンが届きました。これを使ってソフトをダウンロードしてすごいことをやって、Webを歩き回って、これも調べてあれも書き込んで、と希望は膨らみます。しかしです。今のパソコンは、それまでにやらなければならないことが山のようにあります。いろいろな設定をメニューに従ってやると、まず「アカウントを作ろう」と言ってきます。「私しか使わないのに」と言ってもだめです。向こうは言うこと聞いてくれません。油断していると、クラウドにもアカウント作れと言ってきます。メールアドレスを登録しろとか、パスワードを登録しろとか、とにかくうるさい。
「私は、ソフトをダウンロードして使いたいだけなのに!」
いらいらはわかりますが、がまんしましょう。すべてが終わって「さあ!」と思うと、出てくるのは認証画面なんです。さっき登録したパスワードを入れろと言ってきます。
「私は、ブラウザを開いてWebで調べ物をしたいだけなのに!(ぷっちーん)」
本稿では、「アカウント(ID)」と一般に呼ばれているものを、文教の面でいろいろな角度から眺めてみることで、ITサービスを利用するときにつきまとってくる、いくつかのことについて述べてみたいと思います。
■「認証」とは本人確認するために必要な一連の行為のこと
「認証」とは、わかりにくい言葉です。コンピュータの存在以前から法律用語として認証という言葉があります(意味は全然違う)し、コンピュータができてからも、法律用語を準用した感覚で、公的な何かがデータ、行為にお墨付きを与えることも「認証」と日本語で言います。……私が話したいことはそんなことじゃありません。
「認証」とは、我々がコンピュータに対して行う、ログイン時の一連の行為をシステム側から見たものと理解することができます。パスワードを入れたり、何かをUSBポートに差し込んだり、カードをかざしたり、手を目の前のガラス板に置いたり、というのは全部認証です。「ログイン資格確認」と言えばよいのに、「認証」なんて、「認」も「証」も、結構高度に抽象的な概念を表すので、頭にすーっとは入ってこないんです。
では、身もふたもなく「ログイン資格確認」と言えばよいのかと言うと、原語がAuthenticationなもので、変な造語を作るとかえって混乱したでしょう。実は、Authenticationそのものが、英語でも結構抽象度が高い言葉なので、ここに心理バリアが発生するのは日本語に限らないのかもしれません。
こんな言葉遊びはほどほどにしましょう。問題は「認証」のことを話すときに、実質的なところまで行くのに結構高い心理的なバリアを超えなければならないことです(この文章そのものがその証明になっています)。
さて、認証はそれなりの手間を要求します。パスワードは覚えておかなければなりませんし、USBに入った認証用のデータを使うときも、先方に登録しなければなりません。静脈情報だって同じことです。ここであなたは思います。
「自分が自分であることは自分が一番よく知っている!
なぜこんな面倒なことをやらせるのか(ぷっちーん)」
そもそも、認証なんて、必要でしょうか。自分の手元にはパソコンがあるというのに。
■「アカウント」とは本人確認のための情報のこと
ITサービスと言っても、いろいろあります。検索サービスを利用するときにアカウントは必要ありません(裏で何が行われているかはいろいろエグいんですが)。ショッピングサイトに行っても、買い物を確定させてクレジットカード情報(これも自分に関する情報を構成する要素です)を入力するまでは、アカウントは不要です。フリーWiFiの中には、たとえば、ホテル限定のもののようにメールアドレスの登録すら不要のものもあります。Webには、無料で利用可能な、または学校で契約していて特定のIPアドレスからアクセスすれば、アカウントが不要になるようなサービスがたくさんあります。一部の学習サイトや大学では、電子ジャーナルというのがあって、その種のものは学内からアクセスすれば、専用のアカウントは必要ありません。そこで、あなたは思います。
「アカウント、いらねんじゃね?(キレぎみ)」
しかし……本当にそうでしょうか。たとえば、丸付けされたテストを、担当の先生と生徒さんだけが見えるように設定しておけば、とても便利だとは思いませんか? 個人ごとに細やかな指導ができるかもしれません。世の中にはそんなことができるパッケージソフトがいくつかあります。自分でプログラムを書く必要は、もはやほとんどありません(ほとんど全部手作りだった時代を知っています。そのときの先生たちの苦労を考えると、今は良い時代になったものです)。そうすると、個人の成績やテストの結果を読んでよいかは、アクセスしているのが当人であることを確認することにかかってきます。
「アカウントあれば区別できるよね?(ピコーン)」
アカウントと、確認(認証)用のパスワードを生徒さんに配布してしまえば、あとはサービス側で認証をやってくれます。
でも、「アクセスしているのが当人であることを確認」するには? パスワードは、破られたり漏れたりしたらパスワード変更を繰り返して「このパスワードは本人しか知らない」状態を保っておかなければなりません。だって、
「誰かが私のアカウントを使って、私のテストの結果をのぞき見られるのはいやだ」
この感覚は至極当然のものです。プライバシーという言葉を用いるまでもなく、そもそも教育をする場では、成績は本人の重要な一部です。全力で守ってあげないといけません。生徒さんがITサービスを利用するときに、アカウントというITにおける「自分」の一部を確認するのが認証と言うプロセスです。
■認証の強度を上げると重要な情報も共有できるようになる
ここまででわかったようにアカウントと認証は実は別の概念です。管理は別々にできます。確認(認証)が正しくできているという確信の度合いが強ければ、アクセスしているアカウントにいろいろなサービスを提供することができます。つまり、認証がしっかりしていて初めて、丸付けされたテストをネットで確認できたり、(少しはずかしいかもしれない)生徒さんのテストの成績を生徒さんと先生だけがネットで閲覧できたりするわけです。
この確信の度合いを「認証の強度」と言います。パスワードが弱いとか、生体認証が強いとかという話は全部このためにあるわけです。ここをがんばると、いろいろ「ばれたらまずい(はずかしい)」レベルの情報までネットを通じてアクセスでき、利便性が格段に向上するわけです。今はやりの「多要素認証」や「2段階認証」は、少しだけ手間をかけて、認証の強度を格段に上げる手段として使われています。
逆に、共通アカウントでアクセスできたり、匿名でのアクセスを許すサービスに成績情報をあげたりすることはやめた方がいいですね。少し昔は、事故だったり、うっかりだったりで、その手のことがよくあったと記憶しています。認証の強度を適切に管理することは、アカウントの管理と並んでとても大切です。こうして、認証は、セキュリティの中で重要な分野として成長してきました。ここでわかると思いますが、セキュリティは利便性を上げることが実は目的の重要な部分を占めています。
「ここまでしっかり守ってあげるから、言っておいた範囲内では自由にしていいよ」
という感じでしょうか。「守れる自信がないから、ここから先は禁止ね」と対にして使ってください(往々にして後者だけが強調されるのはご存知のとおりです)。
■アカウント管理を容易にする「シングルサインオン」という仕組み
ここでは成績管理だけを話題にしましたが、ほかにもIT化できそうなサービスはいろいろあると思います。授業管理システムにも良いものがあるそうです。そのようなもの一つ一つがアカウント管理の対象になります。でも、それぞれにアカウントを与えていったらどうなるでしょうか? 考えてください。
生徒さんの情報のうち、利用に関係するアカウント情報は、システムを増やすたびに増えていきます。そんなところに限って、複数のアカウントでパスワードを使いまわす、ブラウザに覚えさせて対応するなどしているわけです。これはセキュリティ的に大きな問題になりつつあります。アカウントに関する情報を肥大させることは決して好ましいことではありません。そこで、
「1つのアカウントで、複数のシステムを使えるようにしよう」
というアイデアが生まれました。ログイン用のサーバを1つだけ用意して、すべてのサービスは、ログイン用サーバでログインが成功した人だけに提供するというものです。このために発行されるアカウントが統合IDと呼ばれるもので、これを利用する仕組みを統合認証と言います。統合認証といってもいろいろあって、一番簡単なのは、サービスに共通のログイン用のサーバ(ADとか、LDAPとか、聞いたことがある方もいると思います)をサービスで共用することです。
もう少し進歩すると、一度ログインしたら、その情報をログイン用サーバが持っていて、他のサービスを使うときも、
「すでに別のところでログイン成功したから、今回はそれを使いまわして認証省略!」
と教えてくれることもできるようになりました。使ってみると実感できますが、これはとても便利です。だって、ログイン1回でいろいろなサービスが使えるんですもの。AD FSとか、OpenID Connectとか、聞いたことがある方もいると思います。そうすると、1回どこかでログインしておけば、あとはログインを要求されなくなります。
これをシングルサインオンと言います。サインオンはログインの今風の言い方です。いろいろなサービスやITを使って提供している、たとえば大学のようなところでは、このような形態はめずらしくなくなりました。
■統合認証を採用することでIT管理者の負担も軽減される
統合認証のようなログインに関する技術の開発配備は、サービス提供の感覚を大きく変えています。サービス提供側は、利用者のワークスペースをきちんと整えることだけ考えればよくなりました。アカウントを発行して、パスワードを設定して……という仕事を外に出せるということは大きな負担軽減になります(逆に言うと、アカウントの管理の手間は依然として大きいということなのですが)。そうすると、サービス同士が連携してより高度なサービスを作るということも考えられるようになると思います。
たとえば、丸付けされたテストを登録しておくと、生徒さんはそれを見ることができるし、先生の方は、成績管理システムと連携して、点数を自動的に登録するといった感じでしょうか。生徒さんと先生のアイデンティティと、その一部であるアカウントの管理がきちんとされていれば、生徒さんと先生に別のサービスを、同じサーバで提供することができるようになります。こうなると、アイデアが次々と湧いてくるような気がしませんか? ここらへんはサービス統合とかマッシュアップとかというキーワードでいろいろなことが試みられています。
さて、IT環境が進化したのは学校や職場だけではありません。現在ではインターネットへの接続が便利にできるようになり、Webは使いやすくなり、GoogleやLINEが、メールやSNSを提供してくれるようになっています。ここでも、認証は普通に行われています。この情報をサービスの認証に利用できれば、というのは自然な発想だと思います。ただ、こちらの方は、SNSという社会生活と、学校生活の間にどのような折り合いをつけるかでまだいろいろ議論すべきことが残っています。これについては後日機会があればお話しすることにしましょう。
ここまで、認証とアカウント管理に関する基本的な概念について説明してきました。アカウント管理は重要な仕事です。認証は、アクセスが「自分だと名乗っている人間のもの」なのかを確認するためにも欠かせません。今ではサービス全体に対してアカウントを1つにする、サービス利用を1つの認証で間に合わせる、統合IDを使ってサービス統合をはかるなどの展開が可能であることも説明しました。このコラムを読んでくださった方が、機関内部のITサービスをデザイン、実装するとなったときに、何らかのヒントになれば幸いです。
執筆者: 佐藤 周行 – 東京大学准教授
1962年生まれ。1985年東京大学理学部卒業。1990年同大学院理学系研究科修了。理学博士。現在、東京大学准教授(情報基盤センター)。専門は計算機科学、情報セキュリティ