セキュリティ

このセクションには、Windows のユニバーサル Windows プラットフォーム (UWP) アプリをセキュリティで保護されたアプリとしてビルドする方法に関する記事が含まれています。

はじめに

Windows または UWP での開発が初めての場合は、最初に「安全な Windows アプリの開発について」をご覧ください。 この初級レベルの記事では、アプリのセキュリティに関する考慮事項の概要と Windows で使用できるさまざまな機能について説明しています。

認証とユーザー ID

認証とユーザー ID に関するセクションには、ユーザーのログインや身元確認に関連するシナリオのためのチュートリアルが記載されています。 アプリでは、Web 認証ブローカーを使う簡単なシングル サインオン (SSO) から、高度なセキュリティで保護された 2 要素認証に至るまで、いくつかの方法でユーザー認証を行うことができます。

トピック 説明
資格情報保管ボックス この記事では、アプリで資格情報保管ボックスを使用して、ユーザーの資格情報を安全に保存および取得し、ユーザーの Microsoft アカウントを使用してデバイス間でローミングする方法について説明します。
指紋生体認証 この記事では、アプリに指紋生体認証を追加する方法について説明します。 特定の操作に対してユーザーの同意を得る必要がある場合は、指紋認証の要求を含めると、アプリのセキュリティを高めることができます。 たとえば、アプリ内購入を承認する前や制限されたリソースにアクセスする前に指紋認証を要求できます。 指紋認証は、Windows.Security.Credentials.UI 名前空間の UserConsentVerifier クラスを使って管理されます。
Windows Hello この記事では、Windows Hello テクノロジについて説明します。また、開発者がこのテクノロジを実装してアプリやバックエンド サービスを保護する方法についても説明します。 従来の資格情報の脅威を軽減するこれらのテクノロジの特定の機能に着目し、お使いのパッケージ Windows アプリに含まれるこれらのテクノロジの設計と展開の方法について説明します。
Windows Hello ログイン アプリの作成 従来のユーザー名とパスワードの認証システムの代わりに Windows Hello を使用するパッケージ Windows アプリを作成する方法に関する完全なチュートリアルのパート 1 です。
Windows Hello ログイン サービスの作成 パッケージ Windows アプリで、従来のユーザー名とパスワードの認証システムの代わりに Windows Hello を使用する方法に関する完全なチュートリアルのパート 2 です。
スマート カード このトピックでは、アプリでスマート カードを使ってユーザーをセキュリティで保護されたネットワーク サービスに接続する方法のほか、物理スマート カード リーダーにアクセスする方法、仮想スマート カードの作成方法、スマート カードとの通信方法、ユーザーの認証方法、ユーザーの PIN のリセット方法、スマート カードの取り外しや切断の方法などについて説明します。
アプリ間での証明書の共有 ユーザー ID とパスワードの組み合わせよりも安全な認証を必要とする UWP アプリでは、証明書を認証に使うことができます。 証明書認証は、ユーザーの認証時に高レベルの信頼性を提供します。 場合によっては、複数のアプリから複数のサービスのグループに対してユーザーを認証することがあります。 この記事では、1 つの証明書を使って複数のアプリを認証する方法と、セキュリティで保護された Web サービスにアクセスするための証明書をユーザーがインポートできる便利なコードを記述する方法について説明します。
コンパニオン (IoT) デバイスを使った Windows のロック解除 コンパニオン デバイスは、Windows と連携して動作し、ユーザー認証エクスペリエンスを強化できるデバイスです。 コンパニオン デバイス フレームワークを使用すると、Windows Hello を利用できない場合 (たとえば、Windows マシンに顔認証用のカメラや指紋リーダー デバイスがない場合) でも、コンパニオン デバイスによって優れたエクスペリエンスを提供できます。
Web アカウント マネージャー この記事では、Windows Web アカウント マネージャー API を使って、AccountsSettingsPane を表示し、ユニバーサル Windows プラットフォーム (UWP) アプリを外部の ID プロバイダー (Microsoft や Facebook など) に接続する方法について説明します。 ユーザーの Microsoft アカウントを使用するためにユーザーの許可を求める方法、アクセス トークンを取得する方法、アクセス トークンを使って基本的な操作 (プロファイル データの取得や OneDrive へのファイルのアップロードなど) を実行する方法を学習してください。
Web 認証ブローカー この記事では、OpenIDやOAuthなどの認証プロトコルを使用するオンラインIDプロバイダーにアプリを接続する方法について説明します。 AuthenticateAsync メソッドは、要求をオンライン ID プロバイダーに送信し、アプリがアクセスできるプロバイダー リソースを表すアクセス トークンを返します。

暗号化

暗号化についてのセクションでは、より複雑な暗号化に関するトピックが説明されています。

トピック 説明
証明書の概要 この記事では、アプリでの証明書の利用について説明します。 デジタル証明書は、公開キーを個人、コンピューター、組織にバインドするために、公開キーの暗号化で使われます。 バインドされた識別情報は、あるエンティティを別のエンティティに対して認証する際に最も頻繁に使われます。 たとえば、証明書は、Web サーバーをユーザーに対して、また、ユーザーを Web サーバーに対して認証するためによく使われます。 証明書要求を作成し、発行された証明書をインストールまたはインポートすることができます。 また、証明書階層で証明書を登録することもできます。
暗号化キー この記事では、標準のキー派生関数を使ってキーを派生させる方法、および対称キーと非対称キーを使ってコンテンツを暗号化する方法について説明します。
データ保護 この記事では、Windows.Security.Cryptography.DataProtection 名前空間の DataProtectionProvider クラスを使って、UWP アプリでデジタル データの暗号化と暗号化解除を行う方法について説明します。
MAC、ハッシュ、および署名 この記事では、メッセージ認証コード (MAC)、ハッシュ、署名をアプリで使って、メッセージの改ざんを検出する方法について説明します。
暗号化に関する輸出制限の順守 アプリでの暗号化が、Microsoft Store に登録されない可能性がある方法で使われていないかどうかを判断する場合に、この情報を利用してください。
一般的な暗号化タスク これらの記事では、乱数の生成、バッファーの比較、文字列とバイナリ データの間の変換、バイト配列間のコピー、データのエンコードとデコードなど、一般的な暗号化タスクのコード例が示されています。