技術書同人誌博覧会

う-07

IT-開発-Web

Auth屋

雰囲気でOAuthをつかっているエンジニアのためにOAuth、OpenID Connectの本を書いています。 OAuthやOpenID Connectのことを「OAuth"認証"」とかいっちゃってる人は雰囲気で つかっちゃってるはずなのでぜひ読んでください。 これまでシリーズで累計で5000部以上でています。

チェックする
雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本
同人誌・95ページ・20部頒布・紙/電子・900円
チェックする

雰囲気OAuthシリーズ第一弾

!!! 12/12 ソーシャルログイン本 発売記念特別特価!!!
https://amzn.asia/d/20eiCnj

■ 誰に向けた本か
ぜんぜんわからない。俺たちは雰囲気で OAuth をやっている。
そんなエンジニアに向けてこの本を書きました。

具体的には以下の質問に答えられないエンジニア です。
• スコープとはなんですか?
• 認可コード (Authorization code) は何が行われた証ですか?
• Webアプリケーションの場合、どのフローを使うべきですか?

■この本を読むメリット
• OAuth2.0 に関わる概念を整理して理解できます。
• 具体的なソフトウェアプロジェクトの構成要素を OAuth2.0 のロールにマッピングできるようになります。
• 自分のソフトウェアプロジェクトで利用すべきフローを判断できるようになります。
• 利用したい API の OAuth 関連資料やOAuth2.0 の標準仕様を読みこなすための
地図が頭の中にできます。

■ この本の特徴
• Google PhotoのAPIを使った画像編集アプリの例を頻繁に挙げることで、具体的にイメージしやすい説明を試みています。
• チュートリアルの章では、curlとブラウザを使って実際に手を動かしながら学べます
• OAuthの仕様で決められているオプションについては網羅的に説明するのではなく、オーソドックスな一つの例を基に説明しています。

■この本は何の本ではないか
• この本は OpenID Connect については説明していません。 OAuth2.0 と OpenID Connect を並行して学ぶと混乱するからです。まずは OAuth2.0 についてしっかり と理解し、その後、 OpenID Connect との差分を理解する、というのが OAuth2.0 と OpenID Connect の両方を理解するの最短の道だと考えています。

• この本は OAuth1.0 と 2.0 の違いについては説明していません。 OAuth1.0 を利用 するケースはほとんどないためです。

• この本は OAuth2.0 に関する攻撃手段については説明していません。ターゲット読 者がいきなり攻撃手段の話を理解するのは難しいためです 。

■ 目次
第1章 はじめに
1.1 OAuthとはなにか
1.2 OAuthはなぜ必要か
第2章 OAuthのロール
2.1 リソースオーナー
2.2 クライアント
2.3 リソースサーバー
2.4 認可サーバー
2.5 4つのロールの関係
第3章 OAuthのトークン
3.1 アクセストークン
3.2 リフレッシュトークン
3.3 認可コード
第4章 OAuthのエンドポイント
4.1 認可エンドポイント
4.2 トークンエンドポイント
4.3 リダイレクトエンドポイント(リダイレクトURI)
第5章 OAuthのグラントタイプ
5.1 クライアントの登録
5.2 認可コードグラント
5.3 インプリシットグラント
5.4 クライアントクレデンシャルグラント
5.5 リソースオーナーパスワードクレデンシャルグラント
5.6 リフレッシュトークンによるアクセストークン再発行
5.7 認可コードグラント + PKCE
第6章 チュートリアル
6.1 クライアントの登録
6.2 認可コードグラント
6.3 認可コードグラント + PKCE
6.4 インプリシットグラント
付録A OAuth認証について
A.1 認証のためのプロトコルという誤解
A.2 OAuth認証の仕組み
付録B S256でのcode_challengeの算出
付録C OAuth関連用語の英語と日本語の対応

立ち読み電子版を購入
OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本
同人誌・106ページ・25部頒布・紙・900円
チェックする

雰囲気OAuthシリーズ第二弾

■ はじめに
まずは以下の問を見てください。
「OAuth は認可のプロトコルなのになぜ OAuth"認証"なのか?」
「OAuth を認証に使えるように拡張したものが OpenID Connect だが、それって OAuth 認証と何が違うの?」
この本はこの問に自信をもって答えられるように OAuth、OAuth 認証、OpenID Connect の関係に着目してそれぞれを説明する本です。この本を読めば、上記の 3 つを 理解した上で以下のケースでどのようなやりとりが行われているのか、を理解できます。
• サードパーティアプリで Google Photo の画像をダウンロードする場合
• サードパーティアプリに Facebook アカウント でログインする場合
• サードパーティアプリに Google アカウント でログインする場合

