Anzeige

Spring'15 ISV様向け新機能紹介

Evangelist at Oracle Corporation Japan um Oracle Corporation Japan
16. Mar 2015
Anzeige

Más contenido relacionado

Presentaciones para ti(20)

Similar a Spring'15 ISV様向け新機能紹介(20)

Anzeige

Más de Kazuki Nakajima(20)

Último(20)

Anzeige

Spring'15 ISV様向け新機能紹介

  1. Spring’15 ISVパートナー様向け新機能紹介 株式会社セールスフォース・ドットコム テクニカルエバンジェリスト 中嶋 一樹
  2. • 環境ハブ • ブランチ開発組織 • 不要なコンポーネントの削除 • CORS(クロスオリジンリソースシェアリング) • Lightningプロセスビルダー • Lightningコンポーネント • Lightning Extension  このセミナーで紹介する新機能
  3. 環境ハブとは? ISVはパートナー開発組織、ライセンス管理組織、Trialforceソース組織など多くの組織を活用してアプリを開発していきま す。環境ハブはこれらの組織を作成し、シングルサインオンすることができる機能です。また、Usage Metricsといった他の ISV向け機能において環境ハブは必須となっており、appexchangeアプリを開発するにあたり欠かせない機能です。 環境 ハブ CRM for ISV組織 パートナー開発組織 テスト組織 Trialforceソース組織 組織を作成&シングルサインオン
  4. • 環境ハブはCRM for ISV組織(または元来利用しているSales Cloud組織)で有効化します。パートナーコミュニティからCRM for ISV組織の組織 IDを指定して有効化申請のケースを発行します。 環境ハブのセットアップ • システム管理者以外で環境ハブを使うユーザーには適切な権限を付与する必要があります。例えば、組織の作成や接続はおこなわせたくない が、各組織へシングルサインオンすることを許可したい場合、次のように権限を付与します。 • アプリケーション > 割り当てられたアプリケーションに環境ハブを追加 • アプリケーション > オブジェクト設定 > ハブメンバーでタブの設定をデフォルトで表示に設定し、オブジェクトの参照権限を追加 • システム > サービスプロバイダでSSOを許可するサービスプロバイダを追加 • 環境ハブに関連する権限のさらなる詳細はISVforceガイドの環境ハブのセクションを参照してください。 • CRM for ISV組織でマイドメインを設定します。マイドメインは 環境ハブからシングルサインオン機能を利用するにあたり必要 になります。 • 有効化完了の連絡がきたら環境ハブは利用可能になっていま す。CRM for ISV組織にログインし、アプリケーションプルダウ ンメニューから「環境ハブ」を選択してください。
  5. シングルサインオンを設定する • 環境ハブ上のユーザーと、ログイン先組織のユーザー名を1対1で紐づける設定(ハブメンバーの関連リストにあるシングルサインオンユーザー マッピングの作成)をおこなうことでマッピングを定義します。設定は簡単ですが、1ユーザーにつき必ず1つのマッピング設定が必要になる ため、ユーザー数が多い場合には不向きです。 環境ハブに接続された組織は、「SSOを有効化」ボタンをクリックするだけでシングルサインオンに必要な組織間の設定が自動的におこなわ れます。その上で各ユーザーがシングルサインオンするためには何らかの形で環境ハブ上のユーザーと、ログイン先組織のユーザーがマッピ ングされていなければなりません。マッピングには3つの方法があり、ここではそれぞれを説明します。 ユーザーの対応付け 統合ID • 全組織においてユーザーごとに一意なIDを付与し、そのIDによって組織間のユーザーをマッピングします。統合IDさえ各組織で設定されていれ ば、個別に紐付けをおこなう必要がないため大規模な環境にも対応でき、ログイン先に対応するユーザーが存在しない場合に自動的にユーザー を作成するジャストインタイムプロビジョニングが可能になります。 従来のユーザー名 • 環境ハブ上のユーザー情報を元にログイン先のユーザー名を動的に指定する形でマッピングをおこないます。ログイン先のユーザー名がある規 則に基づいて作成されている場合に活用できます。
  6. ジャストインタイムプロビジョニングのセットアップ ログイン先組織に対応するユーザーが存在しない場合に自動的にユーザーを作成する機能のことをJIT(ジャストインタイムプロビジョニン グ)と呼んでいます。この機能を活用すれば、環境ハブ上のユーザーは事前に各ログイン先組織にユーザーを作成することなくログインする ことが可能になります。 • 環境ハブでJITを有効化したいハブメンバーを選択します。 • もしSSOがまだ有効でなければ、「SSOを有効化」ボタンをクリックして有効化します。 • SSO手法2 - 統合IDにチェックして保存します。 • サービスプロバイダの詳細リンクをクリックします。 • 編集ボタンをクリックし、件名種別で「統合ID」を選択して保存します。 • サービスプロバイダSAML属性で下記の通り属性を作成します。 属性キー 属性値 User.Username $User.Username User.Email $User.Email User.LastName $User.LastName User.FirstName $User.FirstName User.CommunityNickname $User.CommunityNickname User.Alias $User.Alias User.ProfileName $Profile.Name
  7. ジャストインタイムプロビジョニングのセットアップ(続き) • ログイン先組織で、管理 > セキュリティのコントロール > シングルサインオン設定で、該当する環境ハブの設定を選択します。 • 編集ボタンをクリックし、SAML ID種別で「アサーションにはユーザーオブジェクトの統合IDが含まれます」を選択、ユーザープロビジョニングの有効化にチェック、 ユーザープロビジョニングのタイプで「Apexハンドラを使用したカスタムSAML JIT」を選択、「SAML JITハンドラテンプレートを自動的に作成する」リンクをクリッ ク、他のアカウントでハンドラを実行にシステム管理者のユーザーを指定して保存します。 • 開発者コンソールでApexクラス:AutocreatedRegHandler[ランダム番号]を編集し、次ページのソースをペーストします。*クラス名は既存のクラス名に合わせてくださ い。
  8. ジャストインタイムプロビジョニングのセットアップ(続き) global class AutocreatedRegHandler[ランダム番号] implements Auth.SamlJitHandler { private void handleUser(User u, Map<String, String> attributes, String federationIdentifier) { u.Username = attributes.get('User.Username') + '.' + UserInfo.getOrganizationId(); u.FederationIdentifier = federationIdentifier; u.Email = attributes.get('User.Email'); u.FirstName = attributes.get('User.FirstName'); u.LastName = attributes.get('User.LastName'); u.CommunityNickname = attributes.get('User.CommunityNickname'); u.Alias = attributes.get('User.Alias'); String profileName = attributes.get('User.ProfileName'); list<Profile> profileList = [SELECT Id FROM Profile WHERE Name=:profileName]; if (profileList.size() == 1){ u.ProfileId = profileList[0].Id; } String uid = UserInfo.getUserId(); User currentUser = [SELECT LocaleSidKey, LanguageLocaleKey, TimeZoneSidKey, EmailEncodingKey FROM User WHERE Id=:uid]; u.LocaleSidKey = currentUser.LocaleSidKey; u.LanguageLocaleKey = currentUser.LanguageLocaleKey; u.TimeZoneSidKey = currentUser.TimeZoneSidKey; u.EmailEncodingKey = currentUser.EmailEncodingKey; system.debug(u); } global void updateUser(Id userId, Id samlSsoProviderId, Id communityId, Id portalId, String federationIdentifier, Map<String, String> attributes, String assertion) { } global User createUser(Id samlSsoProviderId, Id communityId, Id portalId, String federationIdentifier, Map<String, String> attributes, String assertion) { User u = new User(); handleUser(u, attributes, federationIdentifier); return u; } }
  9. ブランチ開発組織(Pilot)とは? リリース組織(パッケージをアップロードする開発組織)と同じ名前空間が適用された開発組織です。複数組織を使った開 発をおこなう際、すべての組織で同じ名前空間を明記したソースを記述することができます。 リリース組織 ブランチ開発組織 名前空間 Apex VF Lightning Component ブランチ開発組織 同じ名前空間 デプロイ デプロイ
  10. • ブランチ開発組織はSprint’15時点ではPilotです。パートナーコミュニティからリリース組織の組織IDを指定してPilot参加申請のケースを発行しま す。また、その際どのようなユースケースであるのかをケースに記載ください。 • 機能が有効化されると、リリース組織のパッケージ設定の画面でブランチタブが表示され、ブランチ開発組織を作成できるようになります。 ブランチ開発組織のセットアップ • 作成されたブランチ開発組織には名前空間は適用された状態になりま すが、それ以外のメタデータ(カスタムオブジェクト、Visualforceペ ージ、Lightning Componentなど)はコピーされません。必要に応じて Force.com Migration Toolなどを用いてリリース組織からメタデータを コピーしてください。 • Spring’15時点では、リリース組織にマイドメインを設定している場合、 ブランチ開発組織を作成した後にメールで送信されるログインリンクが うまく機能しません。ドメインをlogin.salesforce.comに変更する必要が あります。 • Spring’15時点では、ブランチ開発組織はリリース組織から言語などの環 境設定を引き継ぎません。
  11. 不要なコンポーネントの削除とは? 管理パッケージ内でリリース後にロックされ、通常は削除できないコンポーネントを削除するための機能です。 Spring’15で新たに削除できるようになったコンポーネント • Visualforceページ • Visulaforceコンポーネント • 静的リソース • 削除するコンポーネントが他のコンポーネントから参照されている場合は削除できません。 • リリース組織でコンポーネントを削除しても、ユーザー組織ではユーザーが削除しないかぎりそのコンポーネントは 削除されません。 この機能を利用するにはパートナーコミュニティからリリース組織の組織IDを指定して有効化申請のケースを発行 してください。
  12. CORS(Cross Origin Resource Sharing)とは? 外部サイトで提供されるJavascriptからSalesforce APIに直接アクセスすることができる設定。このようなクロスドメインの リクエストはセキュリティ上の理由でブラウザが遮断するため、これまでは一般的に外部サイトのプロキシを経由していま したが、CORSによってブラウザからSalesforceへ直接アクセスすることができるようになります。
  13. • CORSはデフォルトで有効になっています。 • 管理 > セキュリティのコントロール > CORSを開き、 「新規」ボタンをクリックしてオリジンのURLパター ンに外部サイトのURLを設定します。 CORSのセットアップ
  14. Lightningプロセスビルダーとは? フローチャートを描くことでこれまでプログラミングが必要だった処理をGUIで作成することができるツール。直感的な操 作で処理を作成でき、これまでのワークフローよりも強力な機能を備えています。 ワークフロー Lightning プロセスビルダー Apex 直感的UI ⃝ ◎ n/a 柔軟性 △ ⃝ ◎ アクション • 新規Todo • メールアラート • 項目自動更新 • アウトバウンドメッセージ 複数の分岐は設定不可 • レコード作成 • 関連レコード更新 • フロー • Email • Chatter • 承認申請 • Apex 複数の分岐を設定可能 n/a
  15. Lightningコンポーネントとは? Javascriptベースの開発フレームワーク。アプリケーション、コンポーネント、ヘルパー、イベント、スタイルといった単位 で規約にのっとった開発をおこなうことで効率的なUI開発を可能にします。また、作成したコンポーネントはLightning App BuilderによってUIを組み立てる際のパーツとしても活用できることが特徴です。 Application Component SVGHelper StyleController Renderer Documentation Lightningコンポーネントバンドル Lightning App Builder コンポーネントをドラッグ&ドロップ
  16. Lightningエクステンションとは? Salesforce1の標準ページをカスタマイズすることができる機能です。例えば標準項目の表示を変更したり、レコードのホー ムページに独自のタブを追加したりすることができます。
  17. ありがとうございました!
Anzeige