データの制限
権限レベルの低い認証ユーザーは暗号化されたパスワードにアクセスできないようにする必要があります。これには、主に 2 つの方法があります。パスワードフィールドのみへのアクセスを制限する方法と、エンティティ全体へのアクセスを制限する方法です。
この制限をおこなうと、パスワードフィールドを削除できますが、すべてのユーザーがインターフェイスから外部アカウントにアクセスできるようになります。 詳しくは、このページを参照してください。
-
管理/設定/データスキーマ に移動します。
-
新しい スキーマの拡張 を作成します。
-
外部アカウント(extAccount)を選択します。
-
最後の画面で、新しい srcSchema を編集して、すべてのパスワードフィールドへのアクセスを制限できます。
メイン要素(
<element name="extAccount" ... >
)は、次の方法で置き換えることができます。<element name="extAccount"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> <element name="s3Account"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="awsSecret"/> </element> <element name="wapPush"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> <element name="mms"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> </element>
したがって、拡張された srcSchema は次のようになります。
<...> <element name="extAccount"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> <element name="s3Account"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="awsSecret"/> </element> <element name="wapPush"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> <element name="mms"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> </element> <...>
NOTE$(loginId) = 0 or $(login) = 'admin'
をhasNamedRight('admin')
に置き換えて、管理者権限を持つすべてのユーザーにこれらのパスワードを表示させることができます。
アクセス管理
アクセス管理は、セキュリティ強化の重要な部分です。 ここでは、主なベストプラクティスを紹介します。
- 十分なセキュリティグループを作成する
- 各オペレーターのアクセス権が適切であることを確認する
権限について詳しくは、この節を参照してください。
コーディングのガイドライン
Adobe Campaign(ワークフロー、JavaScript、JSSP など)で開発する場合、常に次のガイドラインに従います。
-
スクリプティング:SQL 文は使用しないようにします。文字列連結ではなく、パラメーター化関数を使用します。使用する SQL 関数を許可リストに追加して、SQL インジェクションを回避します。
-
データモデルの保護:ネームド権限を使用してオペレーターのアクションを制限し、システムフィルター(sysFilter)を追加します
-
Web アプリケーションへの captcha の追加:パブリックのランディングページと購読ページに captcha を追加します
詳しくは、Adobe Campaign Classic v7 ドキュメントを参照してください。