OAuth 2.0 の仕組みと認証方法について説明します。OAuth 1.0 の認証フローとそれらの問題点から、OAuth 2.0 の認証フロー、認可コード、アクセストークン、リフレッシュトークンまで網羅します。
Spring BootでOAuthログインを実現するには、Spring Security OAuthを利用するわけですが、 あまりドキュメントがなかったので備忘録を兼ねてメモっておきます。 とはいえ、大体は以下のページに書いてあるとおりですが。 この記事では、まずOAuthでのログインを実現した後、AngularJSなどのアプリケーションから利用される想定のAPIを作成し、そのAPIにユーザー権限によるアクセス制限を掛けるまでの手順を記載します。 要するに、動的画面遷移を中心に組み立てられたSPAっぽいアプリケーションで、ログインと認可を実現する方法をメモっておきます。 Spring Bootアプリケーションの作成 Spring Bootアプリケーションの作成には幾つか選択肢がありますが、ここではある程度スクラッチで作ることにします。 実際は、Webページ上から雛形プロジェクトをサクッと作
前回の『Facebook に接続』で、Spring Social を使い Facebook との接続(Connection)を確立しました。今回は、確立した Connection をローカルユーザーアカウントと紐付けて DB で管理する部分を作ります。 ConnectionRepository と UsersConnectionRepository 前回のような直球型では、アプリケーションを起動する度に facebook との“OAuth2 ダンス”が必要になります。一度確立した Connection オブジェクトを永続化し、再利用する仕組みを用意すれば、そうした手間がなくなります。 Spring Social リファレンスの“2.3 Persisting connections”を読むと Connection 管理の中核は、永続化された各(ローカル)ユーザーの Connection オブ
はじめに ついに Windows 8 にした。 XP のサポートが終了したというのもあったのだけれども Java 8 がインストールできなかったのが致命的だった。 .Net Framework 4.5 や PHP 5.5 このあたりが使えなくなったのは耐えていたのだけれど この春、Java に見捨てられてもう我慢できなくなった。 Java 8 が使えたらきっと今も XP 使ってると思う。 で、OAuth わたしにとって OAuth といえば Facebook なのですが 以前、Facebook のアプリを作る機会があり OAuth の認証処理に結構悩まされた。 リクエストが行ったり来たり、どのタイミングでが何が送られて来るのか?また何を送るのか? と同時に向こう側の処理はどうなっているんだ!? 相手を知ればこちら側の処理がもっと明確に見えてくるのではと思ったりした。 そんな訳で今回は、Sp
3. OAuthとは • あるサービス(SP:Service Provider)が提供するAPIへのアクセ ス権を、他のサービス(Consumer)に与えるためのプロトコル • アクセス権限の付与のためのプロトコルであって、認証のた めのプロトコルではない • アイデンティティ関連の各種技術が依って立つプロトコル (OAuth 2.0) – OpenID Connect:認証、フェデレーション – SCIM:プロビジョニング – UMA:アクセス権制御 ※ SCIM: System for Cross-‐domain IdenGty Management ※ UMA: User Managed Access 4. OAuthとは • OAuth 2.0 は 2012年10月にRFCに – RFC 6749 -‐ The OAuth 2.0 AuthorizaGon Fr
いままで Mix-up Attack は Client が AS 毎に redirect_uri を使い分けていれば防げると信じられてきましたが、それじゃ防げないケースもあるよってのが OAuth ML に投稿されました。 細かい解説は英語読んでもらうとして、シーケンスにするとこういうことです。 Attacker AS が (Display Name やロゴ等を通じて) 一見 Honest Client に見えるような Client (Attacker Client) を Honest AS に登録しておく必要があります。 User が Attacker AS 選んでるのに Honest AS に飛んで Approve してしまってる部分も、Attacker Proxy が利用可能な状況 (e.g., Client が HTTP なエンドポイントで Honest AS のログインボタン等を
Deviseというgemのomniauthableを利用して、いろんなOAuth提供元サービスと連携orそのサービスを用いたログインを実現する方法。 こういうことやりたい人結構いるんじゃないかと思って、Wantedlyで実際にやってみた経験を大公開!! Gemのインストール deviseと各providerのomniauth関連Gemをインストール gem 'devise' gem 'omniauth' gem 'omniauth-facebook' gem 'omniauth-github' gem 'omniauth-google-oauth2' gem 'omniauth-hatena' gem 'omniauth-linkedin' gem 'omniauth-mixi' gem 'omniauth-twitter' とりあえず、omniauth-'provider'でググって出て
※1 「Google APIs Client Library for Java」と同様のライブラリとして「Google Data Java Client Library(gdata-java-client)」というものもありました。「Google Data Java Client Library(gdata-java-client)」は、2012年3月頃で開発が止まっているようで、「Google APIs Client Library for Java」の前世代のライブラリのようでした。 ※2 「Google APIs Client Library for Java」は、Androidアプリでも、Webアプリケーションでも使えます。たぶん、コンソールアプリケーションでも使えると思います。使う場合は、Androidアプリの場合、GoogleAccountCredentialクラス、Googl
Web系技術を学ぶ上で,やはりセキュリティ周りの技術は外せません。OAuth1.0ならばTwitter APIを触っていたんですが、、いつの間に2.0に!ということで、頑張って仕様書を読みつつ自分なりにまとめてみました。 The OAuth 2.0 Protocol draft-ietf-oauth-v2-10 を参考にしています。 また、以下で特に明示されない引用部分は全て The OAuth 2.0 Protocol draft-ietf-oauth-v2-10 から引用したものとします。 更に、以下の文章は2012/12/28時点でのAriの理解をまとめたものであり、内容を保証するのはこの時点でのAriの読解力のみです。 OAuth2.0の必要性 通常、ログインが必要なサービスを利用する際はログインID/パスワードの情報が必要になります。 特定のWebサービスに必要な時にアクセスする
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く