「[[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]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L25

ログ出力設定を確認する。

**FxSessionTimeOutCheck [#r0c8faf5]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L38

-Sessionのタイムアウト検出機能のON/OFFを確認する。
-企業向けビジネス・アプリケーションではON推奨だが、汎用認証サイトはOFFでも良い。

**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

-使用するユーザストアのストレージタイプを選択する。
-memの場合は、IsDebugがtrueの扱いになるので注意する。

**Multi-tenant [#s67e789e]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L91

動作が大きく異なるので初期から適切な方を選択してテストする。

**文面ファイル(国際化対応済) [#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認証チケット
-Cookie認証チケット~
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L143

-2要素認証 Cookie認証チケット
-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)の設定

***文面ファイル [#ac695c5c]
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L113

文面ファイルの内容を確認する。

***オンライン決済サービス [#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)

-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 テスト機能で使用している設定である。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS