タグ

OAuthに関するtakaesuのブックマーク (20)

  • OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife

    こんばんは。ritouです。 Digital Identity技術勉強会 #iddance Advent Calendar 2020 1日めの記事です。 qiita.com 初日なのでゆるふわな話をしましょう。 何の話か もうだいぶ前ですね。9月のお話です。こんなTweetを見かけました。 社内Slackにいる「OAuth認証」と書くと訂正してくれるbotが丁寧な解説をするようになっていた 認証(Authentication)と認可(Authorization)は間違えやすいわりにミスると甚大な被害をもたらしがちなので、常日頃から意識を高めていきたいですね pic.twitter.com/oVQxBgZcHS— greenspa (@greenspa) 2020年9月28日 このbotに対する思うところはもう良いです。 今回は、「OAuthの仕様に沿ってID連携を実装するいわゆる"OAut

    OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife
  • OAuth 2.0 クライアント認証 - Qiita

    はじめに この記事では、OAuth 2.0 の『クライアント認証』について説明します。 RFC 6749 に記述されているクライアント認証方式のほか、クライアントアサーションやクライアント証明書を用いるクライアント認証方式についても説明します。 1. クライアント認証方式 1.1. トークンエンドポイント 認可サーバーがあります。 認可サーバーからアクセストークンの発行を受けたいクライアントアプリケーションがあります。 アクセストークンは、幾つかの例外を除き、認可サーバーのトークンエンドポイントから発行されます。そのため、認可サーバーはトークンエンドポイントを用意します。 クライアントアプリケーションは、アクセストークンの発行を受けるために、トークンエンドポイントにトークンリクエストを投げます。 認可サーバーは、トークンレスポンスを返します。この応答の中に、アクセストークンが含まれます。

    OAuth 2.0 クライアント認証 - Qiita
  • OAuth 2.0 の Client Type についての考え方

    ritou です。 OAuth 2.0 のクライアントの種類、いわゆる Client Type についての基的なお話です。 よくある認識 仕様だと Public : ClientSecret を安全に管理できず、他の方法でもセキュアなクライアント認証ができないクライアント Confidential : ClientSecret を安全に管理できる、または他の方法でセキュアなクライアント認証ができるクライアント と書いてあり、実際の分類となると Webアプリ : Confidential モバイルアプリ、SPA、デスクトップアプリ : Public となります。 Webサーバーの内部など、ある程度アクセス制限のされた状態で管理されているが、SPAのソースコードやモバイルアプリのバイナリの解析とかによって取得しうるみたいなのは直感的かと思いますが、これだけだといろいろ迷う人がいるらしい、とい

    OAuth 2.0 の Client Type についての考え方
    takaesu
    takaesu 2023/01/05
    セキュリティレベルまでも含めてわかりやすい(プロキシツールで読めてしまうとか)
  • OAuthでomniauth-facebookが何をやっているかを見てみた - Qiita

    背景 omniauthを使ってFacebookとのOAuthをやってみた、といった記事はネット上にたくさん転がってる。 けど、どうやって実現しているかについて、詳細を解説しているサイトを見かけたことがなかったのでまとめておく。 対象バージョン omniauth (1.2.1) omniauth-oauth2 (1.1.2) omniauth-facebook (1.6.0) アプリとFacebookとの間に立ってFacebookとのOAuthをしてくれるgem。 中核となるOmniAuth::Strategies::Facebookクラスはrack middlewareになっていて、特定のパスへのアクセスを起点にOAuthのリクエスト開始・Callback処理を行う仕組みになっている。 継承関係 OmniAuth::Strategies::Facebookの継承関係は以下の通り。 OAut

    OAuthでomniauth-facebookが何をやっているかを見てみた - Qiita
  • AWS Dev Day Tokyo 2018 で「マイクロサービス時代の認証と認可」の話をしてきた #AWSDevDay | DevelopersIO

    緊張すると声がヤムチャになる都元です。このセッションの自己紹介でアムロ・レイとか言って盛大にスベったので切り替えていきます! さて、1週間の時間が経ってしまいましたが、去る 11/2 (金) に目黒セントラルスクエアにおいて「マイクロサービス時代の認証と認可」と題しましてお話をさせていただきました。 スライド 認証と認可の基礎知識 繰り返しになりますので、過去エントリーよくわかる認証と認可 | DevelopersIO を参照してください。 また、Web API のアクセス制御としては、だいたい次の4つくらいが頭に浮かぶと思います。 Basic 認証 Digest 認証 リクエスト署名 OAuth 2.0 この辺りは Spring Day 2016 - Web API アクセス制御の最適解でお話したことがありますので、こちらも併せてご覧ください。 Coffee break: 都元、日頃のお

    AWS Dev Day Tokyo 2018 で「マイクロサービス時代の認証と認可」の話をしてきた #AWSDevDay | DevelopersIO
  • アクセストークンのリフレッシュ

    アクセストークンのリフレッシュ Kii Cloud では、OAuth 2.0 の リフレッシュトークン をサポートしています。リフレッシュトークンを使うと、ユーザビリティを損なうことなくアクセストークンの有効期限を短く設定できます。 Kii Cloud へのリクエストでは、アクセストークンが毎回ネットワーク上に送出されているため、漏洩とそれによる不正操作のリスクが伴います。この対策のため有効期限を短く設定したい一方、頻繁なユーザー名とパスワードの再入力はユーザビリティを損なうため避けたいところです。リフレッシュトークンを使うと、内部的にアクセストークンを再発行できるため、この問題を解決できます。 以下にリフレッシュトークンを使用した場合の動きを示します。リフレッシュトークンがネットワーク上を流れる回数は、アクセストークンに比べて少なくてすむため、漏洩の観点からは相対的に安全性が高まります。

  • 一番分かりやすい OAuth の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OAuth(オーオース)の説明を繰り返してきました※1,※2。その結果、OAuth をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。Authlete アカウント登録はこちら! ※2:そして2回目の資金調達!→『AUTHLETE 凸版・NTTドコモベンチャーズ・MTIからプレシリーズA資金調達』(2018 年 2 月 15 日発表) 説明手順 (1)ユーザーのデータがあります。 (2)ユーザーのデータを管理するサーバーがあります。これを『リソースサーバ

    一番分かりやすい OAuth の説明 - Qiita
  • OAuth 1.0 のほうが OAuth 2.0 より安全なの? - Qiita

    1. OAuth 2.0 and the Road to Hell OAuth 1.0 と OAuth 2.0 の違いを調べていると、そのうちに「OAuth 2.0 and the Road to Hell」(by Eran Hammer氏) という文書にたどり着きます。この文書は、OAuth 仕様策定作業で精力的に頑張っていた方が OAuth 2.0 を批判して怒りの脱退宣言をするという衝撃的な文書です。 「OAuth 2.0 は OAuth 1.0 よりも安全ではない」というのが彼の一番の主張です。そのため、OAuth サーバーの実装を検討している人がこの文書を読むと、OAuth 2.0 の採用をためらい、OAuth 1.0 の方を選択してしまうことがあります。 実際、Open Bank Project というプロジェクトの実装である OBP-API では、Wiki で次のように述べて

    OAuth 1.0 のほうが OAuth 2.0 より安全なの? - Qiita
  • OAuth & OpenID Connect 関連仕様まとめ - Qiita

    はじめに OAuth や OpenID Connect に関連する仕様を紹介していこうと思います。 仕様はたくさんあるものの、ほとんどオプショナルです。しかし、「認可サーバーを実装する際は、RFC 6749 だけではなく、認可コード横取り攻撃への対抗策である RFC 7636 も実装すべきである」* という点は強調しておきたいと思います。 * 「PKCE: 認可コード横取り攻撃対策のために OAuth サーバーとクライアントが実装すべきこと」という記事もご参照ください。 1. OAuth 2.0 (RFC 6749) OAuth 2.0 の仕様の体は RFC 6749 (The OAuth 2.0 Authorization Framework) です。RFC 6749 の解説記事は世の中にたくさんあるので、ここでは要点だけ手短に紹介します。 RFC 6749 は、アクセストークンを発行

    OAuth & OpenID Connect 関連仕様まとめ - Qiita
  • ついでに認証周りを理解してGoogle AppsのSAMLでAWSへログインを設定してみる - Qiita

    はじめに背景的なこと 結構前からですが、クラウドサービスを多く使ってシステムを作る機会が多くなりました。 当然一つのクラウドサービスだけではないので複数使ったりします メールや資料の共有とかも、もはやGoogle Apps For Workで完結します そういった流れの中でID,PW管理が非常に煩雑になり、且つ結構重要なセキュリティ項目になってたりします (AWSのID,PWとか外に出たらヤバイですよね) このクラウドサービスを当たり前に使うようになったこのご時世に、セキュアに効率的にアカウント管理をしようってなって色々調べたメモ的なまとめ。 こう言ったのを統合認証とかっていうのかな。 ちょっと間違った理解になってる可能性ありですが、、、まとめていきます まずはよく出てくる用語を整理する 統合認証とは 社内のシステムや複数のクラウドサービスを利用する際に各システムにそれぞれ認証を行うのでは

    ついでに認証周りを理解してGoogle AppsのSAMLでAWSへログインを設定してみる - Qiita
  • アクセストークンに有効期限を設けるべきかどうか - Qiita

    OAuthプロバイダを提供することになったとして、アクセストークンに有効期限を設けるべきかどうかについて考えたい。OAuth 2.0の仕様にはアクセストークンの期限切れに関係する仕様が定義されているし、セキュリティをより強固にするためにアクセストークンは一定期間で期限切れにするべきだという主張があったと思う (確認していないので無いかもしれない)。しかしながら、例えばGitHub API v3ではアクセストークンに有効期限を設けていない。この投稿では、アクセストークンの有効期限に関係して起こり得る問題を取り上げる。 アクセストークンに有効期限を持たせておくとちょっと安全 アクセストークンが悪意のある第三者に漏洩してしまった場合、そのアクセストークンに認可されているあらゆる操作が実行可能になってしまうという問題がまず存在する。ここでもしアクセストークンに有効期限が存在していたとすれば、その操

    アクセストークンに有効期限を設けるべきかどうか - Qiita
  • 認証を含む API 開発で検討すべきこと - ボクココ

    ども、@kimihomです。 API に関する基礎的な話で、なぜ API が重要なのか、APIの実装で注意する点について記述した。 今回はAPI開発において最も頭を悩ます、認証の問題について考えてみたい。 API における認証 よくあるログインが必要なページを考えてみていただきたい。 通常のWebアプリケーションであれば、Cookieという仕組みを使って毎回Webサーバーにアクセスするときにsession idというものを送信し、それとユーザー情報を紐付けたデータを取ってくることで、どんなユーザーからリクエストが来たのかをWebアプリケーション側で判断することができる。これにより、私たちはいつも閲覧しているWebアプリケーションが自分専用の画面として見れるようになっている。 これがAPIになると話は違ってくる。Cookieという仕組みが使えないのである。ということで、なんとかしてAPIにア

    認証を含む API 開発で検討すべきこと - ボクココ
  • Google API Client (Ruby) で Refresh Token を使って Access Token を発行するサンプルコード - @kyanny's blog

    google-api-client-example/refresh_token.rb Signet::OAuth2::Client#new の引数に refresh_token を渡して、そのインスタンスを Google::APIClient#authorization= に入れて、 Signet::OAuth2::Client#refresh! (または fetch_access_token!)を呼ぶと新しいアクセストークンが取得できる。 client = Google::APIClient.new client.authorization = Signet::OAuth2::Client.new( ...snip... refresh_token: refresh_token ) client.authorization.refresh! アクセストークンそのものが文字列で欲しい場合は

    Google API Client (Ruby) で Refresh Token を使って Access Token を発行するサンプルコード - @kyanny's blog
  • Google API OAuth2.0のアクセストークン&リフレッシュトークン取得手順メモ - Qiita

    はじめに Googleドライブ上のスプレッドシートを読み書きするアプリ作成のため Google APIの手続きを行ったのですが、その手続きがとっても面倒でした。 なので、メモしておいた手順を私的な備忘録としてこちらに公開してみます。 今回リフレッシュトークンがどうしても必要だったのですが、 仕様変更で以前よりリフレッシュトークンの取得が若干面倒になったようです。 以下は、リフレッシュトークン取得を目指したやり方になります。 1、取得に使うGoogleアカウント作成、ログイン 2、Google Developers Consoleにアクセス https://console.developers.google.com (設定でサイトを日語に変更可能だが、翻訳がややこしいので英語版推奨) 3、API ProjectをCreate、左メニューのAPIs&auth -> APIsから使いたいAPI

    Google API OAuth2.0のアクセストークン&リフレッシュトークン取得手順メモ - Qiita
  • OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜

    [参考情報] 【永久保存版】OAuth 2.0 / OpenID Connect シーケンスまとめ URL:https://qiita.com/kura_lab/items/812a62b5aa3427bdb49d タイトル: 『OpenID Connect 入門 〜コンシューマー領域におけるID連携のトレンド〜』 概要: コンシューマー領域におけるID連携のトレンドであるOpenID Connectの概要と仕様のポイントについてご紹介します。 OpenID TechNight Vol.13 - ID連携入門 Aug. 26, 2015 URL:https://openid.doorkeeper.jp/events/29487Read less

    OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
    takaesu
    takaesu 2016/04/04
    open id connect
  • OAuthプロトコルの中身をざっくり解説してみるよ - ( ꒪⌓꒪) ゆるよろ日記

    「おーおーっすっ!」 てなこって、TwitterAPIのBASIC認証も6月末に終了してOAuth/xAuthに移行するというこの時期に、あらためてOAuthについて勉強してみたんですのよ? OAuth認証を利用するライブラリは各言語で出そろってきてるのでそれを使えばいんじゃまいか? というと話が終わるので、じゃあそのライブラリの中身はなにやってんのよってことを、OAuthするScalaのライブラリ作りながら調べたことをまとめてみました。 間違っているところもあると思うのでツッコミ歓迎です>< OAuthってそもそもなんなの? ものすごくざっくりというと「API利用側が、ユーザ認証をAPI提供サービス側にやってもらうための仕様」って感じでしょうか? BASIC認証の場合、API利用側が認証に必要なアカウントやパスワードを預かる必要があるわけです。悪意のあるAPI利用側が「なんとかメーカー

    OAuthプロトコルの中身をざっくり解説してみるよ - ( ꒪⌓꒪) ゆるよろ日記
  • 知っておきたい7つのID連携実装パターン

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ID連携担当のくら(@kura_lab)です。 みなさんはYahoo! JAPANのWeb APIや認証、エンドユーザーの属性取得APIを実装したことがありますか。これらを利用するためにはYahoo! ID連携を用いてアクセストークンの取得やログインの実装が必要になります。単にアクセストークンの取得、ログインの実装といってもWebアプリ、ネイティブアプリにおいていろいろなパターンがあります。 SDKを用いる場合ほとんど意識せずに実装もできますが、提供するサービスのUXやシステムの環境に合わせてより最適な実装をするためには、それぞれの特徴を理解し適切なパターンを選択する必要があります。 Yahoo! ID連携はOAuth

    知っておきたい7つのID連携実装パターン
  • RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita

    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'でググって出て

    RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita
  • OAuth2.0の備忘録的まとめ - Ari-Press

    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サービスに必要な時にアクセスする

    takaesu
    takaesu 2013/11/05
    認証のまとめ参考
  • 【決定版】Twitter APIにも使われるOAuth認証のしくみ

    Twitter用の自作BotをPHPで作る際に勉強したんですが、なかなか複雑で理解するのに時間がかかってしまいました。 理解度を確認する意味でも、自作のWebアプリにユーザーのTwitterアカウントを紐付けてTwitter APIを利用するシーンを想定して解説してみようと思います。 「アクセス・トークン(Access Token)」をTwitterから得るのが目標です OAuthによる認証がうまくいくと、Twitterのような既存のサービスで管理されているユーザーアカウントを自分のWebアプリ上とも共有できるようになります。 そのためには、ユーザーごとに「アクセス・トークン(Access Token)」というものをユーザー情報管理サービス側(今回の場合はTwitter)から発行してもらう必要があります。 アクセス・トークンとは何ぞ? アクセス・トークンというのは、Twitterへツイート

  • 1