OAuth(オーオース)

OAuth(オーオース)とは、パスワードを渡すことなく、別のサービスに自分のデータへの限られた権限を与えるための取り決めのことです。「他のサービスと連携する」ときの裏側で、広く使われています。

現実世界に例えると、OAuthはホテルで渡される、決まった部屋だけ開くカードキーのようなものです。マスターキーを預ける必要はありません。使える場所も期間も限られており、いつでも無効にできます。

OAuth図解

OAuth図解

パスワードを渡す場合との違い

項目 パスワードを渡す OAuth
渡すもの パスワードそのもの 期限付きの通行証
できる範囲 本人と同じすべて 許可した範囲だけ
取り消し パスワード変更が要る 設定画面から解除できる
期限 なし あり

どんな場面で使われるか

身近な例で言うと分かりやすくなります。「Googleアカウントで続ける」を押したとき、写真編集アプリにクラウドの写真を読ませたいとき、予定表を別のサービスへ同期させたいとき。いずれもこの仕組みが動いています。

登場するのは三者

やり取りには三つの立場があります。データの持ち主である利用者、データを預かっているサービス、そして使わせてほしいと頼む側のアプリです。利用者が許可を出すことで、アプリに通行証が渡される、という流れになります。

許可の範囲を選べる

ここが要になる考え方です。「写真を読むことだけ」「予定を追加することだけ」といった具合に、渡す権限を絞れます。許可を求める画面に何ができるかが並ぶのは、このためです。読むだけでよいはずのアプリが書き換えまで求めていたら、疑ってよい合図です。

認証ではなく認可の仕組み

よくある誤解を正しておきます。OAuthは「何をしてよいか」を決める認可の仕組みであって、「誰であるか」を確かめる認証の仕組みではありません。ログインに使うために、この上へOpenID Connectという別の取り決めを重ねる形が取られます。

あとから取り消せる

見落とされがちですが、大切な利点です。各サービスの設定画面には、連携中のアプリを一覧で確認し、解除できる項目があります。使わなくなったアプリの許可が残っていないか、ときどき眺めてみてください。

偽の許可画面に注意

安全面での注意点です。本物そっくりの許可画面を用意し、権限を渡させようとする手口があります。画面の住所欄が本当にそのサービスのものか、求められている権限が用途に見合っているか。この二つを確かめる習慣が守りになります。

現在の版

版の話も押さえておきましょう。いま使われているのはOAuth 2.0で、旧来の1.0とは互換性がありません。2.0は仕組みが柔軟な反面、実装の仕方によって安全性に差が出るため、決められた手順に沿って作ることが求められます。

あわせて知っておきたい用語

  • 認可
    何をしてよいかを決めることです。
  • 認証
    利用者が本人であることを確かめることです。
  • シングルサインオン
    一度の認証で複数のサービスを使える仕組みです。
  • APIキー
    外部からAPIを使うときに示す鍵となる文字列です。

コメント

タイトルとURLをコピーしました