Open tsutomushinya opened 5 years ago
クローズ誤り、やっぱ復活
テスト投稿 devhublink_20190926.xlsx
issues | 担当 | 作業概要 | 作業 | 規模 | 予定工数(日) | 不確定要素○(あり) | 状態 |
---|---|---|---|---|---|---|---|
JxW & TAO & SI | 確認作業 | アーキテクチャ範囲確認 | 小 | 1〜3 | |||
SI | 資産 準備 | ソース取込み&ベータパッケージ (1次申請分) | 大 | 6以上 | ○ | ||
JxW & SI | 資産準備 | 【Apex / Visualforce パッケージ】スキャン(Checkmarx) | 小 | 1〜3 | |||
SI | 資産準備 | 【Apex / Visualforce パッケージ】スキャン(Checkmarx)結果確認 | - | 不明 | ○ | ||
JxW & TAO | 資産準備 | 【APIエンドポイント】(未定。いずれ決定) | - | 不明 | ○ | ||
JxW & TAO | 資産準備 | 【モバイルアプリ】(未定。いずれ決定) | - | 不明 | ○ | ||
SI | 資産準備 | ベータから管理パッケージへ昇格 (1次申請分) | 小 | 1〜3 | |||
SI | 資産準備 | Salesforceテスト環境 | 中 | 4〜6 | |||
SI | 資産準備 | セキュリティレビューチームの方向付けに役立つ基本的なアプリの使用手順 | 中 | 4〜6 | ○ | ||
JxW & SI | 確認作業 | ビジネスプランの承認の状態確認 | 小 | 1〜3 | |||
JxW & SI | 事前作業 | 【AppExchange での公開】パッケージ化する組織を AppExchange へ接続する | 小 | 1〜3 | |||
JxW & SI | 事前作業 | 【AppExchange での公開】プロバイダプロファイルの作成または編集 | 小 | 1〜3 | |||
JxW & SI | 事前作業 | 【AppExchange での公開】AppExchange リストを作成または編集する | 中 | 4〜6 | ○ | ||
JxW & SI | 事前作業 | 【AppExchange での公開】AppExchange リストにビジネスプランを追加する | 小 | 1〜3 | |||
JxW & Salesforce | 事前作業 | 【AppExchange での公開】AppExchange リストにビジネスプランを追加する (SF連絡) | - | 不明 | ○ | ||
JxW & SI | 事前作業 | 【AppExchange での公開】パッケージを登録しライセンス設定を選択する | 小 | 1〜3 | |||
JxW & SI | 事前作業 | 【AppExchange での公開】リストのセキュリティレビューを申請する | 小 | 1〜3 | |||
JxW & SI | 資産準備 | アプリをLightning対応として自己認証する | 小 | 1〜3 | |||
JxW & SI | 申請 | 【セキュリティレビューウィザード】申請 | 中 | 4〜6 | |||
JxW & Salesforce | 申請 | 【セキュリティレビューウィザード】申請 (SF連絡) | 小 | 1〜3 | ○ | ||
JxW & Salesforce | レビュー | レビュープロセス | - | 不明 |
アーキテクチャの範囲確認
申請データ必要なもの
申請データ | Salesforce ネイティブソリューション | Lightning コンポーネントを使用する Salesforce ネイティブソリューション | 外部の Web アプリケーションまたはサービスを使用するソリューション | モバイルクライアントを使用するソリューション | API のみ | Marketing Cloud アプリケーション |
---|---|---|---|---|---|---|
Salesforce Developer Edition 組織 | ★ | X | X | X | X | |
認証が必要な外部コンポーネントの URL およびログイン情報 | ? | ? | X | |||
Developer Edition 組織にインストールされる管理パッケージ | ★ | X | X | X | ||
Checkmarx レポート | ★ | X | X | X | ||
Zap または Chimera スキャンレポート | ? | ? | X | X | ||
偽陽性に関するドキュメント (該当する場合) | ★ | X | ? | ? | X | X |
商品に関するドキュメント | ★ | X | ? | ? | X | |
インストールリンクまたはファイルがあるプラットフォーム | ? | |||||
Marketing Cloud 環境へのログイン情報 | X |
アーキテクチャ | 1次申請対象/対象外 |
---|---|
Salesforce ネイティブソリューション | 対象 |
Lightning コンポーネントを使用する Salesforce ネイティブソリューション | 対象外 |
外部の Web アプリケーションまたはサービスを使用するソリューション | 対象外? |
モバイルクライアントを使用するソリューション | 対象外? |
API のみ | 対象外 |
Marketing Cloud アプリケーション | 対象外 |
【範囲確認 ①】
【範囲確認 ②】
法人番号検索について 法人検索で利用していたカスタム設定(TicketConfig__c)の Arround_Server_UrlによるAPIアクセスは行われるかどうか。 (10月検収時点で必須項目のためアプリ構成に含まれている状態) APIアクセスが必要な場合は「APIエンドポイント」の資料準備が必要。
外部システム連携のイメージ例
【範囲確認 ③】
念のため確認。 iOSなどのネイティブモバイルアプリケーションなどが存在するか確認。
モバイルアプリ連携のイメージ例
アプリケーションアーキテクチャの参考
Force.comソースコード(Checkmarx)スキャナーの結果
・ パートナーセキュリティポータルからスキャナーにアクセス ・ クリーンな結果を表示するには、スキャンの前に問題を解決してください ・ 解決できないレポートの問題については、必ず別の誤検知文書で説明してください
オファリングの構成に応じて、以下の1つ以上のレポートを提供する必要があります。
開発またはパッケージング組織(組織)で実行されるApexおよびVisualforceコードのForce.com Security Code Scanner(Checkmarx)レポート。
Force.comソースコード(Checkmarx)スキャナーの結果
・ パートナーセキュリティポータルからスキャナーにアクセス ・ クリーンな結果を表示するには、スキャンの前に問題を解決してください ・ 解決できないレポートの問題については、必ず別の誤検知文書で説明してください
Webアプリケーションスキャナーの結果
・ このスキャンは、OWASP ZAP、Chimera、またはBurpを使用して実行できます ・ スキャンの前にできるだけ多くの問題を解決して、きれいな結果を表示します ・ 未解決の高レベルの情報以外の問題については、付随する誤検知文書を必ず含めてください
Chimeraを利用する場合について、、、
セキュリティレビューチームがSalesforce以外の統合をテストするために必要な認証資格情報
・ アカウントまたはAPIキーをテストするために必要なユーザー名やパスワードを共有してください
APIドキュメント
・ サンプルAPIコールアウトを含むドキュメントを作成してください(すべてのヘッダー値のHTTPリクエストとレスポンス) ・ または、オンラインでAPIドキュメントを公開している場合は、代わりにそのリンクを提供できます
Webアプリケーションスキャナーの結果
・ このスキャンは、OWASP ZAP、Chimera、またはBurpを使用して実行できます ・ スキャンの前にできるだけ多くの問題を解決して、きれいな結果を表示します ・ 未解決の高レベルの情報以外の問題については、付随する誤検知文書を必ず含めてください
モバイルアプリまたはクライアントアプリをスキャンする場合について、、、
セキュリティレビューチームがSalesforce以外の統合をテストするために必要な認証資格情報
・ アカウントまたはAPIキーをテストするために必要なユーザー名やパスワードを共有してください
Apple App StoreまたはGoogle Play StoreからAndroidおよび/またはiOSアプリをダウンロードするためのリンク
・ 利用できない場合は、モバイルアプリケーションをテストできるように、TestFlightアクセスやその他のダウンロードリンクを提供してください
Salesforceテスト環境
・ Environment HubまたはこちらからDeveloper Edition組織を作成します ・ 組織に管理パッケージをインストールする ・ テストデータの入力 ・ 管理者レベルのユーザーに資格情報を提供する ・ パッケージにLightningが含まれる場合は、私のドメインを有効にします
セキュリティレビューチームの方向付けに役立つ基本的なアプリの使用手順
セキュリティレビューでよくある指摘事項と対応例を事前に確認対応 AppExchange セキュリティレビュー攻略<抜粋 2.よくある指摘事項と対応例 b)FAQ>
Q.外部アプリケーションの情報がありません
例 1. After you've logged in, click the Accounts tab. 2. Click New. 3. Add account details. and click Save.
1.ログイン後、クリックします [アカウント]タブ。 2.「新規」をクリックします。 3.アカウントの詳細を追加します。 [保存]をクリックします。
Q.アプリの操作ドキュメント(英語)を添付してください
アーキテクチャの範囲確認で「APIエンドポイント」など該当した場合、 構成内容把握のためキャッチアップ必要になりそう。その時は別途工数必要そう。
AppExchange(ISV)セキュリティレビューに必要なテスト情報 3.ドキュメント ・Salesforce、外部Webアプリケーション、クライアント/モバイルコンポーネントなど、 オファリングのデータフロー全体内のすべての統合ポイントを説明します。 また、統合ポイント間で使用される認証/承認の方法にも注意してください。
・Webアプリケーション、Webサービス、またはSalesforce外部の
クライアント/モバイルアプリケーションで送受信されるSalesforceデータ (カスタム/標準オブジェクト、カスタムフィールド、資格情報など)を説明します。 このデータのエンドツーエンドのデータフローと外部ストレージについて説明してください。・使用する技術の説明(アプリケーションフレームワーク、プログラミング言語、 クライアント側の技術(Flash、Silverlightなど)、データベースの種類)
参考サイト
製品のセキュリティレビューを申請するときの重要な前提条件は、Salesforce からビジネスプランの承認を得ることです。
まず公開コンソール周りの現状をJxWさんと確認しておく。
「AppExchange での製品の公開」セクションにある手順を実行
1.リストがアプリケーションまたはコンポーネントの場合、パッケージ化する組織を AppExchange に接続します。
備忘memo
「AppExchange での製品の公開」セクションにある手順を実行
2.プロバイダプロファイルを作成します。
「AppExchange での製品の公開」セクションにある手順を実行
4.リストを作成します。
- ひとまず、ビジネスプランの承認を行いたいのでリスト作成のみとする。
必要に応じて各タブの内容を入力・編集を行う進め方で進める。
- リストの内容を埋める場合、JxWさんの方で決める内容(価格、メディア)などが
現時点で明確になっていない要素があるので工数増になる可能性あり。
備忘memo
各タブmemo(基本的にJxWさんのビジネス的な意向をもとに入力して頂く。価格など)
タブ | 設定について | メモ |
---|---|---|
Business Plan (ビジネスプラン) | 必要 | 3点(ビジネスの詳細、製品アーキテクチャ、コンプライアンス認定)入力して承認申請。 |
Text (テキスト) | 必要 | 入力フォームのガイドに従って入力。 |
Media (メディア) | 必要 | AppExchangに公開される内容。どこまでブランディングするかJxWさんの意向要確認。 |
App (アプリケーション) | 必要 | 入力フォームのガイドに従って入力。 |
Component (コンポーネント) | 不要 | 特段設定しない想定。 |
Trials (トライアル) | 不要 | 特段設定しない想定。 |
Leads (リード) | 不要 | リード収集のためにWeb-to-リードの環境設定が必要な模様。 |
Pricing (価格設定) | 必要 | 入力フォームのガイドに従って入力。 |
Service Offering (サービス製品) | 不要 | コンサルティングサービスではない。 |
Pricing (価格設定)について
JxWさんから有料で製品を販売すると伺っているため、有料を選択する想定。
有料、Checkoutを使用 AppExchange Checkoutを使用してこのアプリを販売します。 Paid, using Checkout Sell this app using AppExchange Checkout.
- パートナー種別がISVforceパートナーであり、 Checkoutの諸々要件満たしていればこちらを選択。 (顧客は、クレジットカードや銀行支払を使用して、AppExchange ソリューションをリストから直接購入できます。)
- Checkout を使用した支払いの管理について学びます
有料、チェックアウトなし 独自の支払いインフラストラクチャを使用してこのアプリを販売します。 Paid, without Checkout Sell this app using your own payment infrastructure.
- パートナー種別がOEMパートナー(ISVforceパートナーも可)や、 Checkoutの諸々要件満たしていない場合はこちらを選択。
- Channel Order App の使用開始
App (アプリケーション)について
1.公開コンソールから、[Listings (リスト)] タブをクリックします。 2.各自の製品リストをクリックします。 3.[App (アプリケーション)] をクリックします。
「AppExchange での製品の公開」セクションにある手順を実行
5.リストがアプリケーションまたはコンポーネントの場合、ビジネスプランのレビューを申請します。
- AppExchange リストにビジネスプランを追加する
- Salesforce から連絡くる件については別issuesへ切り出し。 [Submit for Approval (承認申請)] をクリックできたらこのissuesはクローズ。
備忘memo
意図した価格設定モデルが不明な場合は、「チェックアウトせずに有料」を選択してください。 これは、AppExchangeチームによるビジネスプランのレビュー後、オンボーディングプロセスの後半で変更できます。
3.PREPARE SOLUTION DOCUMENTATION 2.Submit Listing Price Information 〜省略〜 If you are unsure of your intended pricing model, please select “paid, without Checkout.” This can be modified later in the onboarding process once your Business Plan has been reviewed by the AppExchange team. 〜省略〜
ビジネスプランの申請後、パートナーシップについて話し合うために Salesforce から連絡があります。プランの承認状況は [Business Plan (ビジネスプラン)] タブで確認できます。
「AppExchange での製品の公開」セクションにある手順を実行
「AppExchange での公開」手順の中に記載されていないが、 セクションの中に含まれているので一応、下記を実施。(後追いの設定でも良さそう)
備忘memo
「AppExchange での製品の公開」セクションにある手順を実行
6.リストがアプリケーションまたはコンポーネントの場合、パッケージのセキュリティレビューを申請します。
- リストのセキュリティレビューを申請する アプリケーションまたはコンポーネントのリストのレビューを申請する 1.パートナーコミュニティにログインします。 2.[Publishing (公開)] ページで、[Packages (パッケージ)] タブをクリックします。 3.申請するパッケージを見つけ、[Start Review (レビューを開始)] をクリックします。 4.セキュリティレビューウィザードの手順に従って、申請を完了します。
パートナー事業部チームのメンバーから 2 日以内に次の手順について連絡があります。
- 上記4のセキュリティレビューウィザードの手順の流れは別issuesへ切り出し。 そちらで対応するので、[Start Review (レビューを開始)] をクリックできたら このissuesはクローズ。
セキュリティレビューウィザードでは1〜8のステップを対応してレビュー申請
1.Preparation (準備) 2.General Information (一般情報) 3.Policies and Certifications (ポリシーと証明書) 4.Components (コンポーネント) 5.Test Environments (テスト環境) 6.Reports (レポート) 7.Review Details (レビューの詳細) 8.Payment (支払)
下記トレイルサイトのイメージを参考に各ステップを対応。 (補足が必要そうな内容については下記issues内の【補足】イメージを参照)
レビューの開始 セキュリティレビューの申請プロセスは、パートナーコミュニティの公開コンソールから開始します。
【補足】4.Components (コンポーネント)
【補足】5.Test Environments (テスト環境)
【補足】6.Reports (レポート)
アプリケーションまたはコンポーネントのリストのレビューを申請する 1.パートナーコミュニティにログインします。 2.[Publishing (公開)] ページで、[Packages (パッケージ)] タブをクリックします。 3.申請するパッケージを見つけ、[Start Review (レビューを開始)] をクリックします。 4.セキュリティレビューウィザードの手順に従って、申請を完了します。
パートナー事業部チームのメンバーから 2 日以内に次の手順について連絡があります。
セキュリティレビュー申請ガイド (2016年7月4日版)<抜粋 17ページ>
申請が完了しますと通常2営業日以内にSalesforce.comより セキュリティレビュー費用の見積書兼注文書を添付した形で、パートナーコ ミュニティのケースよりご連絡させていただきます。
なお、無償アプリの場合は連絡をいたしませんので予めご了承ください。 見積書兼注文書へご記入・押印の上、上記ケースへの添付にてご提出ください。なお、本紙の郵送は不要です。 弊社にて書類を受領後、受付完了の旨をケースコメントにてご連絡させていただきます。 セキュリティレビューの期間は受付完了から5~7週間前後でセキュリティレビューの結果をメールにてご案内させていただきます。
AppExchange セキュリティレビュー攻略<抜粋 10ページ>
3. 結果は一般情報に入力のメールアドレスおよび弊社登録の取引先責任者情報に通知されます。
申請されました! 申請に不備があれば、セキュリティレビューチームから連絡があります。 すべて揃った時点で、製品がセキュリティレビューの順番待ちであることを通知するメールが届きます。
Salesforce からJxWさんに連絡くる。
申請されました! 製品のレビュープロセスには通常 6 ~ 8 週間かかります。 製品セキュリティチームのレビューが終了すると、検出された問題をリストしたレポートが送信されます。 何ら問題がなければ、製品が承認されます。
Salesforce からJxWさんに連絡くる。
ご確認ありがとうございます。 表示されていない件、承知致しました。
ビジネスプランの承認については、 下記ISVforceガイド資料などのイメージのように、 セキュリティレビュー申請する前の段階で対応しておく必要があるようです。
承認状態が表示されていないところを考えると おそらく、ビジネスプランの承認がされていない状態だと思われますので、 下記「アプリケーションのセキュリティレビューの申請」の内容から遷移した 「AppExchange での公開」の手順を順次、対応できるものから進めたいと 考えておりますがいかかでしょうか。
【たたき 書き】
> git log --oneline -n 3
b9b5fbe (HEAD -> tickets_2gp_proto, origin/deploy_de_org, deploy_de_org) Modify ref #104
4c32737 (origin/latest_code) Apply latest apps.
2bc6f50 modify for package
【たたき 書き】
> sfdx force:source:push -u ScratchJxW_5 --json >& LOG_PUSH.json
"result": [
{
"error": "標準プロファイルの編集中は、外部データソースのアクセス追跡権限を変更できません。",
"fullName": "Admin",
"type": "Profile",
"filePath": "force-app/main/default/profiles/Admin.profile-meta.xml",
"problemType": "Error"
}
],
DEBUG|Field: PermissionsTraceXdsQueries Label: 外部データソースのアクセス追跡
標準プロファイルに対しての「 外部データソースのアクセス追跡」変更不可。 tickets-packageで利用想定ないので該当箇所「TraceXdsQueries」部分を削除。
スクラッチ組織への反映成功。
> sfdx force:source:push -u ScratchJxW_5 --json >& LOG_PUSH_2.json
【たたき 書き】
> sfdx force:package:list --targetdevhubusername JxWDevHub
=== Packages [1]
Namespace Prefix Name Id Alias Description Type
──────────────── ─────── ────────────────── ───── ─────────── ───────
tickets_jxw Tickets 0Ho6F0000004CZzSAM Managed
> sfdx force:package:version:list --targetdevhubusername JxWDevHub
No results found
sfdx force:package:create
で自動変更された状態に編集。{
"packageDirectories": [
{
"path": "force-app",
"default": true,
"package": "Tickets",
"versionName": "ver 0.1",
"versionNumber": "0.1.0.NEXT"
}
],
"namespace": "tickets_jxw",
"sfdcLoginUrl": "https://login.salesforce.com",
"sourceApiVersion": "46.0",
"packageAliases": {
"Tickets": "0Ho6F0000004CZzSAM"
}
}
> sfdx force:package:version:create --package "Tickets" --installationkeybypass --wait 10 -v JxWDevHub
Request in progress. Sleeping 30 seconds. Will wait a total of 600 more seconds before timing out. Current Status='Queued'
Request in progress. Sleeping 30 seconds. Will wait a total of 570 more seconds before timing out. Current Status='Initializing'
Request in progress. Sleeping 30 seconds. Will wait a total of 540 more seconds before timing out. Current Status='Verifying metadata'
ERROR running force:package:version:create: 予期せぬエラーが発生しました。Salesforce のカスタマーサポートに連絡して、次のエラー コードをお知らせください: 1075835861-10233 (-1041029690)
・問題箇所特定 Apex 共有の理由は組織内で一意にする必要あるが、現状、理由名称が重複しているオブジェクトが 存在し、片方の理由名称を別名に変更することでベータパッケージ作成が成功。 ※ 別名は検証を行う上で暫定的に変更 ※ 別名変更により影響するapex classも同様に修正
Apex 共有の理由の名前を入力します。この名前は、API および Apex で理由を参照するときに使用します。この名前は、アンダースコアと英数字のみを使用でき、組織内で一意にする必要があります。
> git status -sb
## tickets_2gp_proto...origin/tickets_2gp_proto
M force-app/main/default/classes/domain/model/ModelMyNote.cls
D force-app/main/default/objects/MyNote__c/sharingReasons/Ticket__c.sharingReason-meta.xml
M sfdx-project.json
?? force-app/main/default/objects/MyNote__c/sharingReasons/TicketAlias__c.sharingReason-meta.xml
> sfdx force:package:version:create --package "Tickets" --installationkeybypass --wait 10 -v JxWDevHub
Request in progress. Sleeping 30 seconds. Will wait a total of 600 more seconds before timing out. Current Status='Queued'
Request in progress. Sleeping 30 seconds. Will wait a total of 570 more seconds before timing out. Current Status='Verifying metadata'
Request in progress. Sleeping 30 seconds. Will wait a total of 30 more seconds before timing out. Current Status='Finalizing package version'
Package version creation request status is 'Finalizing package version'. Run "sfdx force:package:version:create:report -i 08c6F0000004Cu4QAE" to query for status.
sfdx force:package:version:create:report -i 08c6F0000004Cu4QAE -v JxWDevHub === Package Version Create Request NAME VALUE ───────────────────────────── ───────────────────────────────────────────────────────────────────────────────── ID 08c6F0000004Cu4QAE Status Success Package Id 0Ho6F0000004CZzSAM Package Version Id 05i6F0000004CcZQAU Subscriber Package Version Id 04t6F0000045ZNsQAM Tag Branch Created Date 2020-01-24 15:26 Installation URL https://login.salesforce.com/packaging/installPackage.apexp?p0=04t6F0000045ZNsQAM
sfdx force:package:version:list --targetdevhubusername JxWDevHub === Package Versions [1] Package Name Namespace Version Name Version Subscriber Package Version Id Alias Installation Key Released Branch ──────────── ─────────── ──────────── ─────── ───────────────────────────── ───── ──────────────── ──────── ────── Tickets tickets_jxw ver 0.1 0.1.0.1 04t6F0000045ZNsQAM false false
* 指定時間内にパッケージバージョン作成されなかったので sfdx-project.json ファイル編集。
・[参考サイト](https://developer.salesforce.com/docs/atlas.ja-jp.sfdx_dev.meta/sfdx_dev/sfdx_dev_dev2gp_create_pkg_ver.htm)
> sfdx-project.json ファイルがパッケージバージョン情報で自動的に更新されます。
時間内に作成されない場合は、プロジェクトファイルを手動で編集する必要があります。
{ "packageDirectories": [ { "path": "force-app", "default": true, "package": "Tickets", "versionName": "ver 0.1", "versionNumber": "0.1.0.NEXT" } ], "namespace": "tickets_jxw", "sfdcLoginUrl": "https://login.salesforce.com", "sourceApiVersion": "46.0", "packageAliases": { "Tickets": "0Ho6F0000004CZzSAM", "Tickets@0.1.0-1": "04t6F0000045ZNsQAM" } }
【たたき 書き】
> sfdx force:org:create -s -f ./config/project-scratch-def.json -d 10 -a ScratchJxW_6 -v JxWDevHub --nonamespace
> sfdx force:package:install --package "Tickets@0.1.0-1" --targetusername ScratchJxW_6 --wait 10 --publishwait 10
Waiting for the package install request to complete. Status = IN_PROGRESS
Successfully installed package [04t6F0000045ZNsQAM]
【たたき 書き】
Managed Second-Generation Packages for Salesforce Partners ※Partner Community ログイン必要、英語情報
・16ページ
Not yet supported - on the roadmap (ロードマップ上で未サポートの機能) ・ Push Upgrades (転送アップグレード) ・ Removal of components from a package (管理パッケージからコンポーネントの削除) ・ 100% metadata parity (100%メタデータカバー) ・ Parity with infrequently used features (使用頻度の低い機能) ・ Migration from 1GP to 2GP (1GPから2GPへの移行)
上記以外の機能に関しては1GPより機能がアップグレードされており、 新しいパッケージを立ち上げる新規のパートナーには2GPを推奨している。
・△△△の調査必要 ・◇◇◇への確認を依頼