.NET Core(C#): privateフィールドの値の取得方法

テストコードの作成で、テスト対象のインスタンスのprivateフィールドの値を検証したい場合があります。 対象インスタンスの型を取得し、Type.GetField()でフィールドの定義であるFieldInfoをできます。このオブジェクトのFieldInfo.GetValue([対象インスタンス], [フィールド名])で値を取得できます。 Type.GetField()を実行する際、適切なフラグも指 […]

localhost(pfx)をPEM形式の証明書と鍵に変換

開発環境にて、Visual Studioのインストール時に追加されるlocalhostサーバ証明書(IIS Express Development Certificate)を、Apache httpdサーバで利用できるようにPEM形式に変換する方法を説明します。 前提 Windows 10環境で検証しています。 Visual Studio 2019のインストールで、ユーザの「信頼されたルール証明機 […]

デジタル証明書のエンコードと拡張子の違い

デジタル証明書の種類と拡張子の理解が曖昧だったので整理してみました。 証明書や鍵そのものは基本的にはバイナリデータです。 これらのデータは、X.509やPKCSで仕様化されています。 X.509: 公開鍵証明書の標準形式や証明書パス検証アルゴリズムなどを定めている。 PKCS: RSAセキュリティテスト社が公開した公開鍵暗号標準である。 証明書や鍵のファイルの拡張子は標準化されていませんが、次のよ […]

.NET Core(C#): JsonSerializer実践オプションとコンバータ

業務アプリの開発を想定したJsonSerializerの使い方とサンプルです。 概要 .NET Core 3.1の標準パッケージSystem.Text.Jsonに含まれるJsonSerializerを使って、クラス・プロパティの値をJSONに変換(シリアライズ)、JSONの値をクラス・プロパティに変換(デシリアライズ)する方法を説明します。 Visual Studio 2019 + .NET Co […]

.NET Core(C#): JsonSerializerの単純な使い方

JsonSerializerの基本的な使い方とサンプルを説明します。 概要 .NET Core 3.1の標準パッケージSystem.Text.Jsonに含まれるJsonSerializerを使って、クラス・プロパティの値をJSONに変換(シリアライズ)、JSONの値をクラス・プロパティに変換(デシリアライズ)する方法を説明します。 Visual Studio 2019 + .NET Core 3. […]

.NET Core: Microsoft.Graph.Authの正式版予定

.NET CoreでMicrosoft Graphを操作するために、Microsoft Graph API SDK(“Microsoft.Graph”パッケージ)の使用を考えています。このパッケージでは認証機能(認証プロバイダ)は提供しておらず、別途認証用のパッケージを使用するか独自に実装する必要があります。 マイクロソフトのサンプルや資料を見ると、「Microsoft G […]

C#: Graph API ユーザアカウント操作サンプル

概要 管理者がAzure AD B2Cのユーザアカウントの管理が行えるASP.NET Coreのアプリの開発を想定している。Azure AD B2Cユーザアカウントの作成や更新等の操作はMicrosoft Graphを使用する必要があり、その技術調査としてサンプルを作成しました。 .NET CoreでMicrosoft Graphを操作するためのライブラリとして、Microsoft Graph A […]

AzureAD B2Cユーザアカウントの操作方法(PowerShell)

PowerShellでAzure AD B2Cのユーザアカウントを操作する方法を説明します。 概要 AzureAD B2CのユーザアカウントをPowerShellで操作する方法を説明します。 拡張属性・カスタム属性を操作する方法も併せて説明します。 なお、拡張属性とカスタム属性については、こちらに纏めてみました。 PowerShellからAzureADを操作するためのモジュールはいくつかありますが […]

Azure AD B2Cの拡張属性とカスタム属性の違い

Azure AD B2Cのユーザアカウントを操作する際、拡張属性(ExtensionProperty)とカスタム属性(Custom Attribute)というキーワードがあり紛らわしい…ということで調べてみました。 「拡張属性」と「カスタム属性」の違い テナントで独自に定義した属性を「カスタム属性」、カスタム属性や非標準の属性をユーザアカウントに格納するための属性を「拡張属性」と呼びま […]

セッションタイムアウトの必要性

「セッションタイムアウトって何で必要なんですかね?」という問いがあった。 その人は「セッションデータの肥大化によるリソース枯渇や性能劣化を防止」という意見。 自分の場合、「それもあるかもしれないが、どちらかというとセキュリティ上の理由」という曖昧な回答。 というわけで調べてみました。 ダイジェスト セッションタイムアウトについてネットを調べると、 ほとんどはセキュリティの記事が出てくるので、主にセ […]