Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
皆様、こんにちは!今日はWindows ビジネスストアアプリのセキュリティ(認証・暗号化)について簡潔にまとめておきます。
ビジネスストアアプリのセキュリティ
基本はまず、先日のPrism for Windows Runtime のエントリーと、こちらのページにあるビジネスストアアプリの設計・開発に必要な要素をもう一度ご確認ください。
データアクセス部分実装、Web サービスによる公開実装、そしてWindows ストアアプリ連携については、Windows 8.1 業務アプリ開発ハンズオンセミナーで扱っていますが(1月2月開催分はこちら)、セキュリティについては時間の関係で扱っていません。今日はここについて簡単にまとめておきます。
1. ストアアプリの統合認証の方法
これは、よくご質問を戴く点です。Kerberos チケットについては、デスクトップアプリケーションと同じように渡せます。
デバイスがドメインに属していない場合、Windows は Active Directory のユーザ名とパスワードを入力させることになります。
実装するには Credential Pickerを利用します。
参考:Credential Picker Sample
https://code.msdn.microsoft.com/windowsapps/Credential-picker-sample-30fcba2e

2. アプリケーション証明書について
各アプリケーションは独自の証明書ストアを持ちます。
各 Windows ストアアプリには固有の証明書ストレージがあり、sharedUserCertificates を宣言して、スマートカード上の証明書とキーにアクセス可能です。
アプリケーションは証明書をデバイスのルート証明書にもストアに置けます。
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh465029.aspx
create/install/import/enroll 証明書
ここにあるクラスを利用します。
Windows.Security.Cryptography.Certificates 名前空間
3. 他要素認証について
スマートカードのサポート
Active Directory の認証情報同様、OS はカードと対応するPINをユーザに求めることになります。
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.security.credentials.passwordvault.aspx
4.シングルサインオン (Twitter, Facebook, Microsoft Account, etc.)について
Microsoft Accounts は Windows Live がベースとなります。
ここでも Windows がダイアログを表示し、アプリケーションが生のパスワードにアクセスすることを防止します。これについては、私も良く書きましたが、Mobile Services 等のサンプルを参照してください。Mobile Services 担当エバ→SDEになったNick Harrisが作ったものです。
https://code.msdn.microsoft.com/windowsapps/Authenticate-Account-827dd37b
5.暗号化について
ハッシュ、対称アルゴリズム、非対称アルゴリズムが利用可能です。
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh464964.aspx
アルゴリズムとキーについて
Windows.Security.Cryptography.Core 名前空間になります。
暗号化、署名、ハッシュ
対称キー、非対称キー
アルゴリズムプロバイダー:
HashAlgorithmProvider
MacAlgorithmProvider
SymmetricKeyAlgorithmProvider
AsymmetricKeyAlgorithmProvider
KeyDerivationAlgorithmProvider
以上です。それでは、また!
鈴木章太郎

