- 追加された行はこの色です。
- 削除された行はこの色です。
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>汎用認証サイト(Multi-purpose Authentication Site)]]
*目次 [#ud893c9c]
#contents
*概要 [#ab0b26ff]
-[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]のコンフィギュレーションを纏めた。
-本番稼働前にどのあたりに注意が必要か?などについても記載した。
*[[web.config>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config]] [#i3afc5aa]
**connectionStrings [#r1d90b3b]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config
接続文字列を確認する。
接続文字列を設定する。
**globalization [#c3251560]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L23
カルチャ設定を確認する。
カルチャ設定を設定する。
**compilation debug [#r438ba24]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L25
デバッグ・モードを確認する。
デバッグ・モードを設定する。
**sessionState [#h83f5629]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L55
タイムアウト値や、クラスタリング対応など、Session設定を行う。
**customErrors [#h932ec7b]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L101
エラーが画面の表示方法の変更。offはデバッグ時設定。
*[[app.config>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config]] [#oeecf4ea]
**FxLog4NetConfFile [#hb74aaac]
**実行基盤系 [#u053234a]
***FxLog4NetConfFile [#hb74aaac]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L25
ログ出力設定を確認する。
ログ出力方法を設定する。
**FxSessionTimeOutCheck [#r0c8faf5]
***FxSessionTimeOutCheck [#r0c8faf5]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L38
-Sessionのタイムアウト検出機能のON/OFFを確認する。
-Sessionのタイムアウト検出機能のON/OFFを設定する。
-企業向けビジネス・アプリケーションではON推奨だが、汎用認証サイトはOFFでも良い。
**IsDebug [#v443d7eb]
***UserStoreType [#y8c5ea41]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L88
-使用するユーザストアのストレージタイプを選択する。
-memの場合は、IsDebugがtrueの扱いになるので注意する。
**デバッグモード(IsDebug) [#v443d7eb]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L85
-デバッグモードをOFF(false)に変更する。
-以下は、このフラグが影響を与える機能の一覧。
***テスト・ユーザ登録 [#h8fa4979]
する(true)/しない(false)。
***デバッグ・ログ出力 [#rbc6dbec]
log4net & Debug.WriteLineへの併出(true)/log4net(false)
***通知(Notification) [#d7ed4136]
Debug.WriteLineへ出力(true)/Notification Providerへ出力(false)
***オンライン決済 [#j6b0915b]
オンライン決済のテスト機能を表示/実行する(false)/しない(true)。
**UserStoreType [#y8c5ea41]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L88
**動作モード [#m33c67d7]
-使用するユーザストアのストレージタイプを選択する。
-memの場合は、IsDebugがtrueの扱いになるので注意する。
**Multi-tenant [#s67e789e]
***Multi-tenant [#s67e789e]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L91
動作が大きく異なるので初期から適切な方を選択してテストする。
データのテナント分割と、オブジェクトのオーナーの考え方の導入~
(主に管理者アカウントが使用する管理画面の動作に影響)。
動作が大きく異なるので初期から適切な方を選択してテストする(詳しくは下記参照)。
-マルチテナント化していない場合、~
システム管理者だけが管理画面を使用可能。
--ユーザ管理
---管理者アカウント:システム管理者のみ
---オブジェクトのオーナー:システム管理者のみ
--ロール管理
---管理者アカウント:システム管理者のみ
---オブジェクトのオーナー:システム管理者のみ
-マルチテナント化している場合、~
管理画面ではテナント・データのみが管理対象になる。
--ユーザ管理
---管理者アカウント:システム管理者とサインアップ・ユーザ
---オブジェクトのオーナー:システム管理者とサインアップ・ユーザ
--ロール管理
---管理者アカウント:システム管理者とサインアップ・ユーザ
---オブジェクトのオーナー:システム管理者とサインアップ・ユーザ
***RequireUniqueEmail [#g813e54f]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L120
UserNameがEmailかどうか。
動作が大きく異なるので初期から適切な方を選択してテストする(詳しくは下記参照)。
-RequireUniqueEmail : true
--UserName = E-mailアドレス
--インターネット環境の標準の実装はこちら。
--E-mailアドレスでサインアップし、~
直ちにE-mailアドレスの確認(E-mail confirmation)を行う。
-RequireUniqueEmail : false
--UserName = 任意文字列
--ユーザストアを管理者が準備するエンプラ向き実装はこちら。
--E-mailアドレスの確認(E-mail confirmation)は不要
---サインアップで、E-mailアドレスが提供されないので、~
E-mailアドレスの確認(E-mail confirmation)が実質的に不可能。
---サインアップ画面を提供せず、管理者がアカウント(E-mailアドレス)を準備する。
---若しくは、サインアップ画面を提供し、"ユーザ名 @ サイトのドメイン"でメアドを準備するなどとする。
--外部ログインの場合
---サインアップ・サインインも可能ではある。
---しかし、基本的には"外部ログイン = OFF"だと考える。
**文面ファイル(国際化対応済) [#ac695c5c]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L113
文面ファイルの内容を確認する。
文面ファイルのロケーションを設定する。
**AdministratorUID/PWD [#f07a2ca9]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L97
-システム管理者のアカウントを入力する。
-パスワード(AdministratorPWD)は稼働後(DB登録後)、削除して問題ない。
**サインアップ、サインイン・サインアウト [#z0487ecc]
***ユーザ名 [#oc6b5a08]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L118
-AllowOnlyAlphanumericUserNames~
UserNameが英字と数字のみかどうか。
-RequireUniqueEmail~
UserNameがEmailかどうか。
との兼ね合いを考慮すること。
***パスワード [#pca79851]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L131
-RequiredLength~
必要な文字列長(最小の文字列長)
-RequireNonLetterOrDigit~
英数以外の文字を必要とするかしないか。
-RequireDigit~
数字を必要とするかしないか。
-RequireLowercase~
小文字を必要とするかしないか。
-RequireUppercase~
大文字を必要とするかしないか。
***サインアップ [#w95fdbe6]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L123
-DisplayAgreementScreen~
約款画面を表示するかどうか。
-EmailConfirmationTokenLifespanFromHours~
メアド検証リンクの有効期限(時間)
***認証チケット [#b8074534]
-Cookie認証チケット~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L143
-2要素認証 Cookie認証チケット~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L151
***ロックアウト [#p523874d]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L138
サインインにおいて、n 回入力ミスすると、n 分ロックアウト的な。
***SecurityStamp [#v4691803]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L155
-[[SecurityStamp>汎用認証サイト(Multi-purpose Authentication Site)#v14a6a69]]のチェック間隔
-DBアクセスが増えるので、本番環境では、少々、長めに設定すると良い。
**Proxy [#eaae3b42]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L50
主に、開発時の利用を想定している。
***Internet Proxy(インターネット・プロシキ) [#be5508d9]
***Intranet Proxy(イントラネット・プロシキ) [#b61e59b5]
***Debug Proxy(デバッグ・プロキシ) [#t05871af]
**ロックダウン [#ca5ed913]
***編集画面 [#b233454c]
-UserName~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L126
--AllowEditingUserName~
UserName編集の表示/実行を許可するかどうか
--RequirePasswordInEditingUserNameAndEmail~
UserNameとEmail編集時にパスワードを要求するかどうか
-その他~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L157
--CanEditEmail~
E-mailアドレス編集の表示/実行の有効(true)/無効(false)
--CanEditPhone~
電話番号編集の表示/実行の有効(true)/無効(false)
--CanEdit2FA~
2要素認証設定の表示/実行の有効(true)/無効(false)
--CanEditUnstructuredData~
非定型データ編集の表示/実行の有効(true)/無効(false)
--CanEditOAuth2Data~
OAuth2データ編集の表示/実行の有効(true)/無効(false)
***[[OAuth2関連>#u005bea7]] [#iea19e2f]
**各種外部サービスの設定 [#m101831e]
***外部ログイン [#uc4663b1]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L166
ON/OFFのスイッチとキーを設定する。
-XsrfKey
--asp.net mvc 5 - What is the XsrfKey used for and should I set the XsrfId to something else? - Stack Overflow~
http://stackoverflow.com/questions/32121504/what-is-the-xsrfkey-used-for-and-should-i-set-the-xsrfid-to-something-else
>XsrfKeyは、XSRF = CSRFを防ぐためのstateパラメタの生成に使用される。~
stateパラメタは暗号化によって生成されるので、XsrfKeyが露見することはない。~
従って、この値としても、リクエストの度に無作為な値を使用する必要はない。
-外部ログイン・サービスの管理画面
--client_id、client_secretを取得する。
--合わせてここでRedirectエンドポイントの設定を行う必要がある。
---これは、外部ログインライブラリ毎に設定方法が異なるので注意する。
---例えばMicrosoftアカウント + Microsoft.Owin.Security.MicrosoftAccountの場合、以下の設定を行う。
https://fqdnname:nnnnn/signin-microsoft
***Notification Provider [#f546ce4b]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L100
-SMTPの設定
-SMS (Twilio)の設定
***オンライン決済サービス [#p10405d7]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L70
本番用のkeyを設定する。
**OAuth2 [#ibb02bb6]
***EquipOAuthServer [#ffab7ab5]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L189
汎用認証サイト(IdP)にOAuth2のSTS機能を付加する(true)/しない(false)。
***プロパティ [#u416bc18]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L191
-AllowOAuthInsecureHttpEndpoints~
--HTTPを許可する(true)/しない(false)。
--なお、OAuth2は、HTTPSが推奨。
-OAuthAuthorizeEndpointCanDisplayErrors~
Authorize エンドポイントでエラーを表示する(true)/しない(false)。
-OAuthAccessTokenExpireTimeSpanFromMinutes~
Access Tokenの有効期間(分)
-OAuthRefreshTokenExpireTimeSpanFromDays~
Refresh Tokenの有効期間(日)
***ServerUri [#se5f4174]
各種サーバのEndpointへのUriを設定する。
-Authorization Server~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L211
-Resource Server~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L223
-Client~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#229
***JWT設定 [#k8279ce6]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L197
-EnableCustomTokenFormat
--AccessTokenのフォーマットを
---JWT形式にするか(true)
---ASP.NET Identity形式にするか(false)
--JWT形式を選択する意味。
---ResourcesServerはASP.NET Identityに依存しなくて良くなる。
---AccessToken(JWT)をJWT検証できるため、~
ClientはOAuth2の脆弱性を検知可能で、認証用途でより安全に使用可能。
-OAuthIssuerId~
iss claimに格納される、適切なIssuerId(Uri形式)を設定する。
-X.509 証明書~
必要に応じて、本番環境にふさわしいX.509証明書に変更する。
***ロックダウン [#u005bea7]
-Grant Type~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L205
--Resource Owner Credentials Grant Typeの有効(true)/無効(false)
--Client Credentials Grant Typeの有効(true)/無効(false)
-Refresh Tokenの機能~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L208
-OAuth2テスト用のRedirectエンドポイント~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L233
***client_id、client_secret [#v637e44e]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L242
-ここのclient_id、client_secretの乱数を、外部に漏洩していない値に更新する。~
乱数は、CreateClientsIdentity.exeツールを使用して生成することができる。
-なお、
--SelfClientは、汎用認証サイトのOAuth2 AccessToken取得機能で使用している設定である。
--TestClientは、汎用認証サイトのOAuth2 テスト機能で使用している設定である。