ラベル セキュリティ の投稿を表示しています。 すべての投稿を表示

Google OpenID Connect の 実装方法

今回は「Googleを例にOpenID Connectの実処理フロー」についてまとめます。 今回も、OpenID Connect すべてをカバーするのではなく、一番サポート率が高く使われるであろうユースケース「BasicOP(response_type: code)」についてのみを対象にまとめます。 目次 概要 事前準備(OpenID提供側サーバー設定) OAuth同意画面設定 認証情報設定 クライアント実装(OpenID利用側処理フロー) 概要 シーケンス図 詳細 ...

OpenID Connect の 概要

今回は「OpenID Connect」についてまとめます。 ただ、OpenID Connect 自体は広範囲にわたるユースケースをカバーしている難解な仕様です。 すべて取り上げると無駄が多い感じがしたので、一番サポート率が高く使われるであろうユースケース「BasicOP」についてまとめていきます。 目次 何ができるのか どうやって実現するのか(OpenID Connect 全体像) OAuth 2.0 と OpenID Connect 1.0 の違い 何ができるのか OpenID Connect は「あるサービスで利用している ID や メールアドレス などの情報を自分のサイトでも利用できるようにするエコな仕組み」です。 すでに OpenID Connect を組み込んだサイトは ...

JSON Web Token (JWT) の 仕様 と 使い方

今回は「JSON Web Token」についてまとめます。 目次 概要 仕様 構造 ヘッダー ペイロード 署名 使い方 注意点 概要 JSON Web Token は略して JWT (ジョット) と呼びます。 「セッション情報をサーバーサイドで保存せずクライアントサイドで保持できる(ステートレスが実現できる)」点が特徴です。 WebAPIとか作るときは便利な仕様です。 JWTの仕様(= トークンの仕様)自体はシンプルですし、使い方も簡単です。 ただ…使い方を間違えると脆弱性ができてしまうので、使い方には要注意です。 仕様 ...

OpenSSL で 証明書要求を作成、署名する方法

今回は「OpenSSL で サーバー証明書要求を作成、署名を行う方法」についてまとめます。 本記事は Windows 環境に OpenSSL がインストールされた状態で、認証局の設定も終わっていることを前提に説明しています。 Windows 環境に OpenSSL を導入する手順や認証局を構築する手順については別記事がありますので、必要に応じてご参照ください。 目次 概要 秘密鍵の作成 証明書要求(CSR)の作成 証明書要求(CSR)に署名 Webサーバーに組み込み 関連記事 公開鍵基盤 (PKI) 構築 に関する まとめ OpenSSL を Windows にインストールする方法 OpenSSL ...

OpenSSL で Windows に プライベート認証局 を 構築する方法

今回は「OpenSSL で Windows に プライベート認証局(CA) を構築する方法」についてまとめます。 すでに OpenSSL が Windows へインストール、設定されていることを前提に認証局として必要な秘密鍵と公開鍵を作成する方法をまとめています。 まだ OpenSSL を導入していない場合、こちら の手順に従って先にインストールをお願い致します。 目次 概要 認証局の秘密鍵作成 DSAアルゴリズムの場合 RSAアルゴリズムの場合 EC(楕円曲線)アルゴリズムの場合 認証局の証明書作成 証明書(.pem)作成 証明書(.cer ...

OpenSSL を Windows にインストールする方法

今回は「openssl を Windows にインストールする方法」についてまとめます。 今回は openssl のバイナリをダウンロードして Windows 10 にインストール、初期設定を行って動作確認するところまでの具体的な手順をまとめます。 目次 ダウンロード インストール 初期設定 動作確認 関連記事 公開鍵基盤 (PKI) 構築 に関する まとめ OpenSSL を Windows にインストールする方法 ← この記事 OpenSSL で Windows に プライベート認証局 を 構築する方法 OpenSSL で 証明書要求を作成、署名する方法 ダウンロード ...

Node.js + Express で CSRF対策 を行う 方法

Node.js + Express 環境において CSRF対策 を行う方法について今回はまとめていきます。 ちなみに、本記事で CSRF対策 として利用するミドルウエアは csrf です。 他の記事で csurf を利用したものがあったので参考に実装してみたのですが… csurf は一度発行したトークンが再利用できた点がセキュリティ的に怪しい動作なので、使うのを止めました。。 目次 CSRFとは csrf ミドルウェア の 使い方 csrf ミドルウェア を使った 実装例 CSRFとは 詳しい内容は別記事がかけそうなくらいなので、ここでは概要だけおさらいします。 CSRF (cross-site request forgeries) は 掲示板や問い合わせフォームなどを処理するW ...

Node.js + Express で HTTP から HTTPS へ 自動リダイレクト させる方法

Node.js + Exprss で HTTPSサーバー 構築した際、http でアクセスしてきた通信を https 強制リダイレクトさせる方法を考えました。 といっても難しいことはせずできるだけ単純な実装にしています。 自動リダイレクト の サンプルコード var express = require("express"); var fs = require("fs"); var http = require("http"); var https = require("https"); var app = express(); var options = { pfx: fs.readFileSync("./private/localhost.pfx"), passphrase: "Passw0rd" }; app.get("/", function ...

Node.js + Express で HTTPS サーバー を 作る

Node.js + Express の環境で HTTPS 通信できるようにする方法を整理しました。 あまり複雑な要素は含めずできるだけシンプルなサンプルコードを掲載します。 目次 HTTPS サーバー 構築 HTTP と HTTPS を共存させた サーバー構築 [おまけ] 自己署名証明書の作成 HTTPS サーバー 構築 Windows の IIS で自己署名入り証明書 をエクスポートすると PKCS#12 の証明書 (拡張子 pfx のファイル) になっているので、 今回は pfx を指定してHTTPSサーバーを構築してみます。 IIS で 自己署名入り証明書 を作成、エクスポートする方法は以下の「自己署名証明書の作成」を参照してください。 var express = req ...

IIS に 登録した 署名済みサーバー証明書 を バックアップ / リストア する方法

Windowsサーバー で稼働中のWebアプリケーションを別の Windowsサーバー へ移す場合、証明書も移す必要があります。 ここでは証明書をバックアップして復元する手順をまとめます。 目次 署名済みサーバー証明書のバックアップ 署名済みサーバー証明書のリストア ファイル形式について 署名済みサーバー証明書のバックアップ 以下に載せる手順で行うバックアップでは「署名済み公開鍵」と「秘密鍵」の両方を含んだファイルを出力できます。 IIS の管理コンソール を開く 「サーバー証明書」をダブルクリックして開く バックアップしたい「署名済みサーバー証明書」を選択 操作にある「エクス ...