「[[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#L14 接続文字列を設定する。 **globalization [#c3251560] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L32 カルチャ設定を設定する。 **compilation debug [#r438ba24] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L34 デバッグ・モードを設定する。 **sessionState [#h83f5629] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L68 タイムアウト値や、クラスタリング対応など、Session設定を行う。 **customErrors [#h932ec7b] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L114 エラーが画面の表示方法の変更。offはデバッグ時設定。 *[[app.config>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config]] [#oeecf4ea] **実行基盤系 [#u053234a] ***FxLog4NetConfFile [#hb74aaac] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L22 ログ出力方法を設定する。 ***FxSessionTimeOutCheck [#r0c8faf5] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L35 -Sessionのタイムアウト検出機能のON/OFFを設定する。 -企業向けビジネス・アプリケーションではON推奨だが、汎用認証サイトはOFFでも良い。 ***UserStoreType [#y8c5ea41] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L85 -使用するユーザストアのストレージタイプを選択する。 -memの場合は、IsDebugがtrueの扱いになるので注意する。 **デバッグモード(IsDebug) [#v443d7eb] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L81 -デバッグモードをOFF(false)に変更する。 -以下は、このフラグが影響を与える機能の一覧。 ***テスト・ユーザ登録 [#h8fa4979] する(true)/しない(false)。 ***デバッグ・ログ出力 [#rbc6dbec] log4net & Debug.WriteLineへの併出(true)/log4net(false) ***通知(Notification) [#d7ed4136] Debug.WriteLineへ出力(true)/Notification Providerへ出力(false) ***オンライン決済 [#j6b0915b] オンライン決済のテスト機能を表示/実行する(false)/しない(true)。 **動作モード [#m33c67d7] ***RequireUniqueEmail [#g813e54f] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L117 UserNameがEmailかどうか。 -主に、 --E-mailアドレスの確認(E-mail confirmation)の有無 ---サインアップ ---UserName変更 --外部ログイン >の動作に影響。 -動作が大きく異なるので初期から適切な方を選択してテストする。 **文面ファイル(国際化対応済) [#ac695c5c] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L109 文面ファイルのロケーションを設定する。 **AdministratorUID/PWD [#f07a2ca9] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L91 -システム管理者のアカウントを入力する。 -パスワード(AdministratorPWD)は稼働後(DB登録後)、削除して問題ない。 **サインアップ、サインイン・サインアウト [#z0487ecc] ***ユーザ名 [#oc6b5a08] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L115 -AllowOnlyAlphanumericUserNames~ UserNameが英字と数字のみかどうか。 -RequireUniqueEmail~ との兼ね合いを考慮すること。 ***パスワード [#pca79851] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L128 -RequiredLength~ 必要な文字列長(最小の文字列長) -RequireNonLetterOrDigit~ 英数以外の文字を必要とするかしないか。 -RequireDigit~ 数字を必要とするかしないか。 -RequireLowercase~ 小文字を必要とするかしないか。 -RequireUppercase~ 大文字を必要とするかしないか。 ***サインアップ [#w95fdbe6] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L118 -DisplayAgreementScreen~ 約款画面を表示するかどうか。 -EmailConfirmationTokenLifespanFromHours~ メアド検証リンクの有効期限(時間) ***認証チケット [#b8074534] -Cookie認証チケット~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L141 -2要素認証 Cookie認証チケット~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L146 ***ロックアウト [#p523874d] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L136 サインインにおいて、n 回入力ミスすると、n 分ロックアウト的な。 ***SecurityStamp [#v4691803] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L152 -[[SecurityStamp>汎用認証サイト(Multi-purpose Authentication Site)#v14a6a69]]のチェック間隔 -DBアクセスが増えるので、本番環境では、少々、長めに設定すると良い。 **Proxy [#eaae3b42] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L50 主に、開発時の利用を想定している。 ***インターネット・プロシキ [#be5508d9] -Internet Proxy~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L47 ***イントラネット・プロシキ [#b61e59b5] Intranet Proxy~ ***デバッグ・プロキシ [#t05871af] Debug Proxy~ **ロックダウン [#ca5ed913] ***編集画面 [#b233454c] -UserName~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L115 --AllowEditingUserName~ UserName編集の表示/実行を許可するかどうか --RequirePasswordInEditingUserNameAndEmail~ UserNameとEmail編集時にパスワードを要求するかどうか -その他~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L155 --CanEditEmail~ E-mailアドレス編集の表示/実行の、有効(true)/無効(false) --CanEditPhone~ 電話番号編集の表示/実行の、有効(true)/無効(false) --CanEdit2FA~ 2要素認証設定の表示/実行の、有効(true)/無効(false) --CanEditUnstructuredData~ 非定型データ編集の表示/実行の、有効(true)/無効(false) --CanEditOAuth2Data~ OAuth2データ編集の表示/実行の、有効(true)/無効(false) ***[[OAuth2関連>#u005bea7]] [#iea19e2f] ***[[STS専用モード関連>#ja5926d6]] [#bae8f855] **各種外部サービスの設定 [#m101831e] ***外部ログイン [#uc4663b1] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L173 ON/OFFのスイッチとキーを設定する。 -SaltParameter --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 --詳しくは、[[コチラ>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#j7ec63cb]]を参照ください。 ***Notification Provider [#f546ce4b] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L95 -SMTPの設定 -SMS (Twilio)の設定 ***オンライン決済サービス [#p10405d7] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L65 本番用のkeyを設定する。 **OAuth2 [#ibb02bb6] ***主要プロパティ [#u416bc18] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L199 -Token --OAuth2AccessTokenExpireTimeSpanFromMinutes~ Access Tokenの有効期間(分) --OAuth2RefreshTokenExpireTimeSpanFromDays~ Refresh Tokenの有効期間(日) --OidcIdTokenExpireTimeSpanFromMinutes~ ID Tokenの有効期間(分) -CIBA --CibaExpireTimeSpanFromSeconds~ CIBA要求の有効期間(秒) --CibaPollingIntervalSeconds~ CIBA要求に対する回答のポーリング(秒) ***ServerUri(Endpoint) [#se5f4174] 各種サーバのEndpointへのUriを設定する。 -Authorization Server~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L225 --Authorizeエンドポイント(OAuth2/OIDC & SAML) --Tokenエンドポイント --UserInfoエンドポイント --Revokeエンドポイント --Introspectエンドポイント --CIBAエンドポイント ---CibaAuthorize ---CibaPushResult -Resource Server --課金処理 --プッシュ通知 -Client~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L262 --Redirectエンドポイント(OAuth2/OIDC & SAML) ***JWT設定 [#k8279ce6] -IssuerId --iss claimに格納される、適切なIssuerId(Uri形式)を設定する。 --https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L200 -公開鍵(X.509 or JWK) --必要に応じて、本番環境にふさわしい公開鍵に変更する。 --https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L207 ***ロックダウン [#u005bea7] -Grant Type~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L214 --EnableAuthorizationCodeGrantType --EnableImplicitGrantType --EnableResourceOwnerPasswordCredentialsGrantType --EnableClientCredentialsGrantType --EnableJwtBearerTokenFlowGrantType --EnableCibaGrantType -Refresh Tokenの機能~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L221 ***client_id、client_secret等 [#v637e44e] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L278 -ここのclient_id、client_secretの乱数を、外部に漏洩していない値に更新する。~ 乱数は、CreateClientsIdentity.exeツールを使用して生成することができる。 https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L370 -テスト・クライアントに対応する設定。~ https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L370 **STS専用モード [#ja5926d6] STS専用モードで動作させるには、以下の3つの機能を全てロックダウンする。 https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L345 ***サインアップ [#d4659ddd] サインアップ処理をロックダウンする。 ***ユーザ属性編集 [#k9ddc4a9] ユーザ属性編集処理をロックダウンする。 ***ユーザ・ロール管理 [#ma315993] ユーザ・ロール管理処理をロックダウンする。 IP:210.234.63.131 TIME:"2020-07-27 (月) 12:47:24" REFERER:"https://opentouryo.osscons.jp/index.php?cmd=edit&page=%E6%B1%8E%E7%94%A8%E8%AA%8D%E8%A8%BC%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%AE%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"