Carpe Diem

備忘録

OAuth

OAuth 2.0 Device Authorization Grant

概要 サービスのマルチデバイス対応をした際に、各デバイスで同じアカウントにログインするのはユーザにとっては非常に手間です。 例えばテレビデバイスに対応した場合にID&パスワードをリモコンで入力させるのはユーザにとって苦痛でしかありません。 なの…

GoでFacebook OAuthログインをセキュアに実装する

概要 Facebookを用いたOAuthログインの実装方法はネット上に多々ありますが、セキュリティに関してあまり考慮されてないものが多いです。 今回はセキュアに実装する例を示します。 環境 golang 1.10 facebook graph api v2.12 成果物 今回のソースコードはこ…

GoでTwitterのOAuth1.0を用いた認証

概要 GoでTwitterのOAuthを用いた認証をします。 oauth1.0のライブラリはいくつかありますが、今回はgaryburd/go-oauthを利用します。 github.com 環境 golang v1.6.2

Node.jsでFacebookのOAuth2.0を用いた認証

概要 FacebookのOAuth2.0を利用した認証を使うことがあったのでまとめました。 Node.jsなのでpassportというライブラリを使用します。 環境 Node.js 5.0.0 Express 4.13.1 npm 3.4.0 事前準備 以下のFacebookページでOAuth用のアプリを用意してください。 Fa…

OpenID Connect の署名検証

概要 OpenID Connectで必須なJWTの検証方法です。 以前書いた「Node.jsでOpenID Connect認証」を前提としています。 検証方法は主に2つあります。 Googleの検証用エンドポイントを使う 公開鍵を使い自分で検証する 公開鍵の方はさらに2つやり方があるので…

OpenIDやOAuthやらの比較

概要 色んな種類がありますが、各手法の流れ、メリット・デメリットを整理するためにまとめました。 今回比較するのは以下の4つです。 OpenID OAuth2.0を用いた認証(Authorization Flow) OAuth2.0を用いた認証(Implicit Flow) OpenIDConnect シーケンス…

OpenAMでRP(Relying Parties)の設定

概要 前回の続きです。 今回はクライアントの方の設定をします。GoogleやFacebook等でOAuthを用いた認証の設定をしたことがある人はすぐできます。 OAuthクライアントの作成 アクセス制御→/ (最上位のレルム)→エージェント→OAuth2.0 クライアント と進んで以…

OpenAMでIdP(Identity Provider)の構築

概要 前回の続きです。 環境 Ubuntu 14.04 OpenAM 13.0.0 OAuthプロバイダの作成 http://openam.example.com:8080/openamにアクセス

Node.jsでOpenID Connect認証

概要 前回はOpenIDで認証を行いました。 ですが実はGoogleのOpenIDでの認証は2015/04までに廃止の予定らしいのでOpenIDConnectへの移行を勧めてるらしいです。 なので今回はOpenIDConnectでの認証を実装します。 環境 Node.js 0.10.22 Express 4.0 passport …