HDE BLOG

コードもサーバも、雲の上

メールの送受信にパスワードなんていらない

初めまして。クラウドプロダクト開発部の小玉です。先日スマホのインチアップを果たしたものの、片手で操作しようとして指がつりそうな日々を送っています。

1月のMTSではXOAUTH2の技術的なことを発表しましたが、今日はユーザーからみたXOAUTH2についてブログにしました。

XOAUTH2

今なおお気に入りのメーラーでGmailを利用している人が少なからず存在することを信じています。そういう方はすでに気づいていることでしょう。新しく取得したGmailアカウントにおいて、これまでの一般的なメーラーではもはやメールの送受信はできません。いや、完全にできないわけではなく、とある設定を変更しないと使えないようになっています。その設定名ときたらなんと、

「安全性の低いアプリのアクセス」です。

f:id:akabatake:20150204105445p:plain

メーラーを使うためにはこの設定を「オン」にしなければなりません。
なんとも精神衛生上よろしくない行為ですよね。

通常この設定は「オフ」になっていて、ユーザー名とパスワードで認証する従来のメーラーはアクセスできず、いわゆる”安全性の高い”アプリしかアクセスできません。

では安全性の高いアプリとはなんでしょうか?
その答えはXOAUTH2認証を用いたメールアプリです。

XOAUTH2認証ではIMAPやSMTPといったメール送受信用プロトコルでのユーザー認証時に、パスワードを使わずにOAuth2で取得したアクセストークンを使います。

そう、XOAUTH2を使えばメールの送受信にパスワードなんていらないんです!
セキュリティー的な視点でいうと、パスワードが流出するリスクを軽減できます。

アクセストークンを使った認証のプロトコル詳細を知りたい方はこちらを参照してください。

デモ

XOAUTH2はメールサービス、メールクライアントの双方で対応していないと利用できず、ユーザーが行う初期設定は通常のメール設定とは少し異なります。

こちらにデモ環境を用意したのでメールサービスを利用するまでのデモをしてみたいと思います。せっかくなので宣伝ついでに、HDE One Access Controlとシングルサインオンの設定をしたGoogle Apps環境を用意しました。シングルサインオン設定したGoogle Appsではメールクライアントの設定については悩ましい部分があります。XOAUTH2を使えばその悩みも解決です。

環境概要
  • メールサービス:Google Apps for Business
  • IdP(シングルサインオン設定):HDE One Access Control
  • メールクライアント:Outlook for iOS on iPad mini


まずはiPad miniにインストールしたOutlook for iOSを開いてアカウント追加画面に移動します。
f:id:akabatake:20150203143223j:plain
ここではGmailを選択します。
すると見慣れたログイン画面が表示されます。
f:id:akabatake:20150203143348j:plain
これはアプリに組み込まれたブラウザがGmailログイン画面のHTMLを表示しています。ここでメールアドレスを入力。シングルサインオンの設定がされているのでパスワードは入力せずにログインします。

すると今度はHDE One Access Controlのログイン画面が表示されます。この画面はHDE One Access Controlとシングルサインオン設定がされている場合のみ表示されます。
f:id:akabatake:20150203143611j:plain

ここでユーザー名とパスワードを入力します。
パスワードはいらないと言ったじゃないか!というつっこみの声が聞こえてきます。補足すると、このパスワードはアプリ内ブラウザに入力して直接HDE One Access Controlに送信しているのであって、アプリ内にパスワードを保存しているわけではないということを強調しておきます。

ログインに成功すると、OAuth2の認可画面が表示されます。
f:id:akabatake:20150203143836j:plain

ここで承認。
セットアップが完了するまではツアーをお楽しみください。
f:id:akabatake:20150203144037j:plain
簡単なツアーを終えると以下のようにメールサービスが使えるようになります。
f:id:akabatake:20150203144111j:plain


OAuth2を使っているので、Googleにログインして接続されたアプリとサービスをみると、しっかりとOutlookが登録されています。いつでもアクセス権を取り消すことができます。
f:id:akabatake:20150203160252p:plain

誰のためのXOAUTH2か

ユーザーのためのXOAUTH2

XOAUTH2を使えば利便性とセキュリティーが向上します。

利便性の向上

たとえばGmailのアカウントに2段階認証を設定している場合、XOAUTH2を使えばアプリのパスワードを別途取得する必要はありません。
シングルサインオンの構成になっている場合、上記デモの通りですが、ブラウザでログインするのと同じように利用できます。

セキュリティーの向上

こちら先日の記事ですが、
「Outlook for iOS」に企業セキュリティ上の問題か--開発者が指摘 - CNET Japan
まさに当ブログでデモで使用したOutlook for iOSのセキュリティーについて指摘されています。

これは「Exchange」アカウントを追加した時に起こります。

「Exchange」アカウントを追加する時はXOAUTH2を使いませんから、ユーザー名とパスワードをOutlook for iOSアプリに直接入力する必要があります。そしてこのアプリがバックエンドで動いているクラウドサービスにそのユーザー名とパスワードを同期しているというのが問題として指摘されています。

ユーザーはアプリにしかパスワードを保存していないと思っているので、実はクラウドにも保存されていると知ったらちょっとショックかもしれません。企業で使う場合はコンプライアンスに違反するかもしれません。そのクラウドサービスが障害をおこしたらパスワードが流出しアカウントを乗っ取られるかもしれません。

その点、XOAUTH2なら比較的安心です。アプリにはパスワードは保存されずアクセストークンがあるのみです。アクセストークンを使ってできることは限定されているし有効期限もあるので、たとえ流出してもアカウントを乗っ取られるような最悪の事態は免れます。

なお、Outlook for iOSでは、GmailとOutlook.comのアカウントを追加するときにXOAUTH2を使っているようです。

開発者のためのXOAUTH2

Google APIを使ったアプリを開発している人はすでにOAuth2を実装しているわけなので、アプリに追加でメール操作機能をつけたいというときには便利ですね。新たに認証情報を取得する必要はありませんので。

追記(20150205)

Outlook for iOSのセキュリティーについて追加情報です。*1
このアプリはパスワード以外にも、メール、カレンダー、ファイルなどのデータをバックエンドのクラウドに同期するそうです。ちなみにそのクラウドは現在AWS上に構築されていて、Azureに移行予定だとか。

企業のコンプライアンスに違反する場合はこのアプリのアクセスをブロックする必要がありそうです。モバイル デバイスの管理について: Exchange 2010 のヘルプを参考にしてデバイスファミリ"outlook-iOS-Android/1.0"をブロックしましょう。もちろん利用を始める前であればHDE Access Controllでもブロックできます。

*1:YammerのOffice 365 Networkに投稿された情報をもとにしています。