■ 前著との違い
前著の改訂版である「雰囲気で OAuth2.0 を使っているエンジニアが OAuth2.0 を整 理して、手を動かしながら学べる本」では OAuth の基本的な用語・概念から解説し、OAuth2.0 が認可、すなわち権限委譲のプロトコルとして機能す る仕組みを説明しています。

■ この本の特徴
OpenID Connect の流れを curl とブラウザで手を動かしながら学べるチュートリ アル付き
• 厳密性より、最もオーソドックスな一例を理解できることをめざしています
• 本文は 100 ページを超えていますが、図が多いのでサクサク読めます

チェックする

■ はじめに
本書は Auth 屋の「雰囲気 OAuth シリーズ」第三弾であり、OAuth と OpenID Connect への攻撃と対策についての本です。攻撃全般ではなく、攻撃対象として一番狙われる「リダイレクト 部分への攻撃」に特化した内容になっています。リダイレクト部分への攻撃の仕組 みと、state、nonce をはじめとした対策についての仕組みを理解すれば、雰囲気 OAuther を脱したと言えるでしょう。

■ 想定読者
• OAuth・OIDC について用語、概念、仕組みはだいたい理解してる(Auth 屋 の前著は読んだ!)
• state、nonce、PKCE、c_hash、at_hashは聞いたことはある。理解はして ない。
• クライアント、リライング・パーティとしてアプリを作るかもしれない

もし OAuth・OIDC についての理解があやしいようであれば、ぜひ、以下の前著も合わせてお読みください。
• OAuth本 [ https://booth.pm/ja/items/1296585 ]
• OpenID Connect本 [ https://booth.pm/ja/items/1550861 ]

■ 本書の狙い
本書の狙いは、読者がこの本を読み終わった後「下記の攻撃を防ぐためにクライア ント、リライング・パーティとしてなすべきこと」を理解できていることです。

攻撃
• クロスサイトリクエストフォージェリ • リプレイ攻撃
• 認可コード横取り攻撃
• コードインジェクション
• トークンインジェクション
対策
• state
• nonce
• PKCE
• c_hash
• at_hash
■ 本書の特徴
• OAuth・OIDC の各フローのやり取りを一つずつ追いながら解説することで、 容易に攻撃と対策の仕組みがわかる
• 攻撃と対策をビジュアルで理解できる
• 本文 100 ページ程度なので 1 日で読める

目次
第1章 OAuth・OIDC のおさらい
1.1 OAuth・OIDCの用語の整理
1.2 リダイレクトが狙われる

第2章 CSRF
2.1 CSRFとは
2.2 state による対策
2.3 まとめ
コラム: 効率的に CSRF を行う方法

第3章 リプレイ攻撃
3.1 リプレイ攻撃とは
3.2 nonceによるタイ草
3.3 まとめ

第4章
リプレイ攻撃
リプレイ攻撃とは
nonceによる対策
まとめ

第5章 トークンインジェクション
5.1 トークンインジェクションとは
5.2 OAuthでの対策
5.3 at_hashによる対策
5.4 まとめ
コラム: OAuth 認証とトークンインジェクション
コラム: トークンはどこからもれるのか?

第6章 コードインジェクション
6.1 コードインジェクションとは
6.2 PKCE による対策
6.3 nonce による対策
6.4 c_hash による対策
6.5 まとめ

第7章 全体整理
7.1 PKCE、nonceによるCSRF対策
7.2 OAuth 認可コードフロー (サーバーサイドアプリ):"code"
7.3 OAuth 認可コードフロー (ネイティブアプリ):"code"
7.4 OAuthインプリシットフロー:"token"
7.5 OAuth ハイブリッドフロー (JS アプリ):"code token"
7.6 OIDC 認可コードフロー (サーバーサイドアプリ):"code"
7.7 OIDC 認可コードフロー (サーバーサイドアプリ):"code id_token"
7.8 OIDC 認可コードフロー (ネイティブアプリ):"code"
7.9 OIDC 認可コードフロー (ネイティブアプリ):"code id_token"
7.10 OIDC インプリシットフロ (JS アプリ):"token id_token"
7.11 OIDC ハイブリッドフロー (ネイティブアプリ):"code id_token"
7.12 OIDC ハイブリッドフロー (JS アプリ):"code token"
7.13 OIDC ハイブリッドフロー (JS アプリ):"token id_token"
7.14 OIDC ハイブリッドフロー (JS アプリ):"token code id_token"
コラム:ハイブリッドフローでのパラメータ共有について

ホーム
サークル
頒布物
マイページ