CATEGORY

システムエンジニアリング

認証・認可に使用できるクライアント証明書のフィールド

証明書のフィールド 証明書の仕様はRFC5280で定義されています。 1988年にITUが公開鍵基盤(PKI)をX.509として規格化しました。このPKIの一部として証明書も規格化されました。 インターネットで使用されるサーバ証明書やクライアント証明書はX.509証明書と呼ばれます。 今日ではバージョン3が使用されており、その内容はIETFのRFC 5280として公開されています。 証明書の内容の […]

X.509証明書のエラー原因と対応方法

はじめに サーバ証明書、クライアント証明書等のX.509証明書を作成する際に経験したエラーの原因と対応例の紹介です。 Windows環境で証明書を確認した際の「証明書の状態エラー」、ブラウザ(Chrome)でWebページにアクセスした際に表示される「ブラウザのエラー」に分けて紹介します。 サーバ証明書、クライアント証明書の作成例はこちらで紹介しています。 ここでは、Windows環境で証明書を作成 […]

X.509証明書仕様(RFC5280)でのOIDの読み方

X.509証明書はRFC5280で定義されており、証明書を作成する際に使用するOIDもこの中で定義されています。 例えば、拡張キー使用法(EKU)の記載を探すために、RFC5280を”2.5.29.37″で検索しても見つかりません。OIDの定義は後述のようにASN.1という形式で定義されており、単純な番号の羅列では定義されていないためです。 拡張キー使用法(EKU:  […]

クライアント証明書を使った認証・認可方式

はじめに 利用ユーザに対して「マインバー操作」や「ユーザアカウント管理」などの重要な機能を提供する業務システムでは、そのような機能へのアクセスを制限する必要があり、その実現方式の一つとしてクライアント証明書を使う方法が考えられます。ここでは、典型的な業務システム(Webアプリ)を例題とした、クライアント証明書による認証・認可機能の実現方式について説明します。 パスワード認証や2要素認証などによるユ […]

ExcelをCSV, SQL文, JSONに簡単変換(VBA)

はじめに 業務作業の中で、リストやCSV、Excelのデータを要件に基づいて大量に変換したい場合があります。ここでは、可能な限り簡単にデータの変換を行うためのExcel VBAのサンプルを紹介します。 ここで紹介するサンプルは、ちょっとした業務作業の効率化のために簡単に変更して使えることを目標にしており、可能な限り短く分かりやすいコードにしています。業務要件で求められるようなエラーハンドリング等の […]

C#でのUTF-8 BOMの処理仕様

UTF8/UTF-16/UTF-32等のUnicode系の符号化でBOMを使用することができますが、ここでは主にUTF-8を前提としたBOM処理について説明します。 ダイジェスト UTF-8ファイル(BOMあり/なし)に対して正常に処理できるクラス・メソッドの例を次に示します。 処理 処理対象のUTF-8ファイル BOMなし BOMあり ファイル読取り File.ReadAllText()Stre […]

テスト用のSQL(INSERT文)を自動生成する方法

概要 DB情報に基づいて自動的にダミーのSQLインサート文を生成するスクリプトです。 単体テストなどで、とりあえずDBに登録出来るインサート文を作るのが主要な目的です。 テーブルを操作するアプリをテストする場合、テストデータとして事前にレコードの登録が必要になる場合があります。 業務システムのテーブルはカラム数が数十になることもあり、カラムの毎にnull許容・非許容や型に応じて値を指定するのは大変 […]

SQLServerでCSVをBULK INSERTする方法

概要 BULK INSERTを使って、CSVファイルの内容をテーブルに一括登録するサンプルを紹介します。 動作確認で使用している環境は次の通りです。 OS Windows 10(64ビット) DB Microsoft SQL Server Developer 64ビット版(15.0.2095.3) 基本的な使用方法 サンプルの前提 m_employeeテーブルにCSVファイル(2行目以降)を一括登 […]

C#: パスワードハッシュ生成サンプル(PBKDF2)

概要 鍵導出関数であるPBKDF2を使って、「パスワードからAES-256等で使用可能なキー(256ビット)」(パスワードハッシュとしても使用可)を生成するサンプルを紹介します。 完全なサンプルコードはgithubで公開しています。 次の実行環境を使用しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17. […]

C#: AES-256を使った暗号化・復号化サンプル

概要 次の実行環境を使用しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17.1.3) 言語 C#(10.0) + .NET6 次のリファレンスを参考にしています。 .NET 暗号化モデル | Microsoft Docs 暗号化と復号化のためのキーの生成 | Microsoft Docs データの暗号化 […]