プレースホルダー画像

サンプルサンプル

サンプルサンプルサンプルサンプル

サンプル著者名
5,720円
hontoで電子版を見る

読み込み中…

OpenID Connect入門――アプリケーション開発者のための実践技術解説

OpenID Connect入門――アプリケーション開発者のための実践技術解説

倉林 雅 (監修)
通常価格 3,300 円(税込)
通常価格 セール価格 3,300 円(税込)
SALE 売り切れ
ネットストア在庫 詳細
    読み込み中...
My店舗在庫
    My店舗登録で在庫確認と店舗お受け取りのご利用が可能になります。(要ログイン)
  • 在庫表示のサンプル
商品説明
昨今のアプリケーションの開発では、OpenID Connectを使用してユーザ認証を行うケースが多くなっています。しかし、OpenID Connectについてよく知らずに使用している開発者も多いのではないのでしょうか? きちんと理解しないままOpenID Connectを使用すると、上手く動かないときの調査に時間がかかったり、重大なセキュリティホールを潜ませてしまうリスクにつながります。 OpenID Connectをよく知らない開発者が多い理由として、その難しさがあります。筆者自身、OpenID Connectを理解するのに多くの時間を要しました。概念的な難しさに加え、数多くの用語が登場して複雑に関係しています。また、きちんと理解するにはOpenID Connectの仕様書を参照する必要がありますが、説明が機械的で学習向きとは言えません。 本書は、OpenID Connectの知識がほとんどない方でも、OpenID Connectを理解してもらえるような内容です。OpenID Connectが登場した背景から始まり、各種フローを丁寧に説明します。代表的なセキュリティの脆弱性や対応方法についても説明します。また、サンプルアプリケーションを通して実装のイメージを伝えつつ、具体的にやりとりされるデータを示しながら説明します。 本書を読むことで、OpenID Connectを使用したアプリケーション開発に従事するための十分な知識を得ることができます。
目次
■第1章 OpenID Connectの概要
1.1 身近な存在のOpenID Connect
1.2 OAuth 2.0について
1.2.1 OAuth 2.0の認可
1.2.2 外部アプリケーションへのアクセス
1.3 ユーザー認証としてのOAuth 2.0
1.4 OpenID Connectによる拡張
1.5 本書でのOAuth 2.0の扱い
1.6 OIDCで登場する役割
1.6.1 ユーザー
1.6.2 IdP(Identity Provider)
1.6.3 Client
1.6.4 Resource Server
1.7 Clientの形態
1.7.1 MPAのClient
1.7.2 SPAのClient
1.7.3 BFFのClient
1.7.4 ネイティブアプリのClient
1.7.5 ユーザーが関与しないClient
1.8 「コンフィデンシャル」と「パブリック」
1.9 IdPの調達
1.10 「1st Party Client」と「3rd Party Client
1.11 まとめ

■第2章 OIDCの利用シーン
2.1 業務向けのアプリケーションでの利用シーン
2.1.1 複数の社内アプリケーションを同じユーザー情報・クレデンシャルで利用したい(シングルサインオン)
2.1.2 認証機能を自前で実装したくない
2.1.3 アプリケーション間で安全にAPIを呼び出したい
2.2 コンシューマ向けのアプリケーションでの利用シーン
2.2.1 SNSに認証を任せたい
2.2.2 SNSのコンテンツを利用したい
2.3 まとめ

■第3章 エンドポイントとフローの種類
3.1 エンドポイントの種類
3.1.1 認可エンドポイント
3.1.2 リダイレクションエンドポイント
3.1.3 トークンエンドポイント
3.2 フローの種類
3.3 認可コードフロー
3.3.1 ClientがMPAの認可コードフロー
3.3.2 ClientがSPAの認可コードフロー
3.3.3 ClientがBFFの認可コードフロー
3.3.4 Clientがネイティブアプリの認可コードフロー
3.4 インプリシットフロー
3.5 ハイブリッドフロー
3.6 クライアントクレデンシャルフロー
3.7 リソースオーナーパスワードクレデンシャルフロー
3.8 フローの使い分け
3.9 まとめ

■第4章 トークンの種類と形式
4.1 トークンの種類
4.2 アクセストークン.
4.2.1 オパークトークン
4.2.2 JWT
4.2.3 オパークトークンとJWTの比較
4.3 IDトークン
4.4 リフレッシュトークン
4.5 まとめ

■第5章 認可コードフローの詳細
5.1 認可コードフローの全体像
5.2 認可リクエスト
5.2.1 Scopeパラメータ
5.2.2 response_typeパラメータ
5.2.3 client_idパラメータ
5.2.4 redirect_uriパラメータ
5.2.5 stateパラメータ
5.2.6 nonceパラメータ
5.2.7 code_challenge、およびcode_challenge_method.パラメータ
5.3 認可レスポンス
5.4 リダイレクションエンドポイントへのリクエスト
5.5 トークンリクエスト
5.6 トークンレスポンス
5.7 PKCEとは
5.8 まとめ

