「[[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"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS