CodeLab技術ブログ

プログラミング技術まとめ

SNSの外部認証はもう使わないほうがいいかも?

いろいろなWebサービスで、Twitterでログイン、とかFacebookでログインみたいなものを見かけると思います。
OauthとかOpenIDという仕組みを使って、外部のSNSサービスで自分のWebなどのログインさせる仕組みです。

SNSのアカウントを持っていればユーザー登録が不要になるので、新規ユーザーの獲得が非常に簡単になり、多くのサービスで使われています。

ですが、将来的にかなりまずそうな状況になる可能性があります。

気軽に使えなくなったAPI

Facebookの個人情報漏洩事件などの影響で、各社のAPIの利用に関する締め付けが厳しくなりました。
その結果、FacebookやTwitterの利用制限や仕様変更が続いています。
特に、開発者申請やアプリ申請などが非常に厳しくなりました。
ちょっと試したいという場合でも利用内容などを細かく申請しなければなりません。

Twitter
https://blog.twitter.com/developer/ja_jp/topics/tools/2018/jp-new-developer-requirements-to-protect-our-platform.html

例えば、300文字以上で書かなければいけないようですが、ただログインさせたいだけなのにそんなに書くことはないですよね…。
しかも、”すでに使っている”ものも新たに申請が必要になっています。(しかも英語で)
また、1アカウントで登録できるアプリが10個までに制限される予定です。10個以上登録していると、アカウント凍結など厳しい対応がされる可能性があります。
開発者の立場からすると、お客様に開発者アカウントを取得して操作させるというのは非常に困難だと思います。ですので、代理でAPIキーを取得して使っているというパターンも多いはず。
ですが、今後いきなり使えなくなったりアカウントが凍結されてしまう可能性があります。

事実、有名サービスのいくつかがそれで停止しました

ogetter公式の凍結が解除されたっぽいので改めて今回の騒動の経緯とTogetterがまだ抱えてる問題点をまとめてみた

警告なし凍結はかなり理不尽な対応といわざるを得ません。

突然変わる仕様や規約

Instagramの例ですが、2018年4月4日に規約がいきなり変わって、廃止予定のAPIが即日廃止になってしまったことがあります。
さすがに、公表当日にいきなり仕様変更するのはめちゃくちゃです。
猶予期間があっても3か月とかかなり短い期間で廃止されてしまう場合が多いようです。
変更予定に気が付いてから、クライアントにお伺いをかけたりしているとそのぐらいすぐですね。

海外企業と英語でやり取りは難しい

日本法人も一応ありますが、開発関連のサービスはすべて海外で行っているようで、申請は英語で対応する必要があります。
大企業であれば何とかなると思いますが、個人ベースではかなり厳しいと思います。
特に、何らかの理由で凍結されてしまった場合。復帰は非常に困難です。

また、日本人向けサービスの場合、当然全部日本語で書かれているわけですが、申請担当者は日本語なんて読めません。
何に使っているのかよくわからないので凍結・・・みたいないい加減な対応もありそうです。

アカウント連携を使っているサービスは即時対応すべき

Twitterの場合、今後1アカウントで取得できるAPIキーが10個に制限される予定です。(2018年8月)
Webサービスをいくつも展開している企業なら、ログイン認証に10個以上APIキーを取得しているという場合も結構あるかと思います。
いきなり自社のサービスにログインできなくなったら、死活問題です。
クライアントのサービスを管理している場合は、損害賠償請求される可能性だってあります。
特に、アカウント連携でしかログインできないようなサービスは、他の手段でのログイン方法が可能になるパスを早急に設定すべきだと思います。

また、クライアントのAPIキーを代理で取得して運用している開発・運営会社は、クライアントにAPIキーを取得させてください。今すぐに!
クライアントが何かやらかしてアカウントが凍結されると、他の関係ないクライアントのアプリまで凍結させられてしまう可能性があり、非常に危険です。

SNSを使ったアプリの開発はもうやめたほうがいいかも

現状、FacebookやTwitterは明らかにサードパーティー製アプリの開発を歓迎していません。

正直、SNSのAPIを使ったアプリ開発は、やめたほうがよさそう。リスクが多すぎます。
また、一つのAPIキーに対してのアクセス制限も厳しくなりす。今まで、連携した1アカウントに対しての制限でしたが、APIキーに対しての制限に変更されるため、多くの人にアカウント連携して使ってもらうというような使い方は実質できなくなりました。(一応、申請すれば規制は緩和されるらしいですが…)

例えば、Twitterの場合、2018年9月以降に、下記のように制限されます。
ツイートおよびリツイート(合算値):3時間で300件
1アカウントに対してであればこれでいいと思いますが、これは1アプリあたりの件数です。つまりユーザーが300人いたら3時間に1ツィートしかできないというのは、もうサービスとしては成り立たないでしょう。

こんなに理不尽に一方的に仕様変更を行って、よく訴訟にならないなぁと思います。ニュースになってないだけかもしれませんが。
まぁ、プレミアムサービスみたいなのがあるようなので、訴訟を起こせるような大企業はそういったものを使えということなのだと思います。
ただ、結構高額なので、正直それで採算に合うサービスでないと無理でしょうね。

金額的にはTwitterの例だと
Search Tweets: 30-Days
https://developer.twitter.com/en/pricing/search-30day

500アカウントで$150/月ぐらい。たとえば広告収入だけで無料でサービスを展開するのは採算的に難しいような気がします。

SNSログイン認証も、正直、できるだけ使うべきではないと思います。
前々から思っていたのですが、外部認証って使う側からしたらちょっと怖いんですよ。
たとえば、詐欺アプリがあって、外部認証の連携画面を似せて作ってIDやパスワードを入れさせたりすると、一般の人は入れちゃうと思うんですよね。
そうすると、容易にSNSのアカウントを奪うことができてしまいます。
知っている人なら、URLがおかしいとか、すでにログイン済みなのになんでパスワード入れなきゃならないんだろうとか、そういう疑問が出てくると思いますが、世の中の99%の人はそんなのわからずに使っていますからね。

SNSのサービスは、問題が多すぎます。
これからそういったSNSを使ったサービスやアプリを作成したり、起業したりしようとしている人は、考え直した方が良いかと思います。

コメントは受け付けていません。