2024年6月25日に開催した第2回目の「OAuth & OpenID Connect 勉強会 by Authlete 」のアーカイブです。
![OAuth & OpenID Connect 勉強会 by Authlete ー詳細仕様化のポイント](https://cdn-ak-scissors.b.st-hatena.com/image/square/d50943d0b7eb8449de030b81b83ee0b531582599/height=288;version=1;width=512/https%3A%2F%2Fi.ytimg.com%2Fvi%2FWRAaqg_SY1U%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE%3D%26rs%3DAOn4CLAxuwlxYTDF7rtCmfWhVD2xrJIKpg%26days_since_epoch%3D19914)
現在のWebサービスにおいて必要不可欠な技術がOAuthです。本記事では、OpenID(OpenID Authentication)との違いから、認証・認可について、OAuthのメリット・デメリットまで紹介します。 OAuthとは OAuth(オーオース)とは、アクセス権限の認可を行うためのオープン標準プロトコルです。認可とは、第三者のアプリケーションに、自分のアカウントを用いたWebサービスAPIへのアクセス権限を委譲することを言います。 主にWebサービス同士を連携させて、便利に利用しやすくするための仕組みとして用いられています。OAuthを利用することで、例えばX(旧Twitter)とFacebookを連携させて、Xへ投稿した同じ内容を自動的にFacebookへも投稿させるといったことができます。 OAuthの作成が始まった2007年ごろ、当時はマッシュアップによるWebサービス連携
こんにちは、kuraです。 この記事はDigital Identity技術勉強会 #iddance のアドベントカレンダーの12日目の記事です。 開発チームを離れてプロジェクトやサービスのマネジメントが中心の業務になっており、コーディングを全然しなくなったのですが、上流工程でシーケンス図はよく書くため、自身の作業効率を上げる意味も含めて今回はOAuth 2.0やOpenID Connectのシーケンス図をまとめようと思います。 画像だけでなくPlantUMLのコードも掲載しておくので、みなさんにも活用いただけたらと思います。 PlantUMLについて PlantUMLはクラス図やシーケンス図がかけるオープンソースの描画ツールです。Qiitaにも記事をまとめてくださっている方はたくさんいるので詳しい情報は検索してみてください。 筆者は以下のあたりを参考にVSCodeとの組み合わせで作成してい
はじめにこんにちは、TIG の吉岡と申します。Tech Blog には初投稿です。認証認可連載の 5 本目です。 業務で認証・認可に関する SaaS に触れる場面があり、そういえば OAuth, OpenID Connect の仕組みをちゃんと理解していなかったと思い、RFC を読みながら OAuth クライアントを実装してみました。N 番煎じの車輪の再発明ですが、何かの役に立てば幸いです。 ※本稿において、OAuth は基本的に OAuth 2.0 を指しますが、OAuth 2.1 にて推奨されているベストプラクティスを取り入れています。 ※本当は OpenID Connect にも触れたかったのですが力尽きました。また機会があれば書かせてください。 Prerequisitesこの記事は、次のような方々に向けて書いています。 OAuth を聞いたことがある 認証と認可の違いを認識している
prismatix事業部の宮部です。 今日はクラスメソッド設立記念日かつ、七夕なので「織姫と彦星が天の川挟んでauth danceやってみた」みたいな記事書こうと思ったんですが自分で何書いてるかわからなくなったのでもう少し実用的な話を考えてみました。 OAuth2.0やOpenID Connectでは各種の攻撃の対策として使用するクエリパラメータが存在します。 ただし、これらのパラメータが付与されているかのハンドリングは簡単ですが、実際にそれをIdentity Provider(認証システム)やRelying Party(利用システム)が正しく検証しているかの保証はむずかしかったりします。 SDKやライブラリにこの辺の処理は任せてるというケースも多いでしょうが、「検証の方法は互いに提供しているのでしっかり検証しているはず」という信頼関係が必要になってくるので啓蒙の意味も込めて各パラメータの
Amazon Web Services ブログ Amazon Cognito と AWS Lambda を使って OAuth 2.0 デバイスフローを実装する 本記事は Implement OAuth 2.0 device grant flow by using Amazon Cognito and AWS Lambda | AWS Security Blog を翻訳したものです。 このブログ記事では、Amazon Cognito に OAuth 2.0 デバイス認可フロー (Device Authorization Grant Flow) を AWS Lambda と Amazon DynamoDB を使って実装する方法を学べます。 インターネットに接続されているが、入力機能が制限されていたり、使いやすいブラウザがなかったりするウェラブルデバイス、スマートスピーカ、動画ストリーミングデバ
こんにちは。TIG/DXユニットのLEEです。フューチャーではここ数年、主に認証認可関係の設計や開発などを担当しております。 今回は流行りの認証プロトコルであるOpenID ConnectとOAuth2.0におけるAuthorizerについて話そうと思います。 Authorizerとは AuthorizerとはAWS APIGatewayにある機能の一つで、外からAPIサーバに送られてくるリクエストを検証することにより、アクセスを制御する機能です。OAuth2.0のプロトコルにおいては、AuthorizerはJWTなどTokenを検証することで、APIサーバ、つまり ResourceServer を保護する役割を持っています。 OSSのAPIGatewayであるKongを触ったことがある方ならば、JWT Pluginとほぼ同じ立ち位置のものと思って構いません。 なぜ使うのかSinglePa
おはようございます、ritou です。 qiita.com これの初日です。 なんの話か 皆さんは今まで、こんな記事を目にしたことがありませんか? Cookie vs JWT 認証に JWT を利用するのってどうなの? JWT をセッション管理に使うべきではない! リンク貼るのは省略しますが、年に何度か見かける記事です。 個人的にこの話題の原点は最近 IDaaS(Identity as a Service) として注目を集めている Auth0 が Cookie vs Token とか言う比較記事を書いたことだと思っていますが、今探したところ記事は削除されたのか最近の記事にリダイレクトされてるようなのでもうよくわからん。 なのでそれはおいといて、この話題を扱う記事は クライアントでのセッション管理 : HTTP Cookie vs WebStorage(LocalStorage / Sess
以下のユースケースを考えてみます。Twitterにつぶやくと、自動的にそのつぶやきがFacebookにも反映される仕組みです。 ID・パスワード認証の場合それでは先のユースケースをID・パスワード認証の場合どのように行われるかを見ていきます。 TwitterのシステムにAさんのFacebookのユーザーID、パスワードを登録します。 Aさんがつぶやきます。 Twitterのシステムに登録されているFacebookのユーザーID・パスワードを元にFacebookに接続します。 TwitterがユーザーAさんの代わりにFacebookに投稿します。 このしくみは、大きな弱点があります。TwitterにはAさんのFacebookのユーザーID・パスワードが登録されています。Twitterを運営している人に悪い人がいて、その人がAさんのFacebookのID・パスワードで勝手にFacebookに接
こんばんは。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
2020年11月25〜27日の3日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2020」がオンラインで開催されました。そこで LINE Loginを使った認証を実装する際、脆弱性が生じる可能性がある4つの注意点について、LINE LoginやLINE Front-end Frameworkの開発を担当している尾上良範氏が解説。前半は LINE Loginの機能と2つのケーススタディを共有しました。 具体例で学ぶ、LINE Loginを利用した安心・安全な認証・認可機能の実装方法 尾上良範氏(以下、尾上):「具体例で学ぶ、LINE Loginを利用した安心・安全な認証・認可機能の実装方法」というタイトルで発表いたします。LINE株式会社の尾上と申します。よろしくお願いします。 まず簡単に自己紹介します。Developer Produc
はじめに Web API のセキュリティ周りについて調べていると、 「OAuth 2.0」や「OpenID Connect」という単語をよく見かけると思います。 さらに調べると、「アクセストークン」と「IDトークン」という単語に出会いました。 しかし、この2つのトークンの違いについて、 いまいち理解ができていなかったので、今回は両者の違いを調べてみました。 加えて、トークンについて調べる中で、 OpenID Connectが生まれた経緯も知ることができたのでメモしておきます。 2つのトークンの違い アクセストークン と IDトークン、両者は役割が大きく異なります。 アクセストークン:認可(リソースへのアクセスコントロール=あるリソースへの権限(readやwriteなど)を持っているかどうか確認すること) IDトークン:認証(その人が誰かを確認すること) 名前のままでした。 認可に使うための
2020年3月17日、株式会社Authleteが主催する「OAuth & OIDC 勉強会 リターンズ【入門編】」が開催。同社の共同創業者であり、プログラマー兼代表取締役でもある川崎貴彦氏が、OAuth 2.0 / OIDCの仕様について解説しました。本記事では、OAuth 2.0において、クライアントが認可サーバーにリクエストを行なってから、認可サーバーがクライアントにアクセストークンを発行するまでのやりとりの流れ(フロー)について、わかりやすく説明していきます。 認可サーバーが提供する2つのエンドポイント 川崎貴彦氏:認可サーバーは基本的に2つのエンドポイントを提供します。その2つは、認可エンドポイントとトークンエンドポイントです。他にもさまざまな仕様があり、他のエンドポイントを定義している仕様もありますが今日は触れません。 このRFC 6749の仕様は、この2つのエンドポイントがどう
Auth0を利用してPKCEを一緒に試しつつ、理解していきましょう。本記事ではPKCEを実際に試してみて、理解できることをゴールに書いていきます。 はじめに みなさま。はじめまして、Auth0社の筒井です。ソリューションアーキテクト・テクニカルアカウントマネージャーとして主にAuth0のEnterprise版をご契約頂いたお客様に対して技術支援を行っています。今回はゲストブロガーとして投稿します。 Auth0を利用してPKCEを一緒に試しつつ、理解していきましょう。PKCEはすでに様々なところで詳細に説明されているので、ご存知の方も多いと思います。 本記事ではPKCEを実際に試してみて、理解できることをゴールに書いていきます。 さっそくですが、PKCEって何でしょうか? PKCEは、Proof Key for Code Exchangeの略で、呼び方はピクシーと呼びます。RFC 7636と
OAuth や OIDC について、仕様を読みながら学習を進めていると、「何に使えるのかよくわからない値」や「挙動はわかっても実際にどのような攻撃を防げるのかがよくわからない値」がたくさん出てくるように感じます。 例えば以下は私の Slack での発言を検索した結果ですが、c_hash で何が防げるのかわからず苦悶しています。 そこで、OAuth・OIDCへの攻撃と対策を整理して理解できる本(リダイレクトへの攻撃編) を読んでみたところ、この手の混乱に非常に役立つように感じたので、こちらで紹介させていただきます。 OAuth・OIDCへの攻撃と対策を整理して理解できる本(リダイレクトへの攻撃編) 仕様を元に OAuth や OIDC の勉強をしていてわかりづらいのは、具体的な攻撃の手法よりも前に、防御の方法について記載があるためではないかと感じています。 それに対して、この本では具体的な攻
2012 年に OAuth 2.0 (RFC 6749 / 6750)、2014 年に OIDC 1.0、そして 2015 年に PKCE (RFC 7636) / JWT (RFC 7519) がそれぞれ標準仕様となり、いまでは多方面に活用されるようになりました。一方で 2015 年以降も、さまざまな OAuth 2.0 拡張仕様が登場し、さらに OAuth 2.0 / OIDC 適用のプラクティスも改良されています。 もしかしたら、数年前には標準が存在せず独自拡張を試みるしかなかったユースケースに、いままさに策定中の仕様が活用できるかもしれません。あるいは、以前は最良であると考えられていた OAuth 2.0 適用の定石も、いまでは時代遅れになっているかもしれません。 今回の勉強会では、主に「ポスト PKCE / JWT(2015 年以降)」を中心に、Authlete 社の独断と偏見に
はじめに OpenID Connect は OAuth 2.0 を拡張する形で策定されました。 OAuth 2.0 はアクセストークン発行手順に関する仕様で、RFC 6749(The OAuth 2.0 Authorization Framework)で定義されています(参考:一番分かりやすい OAuth の説明)。 一方、OpenID Connect は ID トークン発行手順に関する仕様で、主要部分は OpenID Connect Core 1.0 で定義されています(参考:一番分かりやすい OpenID Connect の説明)。 RFC 6749 は認可エンドポイントという Web API を定義しています。 この API は必須のリクエストパラメーターとして response_type を要求します。 OpenID Connect は、この response_type の仕様を拡
こんにちは。今日は趣向を変えて千代田区立図書館に来てみました。 www.library.chiyoda.tokyo.jp 図書館は普段あんまり行かないので、地元の図書館との違いに驚きでした。 都内の図書館って広いし綺麗ですね。 九段下から割と近い、置いている蔵書のジャンルが多し、席のジャンル多し、無線Wifiあり、電源あり、でかなり使いやすかったです。 静かで落ち着いた雰囲気で過ごしやすい気がしますが、無音なので独り言が多い人は気をつけてください。 さて、前回の記事について@okeee0315さんからこんなコメントを。 認証回りは大事、ADの前に認証と認可が必要かも / ADなにそれおいしくない(泣) - どんまいこのネタ帳 https://t.co/MEFI6o5qNA— okeee (@okeee0315) 2016年5月3日 ほほう。ADはまだ美味しくなかったので、教えに従い認証周り
OpenID Connect概要 OpenID Connectをひと言で説明すると、 OAuth 2.0 + Identity Layer = OpenID Connect という表現が最もふさわしい。 OpenID Connectは、「OAuth 2.0を使ってID連携をする際に、OAuth 2.0では標準化されていない機能で、かつID連携には共通して必要となる機能を標準化した」OAuth 2.0の拡張仕様の一つである。 OpenID Connect登場以前は、OAuth 1.0/2.0ベースのID連携の仕組みがTwitterやFacebookなどの巨大SNSから提供され、人気を博した。これらの仕組みは今でも広く利用されている。 一方で、OpenID Connectの1つ前のバージョンのOpenID 2.0では、ID情報の連携はできるもののAPI連携には利用できないなど、デベロッパーに強
より確実な認証を行いたい場合 一般的に、上記3つの要素のうちいずれか1つを満たすことで、認証が完了することが多い より確実な認証を行いたい場合は、Multi-Factor Authentication (MFA) という考え方で、複数のファクターを確認する 認可 (Authorization) とある特定の条件に対して、リソースアクセスの権限を与えること (例) 鍵。鍵があれば家に入ることができる イメージは鍵 認証と認可を分離して考える 多くの場合、認証と認可は密結合している 認証に基づく認可 (例) 運転免許証。写真によりある人が誰であるかを証明し、その上で、その人に対して運転の認可を行う しかし、時に認証と認可が分離していることがある 認証せずに認可することがある (例) 切符 認証して認可しないことが分散システム上である (例) Aシステムでユーザーの認証して、認可を行うBシステム
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く