2022/02/17

OAuthとは?Salesforceでの接続可能な範囲についても紹介!

 
  

OAuthとは?

OAuthとは、さまざまなWebサービスやアプリケーションなどを、安全に連動させるための仕組みのことをいいます。 複数のWebサービスやアプリケーションを連動させて利用しようとすると、普通であれば、それぞれに個別のユーザーIDとパスワードなどを入力してユーザー認証を行わなければなりません。 しかし、それでは何度もユーザー認証を行わなければならないことになり、大きな手間となってしまいます。 OAuthを利用することで、IDやパスワードなどを何度も入力することなく、Webサービスやアプリケーション間の連動ができるようになるのです。 Salesforceでは、「Pardot」や「Chatter」など様々なアプリケーションがありますが、OAuthを利用することで、これらのSalesforce関連のアプリケーションに何度もユーザー認証を行うことなく、スムーズに連携させて利用することが可能になります。

OAuthの仕組み

OAuthは、様々なWebサービスやアプリケーションを利用する際の、面倒なユーザー認証を簡略化してくれる仕組みですが、どのような方法でこれを行っているのでしょうか。少々複雑ですが、順に説明していきます。 通常、何かのWebサービスやアプリケーション間の連動、SalesforceであればChatterとPardotなどを連動させる際、安全性を維持するため、両方のアプリでユーザー認証が必要となります。 OAuthでは、ユーザー認証を必要としませんが、このユーザー認証の代わりに「アクセストークン」を使用して、悪質な利用を防ごうとします。 アクセストークンとは、認可証のようなもので、これを持ったアプリ同士であれば、ユーザー認証をすることなく、連動させることができるのです。 クライアントアプリからアクセストークンを、認可サーバーへ要求し、要求してきたクライアントアプリに権限を与えるかユーザーに確認します。 これに対し、ユーザーが承認すれば、クライアントアプリへアクセストークンが渡され、別のアプリケーションなどと連動できるようになります。

OAuthのリスク

OAuthは、一度アクセストークンが提供されてしまえば、それを削除されるまでユーザーが操作することなく連携が認証されてしまいます。これを一般的なアプリである、「Twitter」と「偽の画像共有サービス」で考えてみましょう。 まずは、普通の画像共有サービスとして、Twitterの利用者にサービスに登録させ、画像共有サービスと連携するためにアクセストークンを要求します。 ユーザーは、画像共有サービスとTwitterが連携することで、画像共有サービスへ画像をアップするだけでTwitterへの投稿もできることになる利便性を受けるため、アクセストークンを承認します。 すると、そこからはアクセストークンを受け取っているため、勝手にメッセージを送信したり、ウィルスをダウンロードするページへのリンクをつぶやいたりできるようになります。 こういった事態を防ぐためにも、簡単にOAuthを許可してはいけないのです。サービスの内容を理解し、何の許可を求められているのか理解できない場合は、リスクを考えて拒否しなければなりません。

SalesforceでのOAuthの範囲

これから説明するOAuth範囲を接続アプリケーションに割り当てることで、クライアントがアクセスできる保護されたリソースの種別を定義できるようになります。

Pardot(pardot_api)

ユーザーの代理となり、Pardot APIサービスへのアクセスを許可し、サービスを管理します。

Chatter フィードへのアクセスと管理 (chatter_api)

ユーザーの代理となり、Connect REST APIリソースへのアクセスを許可します。

フルアクセス(full)

ログインユーザーがアクセスできるすべてのデータへのアクセスを許可します。 これは、その他全ての範囲が対象となるため注意が必要です。

SalesforceでのOAuth認証フロー

ここでは、クライアントアプリケーションにリソースサーバーの保護されたリソースへの制限付きアクセス権を付与する方法を解説します。

OAuth認証フロー

Salesforceモバイルアプリケーションを開き、ユーザー名とパスワードを入力する認証プロンプトを表示させます。すると、Salesforceモバイルアプリケーションがログイン情報をSalesforceに送信し、OAuth認証フローを始めます。 Salesforceは、ユーザーとモバイルアプリケーションの検証成功を確認するために、アクセストークンと更新トークンをモバイルアプリケーションへ送信します。 その後、モバイルアプリケーションにアクセス権を付与する要求を承認し、モバイルアプリケーションを起動することで終了します。 これらの操作からも分かるように、クライアントアプリケーションに対し、ユーザー名とパスワードを指定して、代わりにリソースサーバーにアクセスさせる方法よりも、OAuth認証の方がリスクは少なく、利便性も高いのです。

OAuthでアプリケーションを連携させて効率化を!

今回はOAuthについて紹介しました。ユーザー認証を何度もすることなくWebサービスやアプリケーションを連携させることができる、非常に利便性の高いものです。 しかし、その分リスクも存在するため、これをしっかりと理解した上で利用するようにしましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】