■第6章 アクセストークン取得後に行われる処理
6.1 (Client側) Resource Serverへのアクセス
6.2 (Resource Server側)アクセストークンの正当性の検証
6.2.1 電子署名を使用する方法
6.2.2 IdPに都度問い合わせる方法
6.3 (Client側)アクセストークンのリフレッシュ(再発行)
6.3.1 リフレッシュリクエスト
6.3.2 リフレッシュレスポンス
6.3.3 リフレッシュトークンのローテーション
6.4 (Client、およびResource Server側)ユーザー情報の取得
6.4.1 ユーザー情報リクエスト
6.4.2 ユーザー情報レスポンス
6.5 まとめ

■第7章 ログアウトの方法
7.1 どこからログアウトするのか
7.2 OpenID Connect RP Initiated Logout
7.3 シングルログアウト
7.4 OpenID Connect Front-Channel Logout
7.5 OpenID Connect Back-Channel Logout
7.6 まとめ

■第8章 アプリケーションの実装例
8.1 Keycloakの紹介
8.2 Keycloakのインストールと初期設定
8.3 ディスカバリーエンドポイントの確認
8.4 サンプルプログラムの種類
8.5 まとめ

■第9章 ClientがSPAの認可コードフローの サンプルプログラム
9.1 サンプルプログラムの概要
9.2 KeycloakでのClientの設定
9.3 SPA(Client)の実装
9.4 APIサーバ(Resource Server)の実装
9.5 動作の流れ
9.6 まとめ

■第10章 ClientがBFFの認可コードフローのサンプルプログラム
10.1 サンプルプログラムの概要
10.2 KeycloakでのClientの設定
10.3 SPAの実装
10.4 BFFの実装
10.5 APIサーバの実装
10.6 動作の流れ
10.7 まとめ

■第11 章 Clientがネイティブアプリ(Androidアプリ)の認可コードフローのサンプルプログラム
11.1 サンプルプログラムの概要
11.2 KeycloakでのClientの設定
11.3 Androidアプリ(Client)の実装
11.3.1 MainActivityクラス
11.3.2 MainActivityViewModelクラス
11.3.3 OidcClientクラス
11.3.4 User.java、OrderItem.java
11.3.5 その他
11.4 APIサーバの実装
11.5 動作の流れ
11.6 まとめ

■第12章 クライアントクレデンシャルフローのサンプルプログラム
12.1 サンプルプログラムの概要
12.2 KeycloakでのClientの設定
12.3 バッチアプリ(Client)の実装
12.4 APIサーバの実装
12.5 動作の流れ
12.6 まとめ

■第13章 セキュリティの脅威と対応
13.1 代表的なセキュリティの脅威と対応
13.2 オープンリダイレクター
13.2.1 対応方法
13.3 Refererヘッダによる認可コードの漏えい
13.3.1 対応方法
13.4 認可コードインジェクション
13.4.1 対応方法
13.5 リダイレクションエンドポイントのCSRF
13.5.1 対応方法
13.6 URIスキーマの不正な登録
13.6.1 対応方法
13.7 Mix-Up攻撃(IdPの混同)
13.7.1 対応方法
13.8 ほかのClientに発行したアクセストークンの転用
13.8.1 対応方法
13.9 アプリケーション開発者が実施すべきこと
13.9.1 HTTPSを使用する
13.9.2 XSSの対策をする
13.9.3 PKCEを使用する
13.9.4 パブリックなClientでClient Secretを保持しない
13.9.5 IdPに登録するリダイレクションエンドポイントのURLに.ワイルドカードを使用しない
13.9.6 Resource Serverでaud Claimをチェックする
13.9.7 アクセストークンの有効期間を短くする
13.9.8 IdPを複数使用し、かつ信頼性に懸念がある場合はMix-Up攻撃の対応をする.
13.9.9 高いセキュリティ要件を満たす必要がある場合は、FAPI 2.0の導入を検討する
13.10 まとめ

■付録 A  デバイスフロー
A.1 デバイスフローの概要
A.2 まとめ
■付録B  外部IdP連携
B.1 外部IdP連携でやりたいこと
B.2 外部IdP連携のしくみ
B.3 まとめ
■付録C OIDC関連の公式ドキュメント
C.1 コアとなる仕様
C.2 Clientの形態に特化したベストプラクティス
C.3 アクセストークン周り
C.4 セキュリティ
C.5 高いセキュリティ要件
C.6 ログアウト
C.7 JWT
C.8 その他
C.9 まとめ
詳細を表示する

カスタマーレビュー

honto本の通販ストアのレビュー(0件)

並び順:
1/1ページ

最近チェックした商品