「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
多用途認証サイト(Multi-purpose Authentication Site)?の導入前の評価を行うためのファーストステップガイド。
(1) 前提 †
v00-50時点の前提環境 †
- Visual Studio 2015
- .NET Framework 4.6
- SQL Server (Express) (メモリストアの検証ではRDBは不要)
(2) 一式のダウンロードとセットアップ †
[Download ZIP]する。 †
以下から、[Download ZIP]する。
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/
- branchを選択してください。
- 現時点では、develop branchを選択(master branchにプッシュしていない)。
- 上級者は[Download ZIP]ではなく、git cloneでも可能。
localのFileSystem?に解凍する。 †
どこでもイイですが、ココではCドライブ直下に解凍した前提で説明を続けます。
一式のビルドする。 †
ビルド †
以下のバッチを実行して、多用途認証サイトをビルドします。
- 1_DeleteDir?.bat
- 2_DeleteFile?.bat
- 3_Build_Framework.bat
- 4_Build_Framework_Tool.bat
- 10_MultiPurposeAuthSite?.bat
プロキシ認証 †
- 若しくはVisual Studioから開いてビルドして下さい。
Visual Studioがプロキシ認証のCredential入力を要求してきます。
以下の項目を設定する。
Administrator(システム管理者のアカウント) †
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L93
システム管理者のアカウントを入力する(以下の要件を満たす必要がある)。
登録されるテストユーザのpassword †
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L109
外部ログインの追加時に XSRF の防止 †
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L140
適当なランダム文字列を設定する(下記のようなサイトを使用する)。
JWTの署名に使用する X.509 証明書 †
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L173
- ココでは、Cドライブ直下ということなので、以下のようにパスを設定する。
- C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\CreateClientsIdentity?\CreateClientsIdentity_RS256.pfx
- C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\CreateClientsIdentity?\CreateClientsIdentity_RS256.cer"
(4) 証明書をインストールする。 †
以下の位置にあるテスト用のJWT署名・検証用の証明書をインストールする。
- C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\CreateClientsIdentity?
*.cer †
CreateClientsIdentity_RS256.cer をダブルクリックし、
「信頼されたルート証明機関」にインストール
*.pfx †
CreateClientsIdentity_RS256.pfx をダブルクリックし、
証明書のインポートウィザードを使用してインストール(パスワードは "test")
(5) 疎通確認を行う。 †
- この設定状態ではメモリストアを使用しているため、デバッグを停止する度にユーザが初期化されるため注意する。
- 毎回、サインアップを繰り返すのが面倒な場合は、テストユーザのアカウントを使用すると良い。
サインアップ †
ヘッダに表示されているSignupボタンを押下してサインアップ画面に遷移してサインアップを行う。
#ref(): File not found: "Signup.png" at page "多用途認証サイトのファーストステップガイド"
E-mail confirmation †
E-mailアドレスの確認(E-mail confirmation)を行う。
確認用リンクの取得 †
この設定状態はデバッグモードなのでVisual Studioのデバッグ画面に確認用リンクが表示される。
※ 本番時は、E-mailに本、確認用リンクを含んだE-mailが送信される。
#ref(): File not found: "E-mailConfirmation.png" at page "多用途認証サイトのファーストステップガイド"
確認用リンクを貼り付けて実行 †
確認用リンクをブラウザのアドレスバーに貼り付けてEnter押下で以下の画面が表示される。
「ログインするにはここをクリックしてください。」を押下してログイン画面に遷移する。
#ref(): File not found: "E-mailConfirmed.png" at page "多用途認証サイトのファーストステップガイド"
サインイン †
ログイン画面でサインインする。
#ref(): File not found: "Signin.png" at page "多用途認証サイトのファーストステップガイド"
アカウント編集 †
- サインインした後、ヘッダに表示されている「こんにちは[メールアドレス]さん!」をクリックし、アカウント編集を行う。
#ref(): File not found: "Edit.png" at page "多用途認証サイトのファーストステップガイド"
- この設定状態では、SecurityStamp?機能が有効になっている。
この場合、編集後、幾らか時間が経過した後に自動的にサインアウトするので注意する。
パスワードの変更 †
- [パスワードの変更]リンクを押下して、[パスワードの変更]画面に遷移し、パスワード変更を行う。
- この設定状態では、SecurityStamp?機能が有効になっている。
この場合、編集後、幾らか時間が経過した後に自動的にサインアウトする。
- 再度サインインする際、変更後のパスワードでサインインできることを確認する。
電話番号の設定 †
- [電話番号の設定]リンクを押下して、[電話番号の設定]画面に遷移し、電話番号設定を行う。
- [電話番号の設定]を行うと、電話番号の確認(TelNum? confirmation)が行われる。
- この設定状態はデバッグモードなのでVisual Studioのデバッグ画面に確認コードが表示される。
※ 本番時は、携帯電話(スマホ)に本コードを含んだSMSが送信される。
#ref(): File not found: "TelNumConfirmation.png" at page "多用途認証サイトのファーストステップガイド"
- 確認コードを入力して実行すると以下の画面が表示される。
#ref(): File not found: "TelNumConfirmed.png" at page "多用途認証サイトのファーストステップガイド"
- 必要に応じて、[電話番号の削除]リンクを押下して、電話番号の削除をテストする。
2要素認証をオンにする †
- この状態で別のブラウザ(Chrome ---> Internet Explorer)を立ち上げてログインを試みる。
- すると、以下のような画面が表示されるので、好みの通知プロバイダを選択して送信を押下する。
(電子メールコードと電話コードから選択可能だが、電話コードは電話番号を入力しておかないと表示されない)
#ref(): File not found: "Two-FactorAuthentication.png" at page "多用途認証サイトのファーストステップガイド"
- 後は、前述の電話番号の設定のように、確認コードが送信されるので、
ソレを使用して2要素認証のプロセスを完了することで、別ブラウザでもサインインできるようになる。
パスワード・リセット †
- 次に、パスワード・リセットを行うので、ヘッダに表示されているSignoutボタンを押下して一度サインアウトを行う。
- ヘッダに表示されているSignupボタンを押下してサインアップ画面に遷移する。
- このサインアップ画面で、「パスワードを忘れた場合。」リンクを押下する。
- すると、以下の「パスワードを忘れましか?」画面に遷移するため、
自分のアカウントのE-mailのアドレスを入力して送信ボタンを押下する。
#ref(): File not found: "PasswordReset.png" at page "多用途認証サイトのファーストステップガイド"
- パスワード・リセットのプロセスの完了後、確認のためサインインが成功することを確認する。
アカウントのロックアウト †
- 次に、アカウントのロックアウトの確認を行うので、ヘッダに表示されているSignoutボタンを押下して一度サインアウトを行う。
#ref(): File not found: "AccountLockout.png" at page "多用途認証サイトのファーストステップガイド"
- アカウントのロックアウト中はサインインが失敗することを確認し、
指定時間経過後にアカウントのロックアウトが解除され、サインインが成功することを確認する。
(6) その他の機能の評価を行う。 †
外部ログイン †
app.configファイルを設定する。 †
企業内から社内プロキシ経由で評価する場合に、入力する。
OAuth確認 †
Authorization Codeグラント種別 †
Implicitグラント種別 †
Resource Owner Password Credentialsグラント種別 †
こちら?の手順に従ってテストを行う。
Client Credentialsグラント種別 †
こちら?の手順に従ってテストを行う。
オンライン決済 †
(7) ユーザストアをDBMSに変更するDBMS †
(8) Notification Providerをテストする †
Smtp †
SMS(Twilio) †
(9) オプションを変更してテストする †
UID=メアド以外 †
マルチテナント †
マルチテナントの場合 †
マルチテナントでない場合 †
(10) OAuth2の3分割テストを行う。 †
多用途認証サイトをOAuth2で登場する3つのサーバー機能に分割して動作検証をする。
- Client
- Authorization Server
- Resource Server
参考 †
- 多用途認証サイト(Multi-purpose Authentication Site)?
- 多用途認証サイトの動作検証?