「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>汎用認証サイトのファーストステップガイド]] --[[汎用認証サイトのファーストステップガイド (1)]] --汎用認証サイトのファーストステップガイド (2) --[[汎用認証サイトのファーストステップガイド (3)]] *目次 [#n2ceecf2] #contents *概要 [#j82b4e07] [[汎用認証サイト(Multi-purpose Authentication Site)]]~ の導入前の評価を行うためのファーストステップガイド。 *(7) ユーザストアをメモリストアからDBMSに変更する [#zac33f46] **SQL Serverをインストールする。 [#q8e1feb0] SQL Server(Express可能)をインストールする。 **ユーザストアを作成する。 [#n597a8dc] 以下の場所にあるSQLを実行してユーザストアを作成する。~ C:\MultiPurposeAuthSite\root\files\resource\Sql\sqlserver -Create_UserStore.sql -Select_UserStore.sql(確認用) ** *.configファイルを設定する。 [#vea8c4a3] ***接続文字列 [#c0414ee9] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L15 Web.configファイルのconnectionStrings セクションにある~ ConnectionString_SQLパラメタに設定されている~ SQL Serverへの接続文字列を環境に合わせて変更する。 ***永続化モード [#w0b90d63] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L88 app.configファイルに設定されているUserStoreType を "mem" ---> "sql" に変更する。 **永続化を確認する。 [#u54d55f5] 上記の設定が完了したら疎通確認として、~ サインアップ・サインイン・サインアウトを行う。 メモリストアと異なり、SQL Serverのモードでは、~ サインアップしたアカウント情報が永続化されるため、~ デバッグを停止してもアカウント情報が残ることを確認する。 *(8) Internet アクセス用のInternetProxyを設定する。 [#kfd3c5fb] 企業内から社内プロキシ経由で評価する場合に、~ Internetアクセス用のInternetProxyを設定する。 ** app.configファイルを設定する。 [#leb01720] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L50 -UseInternetProxy : true -InternetProxyURL : InternetProxyへのurlを入力 -Proxy credential --InternetProxyUID : InternetProxy認証のユーザID --InternetProxyPWD : InternetProxy認証のパスワード **InternetProxyを使用する機能。 [#s5bebf77] -[[外部ログイン>#jdc4943e]] -[[オンライン決済>#y0c8eb4e]] -[[Notification Provider - SMS(Twilio)>#k68177c5]] *(9) アカウント・ロールの管理 [#f0c1d26f] -アカウント・ロールの管理画面でアカウント・ロールの管理が可能。 -アカウント・ロールの管理画面には、権限のあるアカウントでアクセスする必要がある。 #ref(Administration.png,left,nowrap,管理画面への遷移) **ユーザ管理画面 [#c92e02df] -ユーザ管理画面では以下のようなユーザのCRUD操作が可能である。 -一覧には、*.configに指定した件数までしか表示されない。 -条件検索は、UserNameフィールドに対して中間一致のLike検索が行われる。 -E-mailアドレスの作成・変更の際のE-mailアドレスの確認(E-mail confirmation)は行われない。 #ref(UserAdministration.png,left,nowrap,ユーザ管理画面) **ロール管理画面 [#t607e661] ロール管理画面では以下のようなユーザのCRUD操作が可能である。 #ref(RoleAdministration.png,left,nowrap,ロール管理画面) *(10) 外部ログイン [#jdc4943e] -インターネット接続に問題がなければ、以下の設定で外部ログインが可能になる。 -企業内からテストをする場合は、 --[[社内プロキシ(Internet アクセス用のInternetProxy)の設定>#kfd3c5fb]]を行う。 --また、社内プロキシにフィルタリング機能がある場合、フィルタ解除の申請などが必要になることもある。 **app.configファイルを設定する。 [#fcfa7614] ***Microsoft [#d41dd6ec] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L147 -MicrosoftAccountAuthentication : true -以下の値は、[[ココ>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Identity%E3%81%AE%E5%A4%96%E9%83%A8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3#j12cae65]]を参考にして取得する。 --xxxxx ClientId : xxxx --xxxxx ClientSecret : xxxx -MicrosoftAccount側にエンドポイントの設定などを行う。 ***Google [#k596ace6] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L152 -GoogleAuthentication : true -以下の値は、[[ココ>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Identity%E3%81%AE%E5%A4%96%E9%83%A8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3#n8dd8918]]を参考にして取得する。 --xxxxx ClientId : xxxx --xxxxx ClientSecret : xxxx -Google側にエンドポイントの設定などを行う。 ***Facebook [#ke7e5bfe] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L157 -FacebookAuthentication : true -以下の値は、[[ココ>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Identity%E3%81%AE%E5%A4%96%E9%83%A8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3#lce246f9]]を参考にして取得する。 --xxxxx ClientId : xxxx --xxxxx ClientSecret : xxxx -Facebook側にエンドポイントの設定などを行う。 ※ 3.0.1のライブラリが動作しなくなっている模様、3.1.0にアップデートする必要がある。~ http://stackoverflow.com/questions/22364442/asp-net-mvc5-owin-facebook-authentication-suddenly-not-working **外部ログインをテストする。 [#e853f82c] ***サインアップ or ログイン画面に遷移する。 [#l55ec0e9] サインアップ or ログイン画面に遷移すると、以下のように、~ ソーシャルログイン部分ビューに外部ログインのボタンを確認できる。 #ref(ExternalLogin1.png,left,nowrap,外部ログイン1) ***外部のIdpにサインアップする。 [#n80372df] 以下は、[Microsoft]ボタンを選択し、マイクロソフトアカウントにサインアップするところ。 #ref(ExternalLogin2.png,left,nowrap,外部ログイン2) ***サインインを確認する。 [#lc3c3b1d] サインイン後、[[アカウント編集>汎用認証サイトのファーストステップガイド (1)#f41ac715]]などができることを確認する。 #ref(ExternalLogin3.png,left,nowrap,外部ログイン3) ***その他のテストケースを確認する。 [#c18e953e] 外部ログインには、その他、[[色々なテストケース>https://opentouryo.osscons.jp/index.php?%E5%A4%9A%E7%94%A8%E9%80%94%E8%AA%8D%E8%A8%BC%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E5%8B%95%E4%BD%9C%E6%A4%9C%E8%A8%BC#l4e00450]]がある。~ 必要に応じて、[[これらのテストケース>https://opentouryo.osscons.jp/index.php?%E5%A4%9A%E7%94%A8%E9%80%94%E8%AA%8D%E8%A8%BC%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E5%8B%95%E4%BD%9C%E6%A4%9C%E8%A8%BC#l4e00450]]を消化して動作確認を行う。 -ローカル・ログインを追加する。 -当該 外部ログイン無し状態で外部ログイン。~ ローカル・ログインが有り、外部ログインが無い状態で、新規の外部ログインを行う。 -当該 外部ログイン有り状態で外部ログイン。~ ローカル・ログインが有り、外部ログインも有る状態で、追加の外部ログインを行う。 *(11) オンライン決済 [#y0c8eb4e] -インターネット接続に問題がなければ、以下の設定でオンライン決済が可能になる。 -企業内からテストをする場合は、 --[[社内プロキシ(Internet アクセス用のInternetProxy)の設定>#kfd3c5fb]]を行う。 --また、社内プロキシにフィルタリング機能がある場合、フィルタ解除の申請などが必要になることもある。 -なお、オンライン決済の設定は --[[Stripe>#a3f14db3]]か --[[PAY.JP>#a3f14db3]]の >どちらか一方を設定する。 **Stripe [#a3f14db3] ***サインアップ・ログインを行う。 [#d2604592] Stripeへのサインアップ・ログインを行う。 https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Stripe#x4c2914d ***秘密鍵と公開鍵を取得する。 [#h0c4ccf0] テスト・モードの秘密鍵と公開鍵を取得する。 https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Stripe#md7319a7 ***app.configファイルを設定する。 [#o604eeee] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L71 -EnableStripe : true -Stripe_PK : (テスト環境の)公開鍵を設定 -Stripe_SK : (テスト環境の)秘密鍵を設定 **PAY.JP [#y81ab713] ***サインアップ・ログインを行う。 [#r5c210bb] PAY.JPへのサインアップ・ログインを行う。 https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PAY.JP#r2ac8044 ***秘密鍵と公開鍵を取得する。 [#o4df7224] テスト・モードの秘密鍵と公開鍵を取得する。 https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PAY.JP#k4b617b8 ***app.configファイルを設定する。 [#wa728842] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L75 -EnablePAYJP : true -PAYJP_PK : (テスト環境の)公開鍵を設定 -PAYJP_SK : (テスト環境の)秘密鍵を設定 **オンライン決済をテストする。 [#h5e65159] ***アカウント編集画面に遷移する。 [#tbd6c6d2] [支払元情報の設定]リンクを押下する。 #ref(OnlinePayment1.png,left,nowrap,オンライン決済1) ***テスト用カード情報を入力する。 [#n6d334d2] テスト用カード情報を入力して、[送信]ボタンを押下する #ref(OnlinePayment2.png,left,nowrap,オンライン決済2) ***テスト用の課金処理を行う。 [#za5f6e20] アカウント編集画面に遷移するので、[課金する]リンクを押下する。 #ref(OnlinePayment3.png,left,nowrap,オンライン決済3) ***ダッシュボードで課金を確認する。 [#ee1644b9] オンライン決済サービスにサインインし、ダッシュボード(テストモード)で課金を確認する。 #ref(OnlinePayment4.png,left,nowrap,オンライン決済4,60%) *(12) Notification Providerをテストする。 [#qcde93fc] 各Notification Providerにアクセス可能な環境でテストを行うこと。 **本番設定に変更する。 [#a22cb0cf] -通知処理を行う場合に、 --Visual Studioのデバッグ画面ではなく、 --Notification Providerを使用する場合、 >app.confgiの設定を本番設定に変更する必要がある。 -app.confgiの下記の設定を変更し、本番用の設定にする。 --https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L85 ---IsDebug : false --https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L88 ---[[UserStoreType : mem以外>#zac33f46]] **Smtp [#g4bf7146] 以下のSMTP設定を行う。 -https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L102 --SmtpHostName --SmtpPortNo --SmtpSSL --SmtpAccountUID --SmtpAccountPWD -以下は、smtp.gmail.comを使用する場合の設定例。 --SmtpHostName : smtp.gmail.com --SmtpPortNo : 587 --SmtpSSL : true --SmtpAccountUID : xxxx@gmail.com --SmtpAccountPWD : xxxxxxxxxxxxxx ***余談 [#uc055c84] -なお、認証エラー時は、[安全性の低いアプリの許可]を[有効]にする。 --Tech TIPS:メーラーからGmailへの接続時に~ 認証(パスワード)のエラーが生じる場合の対処方法 (1/2) - @IT~ http://www.atmarkit.co.jp/ait/articles/1409/03/news109.html -新しい、SMTPクライアントがリリースされた模様。 --MailKitが公式に.NETのSmtpClientを置き換えることを明らかにした。~ https://www.infoq.com/jp/news/2017/04/MailKit-MimeKit-Official --NuGet Gallery | MailKit~ https://www.nuget.org/packages/MailKit/ **SMS(Twilio) [#k68177c5] ***サインインしアカウント情報を取得 [#r027aa7a] -https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?SMS%E9%80%81%E4%BF%A1#refba7b9~ 以下の3つの情報を取得する。 --Twilio電話番号 --SID --Token ***以下のSMS(Twilio)設定を行う。 [#w5abc7a6] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L108 -TwilioAccountSid : xxxxxxxxxx -TwilioAuthToken : xxxxxxxxxx -TwilioFromPhoneNumber : xxxxxxxxxx **Notification Providerの動作を確認する。 [#k085de39] -サインアップ(E-mail confirmation)→電話番号登録などで、~ SMTPとSMSのNotification Providerの動作を確認する。 -なお、SMS(Twilio)の電話番号は、日本の国コードである+81~ から始まる「国際電話の電話番号」として入力する必要がある。 #ref(SMS(Twilio).png,left,nowrap,SMS(Twilio)の電話番号)