認証しないWeb認証 限定公開URLのセキュリティについて考える 2020/8/7 API Meetup Online #3- フューチャー株式会社 渋川よしき
SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜JavaScriptRailsJWT認証React SPAのログイン周りについて、「これがベストプラクティスだ!」という情報があまり見当たらないので、様々な可能性を模索してみました。 いろいろな状況が想定され、今回記載する内容に考慮の漏れや不備などがありましたら是非コメントでご指摘いただきたいです!特に「おすすめ度:○」と記載しているものに対しての批判をどしどしお待ちしております! この記事でおすすめしているものであっても、ご自身の責任で十分な検討・検証の上で選択されてください。 前提 想定しているAPIは、 ログイン外のAPIにはPOST/PUT/DELETEのものがなく、GETのみ GETのAPIにはDBを更新するなどの操作がない とし、そのためログイン外では
マイクロサービスの内部通信における認証について 1. マイクロサービスの内部通信における 認証について @pospome 2. 名前: pospome 読み方: ポスポメ Twitter: @pospome 専門: アプリケーションアーキテクチャ 実装パターンとかDDDとかが得意です 3. メルペイ認証基盤チーム メルカリ、メルペイにおける 認証認可を開発、運用するためのチーム 4. 認証基盤チームについてはブログ書きました https://www.pospome.work/entry/2019/06/12/125841 5. 現状 ・ユーザーアカウント管理とログイン処理はそれぞれのチームに任 せている。 ・メルカリ、メルペイの従業員の管理(入社、退職)やOktaによる ツールへのSSOは管理していない。いわゆる社内ITのようなことは していない。 ・セキュリティ面に関してはセキュリティチ
Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に 最近のスマートフォンやPCには、指紋認証や顔認証などの生体認証を用いてロック画面を解除し、OSへログインする機能が備わっています。 OSへのログインはこのように生体認証などを用いて手軽にできるようになったものの、WebブラウザでソーシャルメディアやECサイトへログインするためには、いまのところユーザー名とパスワードをキーボードから入力する必要があります。 しかしもうすぐ、Webサイトへも生体認証などを用いて簡単かつ安全にログインできる時代がやってきます。 Yahoo! Japanは9月27日、「FIDO認証」(ファイド認証)への対応を近日中に行うと発表しました。 同社は2018年8月に世界で初めて開催された「FIDO2」認定テストにおいて、「FIDO2」の認
bitly/oauth2_proxyを用いて,ウェブアプリケーションに手っ取り早くOAuth2認証を導入するという話です. oauth2_proxyは良い感じでOAuth2による認証を肩代わりしてくれる君で,何らかのリバースプロキシの認証機構と組み合わせて利用すると簡単にOAuth2ログインを実現することができます. 今回は例としてKibanaにGoogleのOAuth2ログインを導入してみたいと思います. 構成 Kibana bitly/oauth2_proxy nginx +------+ +-------+ +--------------+ +--------+ | | | | ----auth----> | | | | | user | --request--> | nginx | | oauth2_proxy | <--auth--> | Google | | | | | <--
洗練されたユーザー エクスペリエンスを提供するには、ユーザーが 認証を行います。認証されたユーザーは 専用のプロファイルを使用して相互にデータを同期したり、デバイス間でデータを同期したり、データを処理する できます。その数は今も増え続けています。しかし 作成、記憶、入力 エンドユーザーにとってパスワードが煩雑になりがち(特にモバイル画面の場合) 別のサイトで同じパスワードを使い回してしまいます。もちろんこれは セキュリティ上のリスクとなります。 Chrome の最新バージョン(51)は Credential Management API をサポートしています。Google 標準トラッキング プロポーザルであり、デベロッパーが ユーザーのログインを容易にします。 Credential Management API とは何ですか? Credential Management API を使用する
プライベートの勉強は気が向くままにふらふらと。梅田の地下街を歩いてる感じで!(←つまり迷ってる) 元々は、Pivotal Japanさんの、この「今日から君もヒーローだ!」的なタイトルに惹かれてJava(Spring Cloud)でマイクロサービス作るぞーって進めてみたのであった。が、早速その2の「認可サーバーを立ち上げよう!」で「あー、これ知らない。分かんない。もう寝たい。」となってしまったのだった。 そんな僕が「なんとなく分かった!」になるまでの物語。・・・になるはず(ここを書いてる今はまだ分かってない)。 たぶん1ヶ月したら何を読んだか忘れてると思うので記録しとくことにした。 github.com ゴール OAuth 2.0って聞いたことあるけど、よく知らない。この辺、マイクロサービスの認証・認可部分で必要そうだなーって思うので、OpenID 2.0とOpenID Connectも含
原稿執筆が追い込みの為に、すっかりとブログから遠ざかっていました@dkfjです。最近、モバイルアプリについて考えることが多いのですが、その中のテーマの1つがシステムの認証認可です。先日、JAWSUGのアーキテクチャ支部で、それをテーマに議論してきたので今時点の課題意識を整理しておきます。 当日の資料 Lambda認証認可パターン from Takuro Sasaki www.slideshare.net 説明が何も書いていないので、これだけ見てもさっぱり解らないと思います。順を追って、説明します。 認証と認可 まず認証と認可の違いです。認証は本人性の確認であり、認可はリソースに対する利用権限の付与です。多くのシステムでは、認証と同時に認可を行いますが、本質的には別々の機能ですよねという話です。もちろん、1つのシステムの中で同時に実現することの問題もありません。 Cognitoを利用した認
OpenID Summit Tokyo 2015 一応、ID 業界の片隅に生息しているので行ってきました。会社から歩い て 10 分くらいだったし。 最新の動向をキャッチアップ出来て有意義なイベントでした。気になるセッ ションだけ聞こうと思ってましたが、結局ほぼ最後まで聞いてました。 同時通訳は助かりました。運営の皆さん、ありがとうございました。 ※ メモが少ないセッションは、疲れていたか、メモを取るリズムが掴め なかったからです。 アイデンティティ・オーバービュー# 崎村 夏彦 — OpenID Foundation 理事長 楠 正憲 — OpenIDファウンデーション・ジャパン 代表理事 ※ TODO: 資料が公開されたらここに貼る 前回は 2011 年とのこと。毎年やっているのかと思いました。 IoT時代の認証技術# 増井俊之 — 慶應義塾大学 環境情報学部 教授 資料置き場: ht
あまり良く分かっていなかったシングルサインオン(以下SSO)についてのまとめ。 そもそもSSOとは、IT用語辞典によると ユーザが一度認証を受けるだけで、許可されているすべての機能を利用できるようになるシステム。 のことだ。つまり、 図1のようにアプリが1つの場合には不要である。また 図2のようにアプリが複数でも認証情報(Session)を共有する場合には、SSOサーバは必要ない。各アプリの依存度が高い場合や、負荷分散のための複数プロセス構成のケースではこれで充分。そもそもRailsを使うのならSessionの内容はCookieのなかだし(デフォルトでは)。 独立性の高い各アプリの間で認証情報を共有したい場合にSSOサーバは初めて有効となる。 ここで認証画面を各アプリで持つことも可能であるが、SSOサーバに任せた方が実装の手間も省けるし、セキュリティ的にもパスワードを取得するサーバが一箇所
追記 (2018-10-08) 4年以上前に書いた記事ですが、Access Token として JWT を利用することは非推奨なようなので、お詫びして修正致します。 参考: どうしてリスクアセスメントせずに JWT をセッションに使っちゃうわけ? 概要 みんなやってるはずなんだけど、あまりまとまった情報がなかったので書いてみます。認証周りはセキュリティを気にして、みんな書きたがらないのかな?それとも私の調べ方が悪かっただけ?マサカリお待ちしてます。 認証の基本方針 +--------+ +--------+ | | | | | |----(1) Credential ------------>| | | | | | | |<---(2) Access Token -----------| | | | | | | Client | | Server | | | | | | |----(3)
最近、Web APIの認証をどうすべきか考えている。 例えば次のようなケースをどうするか。 「既存のWebサイトがあり、既にユーザIDとパスワードによる認証によって、ブラウザでデータを提供している。 今回、この提供データをブラウザの画面ではなく、REST APIにて取得可能にしたい。 このデータはユーザ毎に取得可能な値が違うので、認証、または認可によって制限をかけたい。」 ユーザーがブラウザからIDとパスワード(以下ID/PW)を使ってログインする方式を、そのままWeb APIにも適用しても安全なのだろうか。 Web APIの先にはスマホアプリやシェルスクリプトなどから直接ログインするものなどが考えられるが、安全かつシンプルに実装するにはどうしたらいいのだろうか。 私はセキュリティの専門家ではないので間違った考え方をしている可能性もあるが、誰かの目に留まって助言いただけるかもしれないので、
API 作成に django-rest-framework を使います。 JWT でトークンベースの認証のために django-rest-framework-jwt というプラグインを使います。 django-rest-framework を使う場合の認証情報の保持には選択肢があり、JWT はその1つです。 JWT はトークンベースの認証で、トークンを永続化する必要が無いのが楽です。 ブラウザでの webアプリなら session_id を Cookie で持つことで認証情報を保持できますが、 その他のクライアント(iOSアプリなど)で使う API では認証情報をトークンなどで保持する必要があります。 略称 JW: JSON Web JWT: Token JWS: Signature JWE: Encryption django-rest-framework-jwt の使い方 省略。REA
@novです。 個人的に最近OAuth 2.0よりJWT (というかJWS) を利用するシーンが多く、毎回同じ説明するのもめんどくさいのでブログにまとめるかと思い、どうせならOAuth.jpに書くかということで、こんな記事を書いております。 (そろそろJWTとJWSは、OpenID Foundation Japanの翻訳WGで翻訳するべき?) JSON Web Token (JWT) とは、JSONをトークン化する仕組み。 元々はJSONデータにSignatureをつけたりEncryptionする仕組みとして考えられたものの、Signature部分がJSON Web Signatue (JWS)、Encryption部分がJSON Web Encryption (JWE) という仕様に分割された。 それぞれ2012年10月26日現在の最新仕様はこちら。 (JWTとJWSは既にだいぶ仕様が固
Basic認証とOAuthとその辺の情報について整理しておく。OAuthや認証・認可について説明しようとすると、1文字記述するたびに誤りが含まれてしまう可能性があるので、本当に緊張感を持って記述しなければならない。それでもなお、この文章にはたくさんの誤りが含まれている。 UsernameとPasswordを受け取って認証する形式の認証方法。UsernameにはEmailを使うこともある (要は全ユーザの中で一意なことが保証されていてかつ他の人がその値を知っていても特に問題がないという情報であればOK)。Passwordは本人しか知り得ない情報。 OAuthという仕様に則って提供される認可方法。古いOAuth 1.0と、OAuth 1.0の複雑なところなどを改善したOAuth 2.0がある。一般的にはOAuth 2.0を使うことが多いが、例えば幾つかのサービスの提供している認可方法はOAut
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く