Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • 汎用認証サイトのコンフィギュレーションを纏めた。
  • 本番稼働前にどのあたりに注意が必要か?などについても記載した。

web.config

connectionStrings

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L14

接続文字列を設定する。

globalization

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L32

カルチャ設定を設定する。

compilation debug

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L34

デバッグ・モードを設定する。

sessionState

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L68

タイムアウト値や、クラスタリング対応など、Session設定を行う。

customErrors

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Web.config#L114

エラーが画面の表示方法の変更。offはデバッグ時設定。

app.config

実行基盤系

FxLog4NetConfFile?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L22

ログ出力方法を設定する。

FxSessionTimeOutCheck?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L35

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

UserStoreType?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L85

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

デバッグモード(IsDebug?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L81

  • デバッグモードをOFF(false)に変更する。
  • 以下は、このフラグが影響を与える機能の一覧。

テスト・ユーザ登録

する(true)/しない(false)。

デバッグ・ログ出力

log4net & Debug.WriteLine?への併出(true)/log4net(false)

通知(Notification)

Debug.WriteLine?へ出力(true)/Notification Providerへ出力(false)

オンライン決済

オンライン決済のテスト機能を表示/実行する(false)/しない(true)。

動作モード

RequireUniqueEmail?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L117

UserName?がEmailかどうか。

  • 主に、
    • E-mailアドレスの確認(E-mail confirmation)の有無
      • サインアップ
      • UserName?変更
    • 外部ログイン

の動作に影響。

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

文面ファイル(国際化対応済)

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L109

文面ファイルのロケーションを設定する。

AdministratorUID/PWD

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L91

  • システム管理者のアカウントを入力する。
  • パスワード(AdministratorPWD)は稼働後(DB登録後)、削除して問題ない。

サインアップ、サインイン・サインアウト

ユーザ名

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L115

  • AllowOnlyAlphanumericUserNames?
    UserName?が英字と数字のみかどうか。
  • RequireUniqueEmail?
    との兼ね合いを考慮すること。

パスワード

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L128

  • RequiredLength?
    必要な文字列長(最小の文字列長)
  • RequireNonLetterOrDigit?
    英数以外の文字を必要とするかしないか。
  • RequireDigit?
    数字を必要とするかしないか。
  • RequireLowercase?
    小文字を必要とするかしないか。
  • RequireUppercase?
    大文字を必要とするかしないか。

サインアップ

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L118

  • DisplayAgreementScreen?
    約款画面を表示するかどうか。
  • EmailConfirmationTokenLifespanFromHours?
    メアド検証リンクの有効期限(時間)

認証チケット

ロックアウト

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L136

サインインにおいて、n 回入力ミスすると、n 分ロックアウト的な。

SecurityStamp?

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L152

  • SecurityStampのチェック間隔
  • DBアクセスが増えるので、本番環境では、少々、長めに設定すると良い。

Proxy

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L50

主に、開発時の利用を想定している。

インターネット・プロシキ

イントラネット・プロシキ

Intranet Proxy

デバッグ・プロキシ

Debug Proxy

ロックダウン

編集画面

  • AllowEditingUserName?
    UserName?編集の表示/実行を許可するかどうか
  • RequirePasswordInEditingUserNameAndEmail?
    UserName?とEmail編集時にパスワードを要求するかどうか
  • CanEditEmail?
    E-mailアドレス編集の表示/実行の、有効(true)/無効(false)
  • CanEditPhone?
    電話番号編集の表示/実行の、有効(true)/無効(false)
  • CanEdit2FA
    2要素認証設定の表示/実行の、有効(true)/無効(false)
  • CanEditUnstructuredData?
    非定型データ編集の表示/実行の、有効(true)/無効(false)
  • CanEditOAuth2Data
    OAuth2データ編集の表示/実行の、有効(true)/無効(false)

OAuth2関連

STS専用モード関連

各種外部サービスの設定

外部ログイン

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L173

ON/OFFのスイッチとキーを設定する。

  • 外部ログイン・サービスの管理画面
    • client_id、client_secretを取得する。
    • 合わせてここでRedirectエンドポイントの設定を行う必要がある。
      • これは、外部ログインライブラリ毎に設定方法が異なるので注意する。
      • 例えばMicrosoftアカウント + Microsoft.Owin.Security.MicrosoftAccount?の場合、以下の設定を行う。
        https://fqdnname:nnnnn/signin-microsoft
    • 詳しくは、コチラを参照ください。

Notification Provider

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L95

  • SMTPの設定
  • SMS (Twilio)の設定

オンライン決済サービス

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L65

本番用のkeyを設定する。

OAuth2

主要プロパティ

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)

各種サーバのEndpointへのUriを設定する。

  • Resource Server
    • 課金処理
    • プッシュ通知

JWT設定

ロックダウン

client_id、client_secret等

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

STS専用モード

STS専用モードで動作させるには、以下の3つの機能を全てロックダウンする。

https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/app.config#L345

サインアップ

サインアップ処理をロックダウンする。

ユーザ属性編集

ユーザ属性編集処理をロックダウンする。

ユーザ・ロール管理

ユーザ・ロール管理処理をロックダウンする。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-27 (月) 12:47:24 (1363d)