在商業市集中建置免費或試用版 SaaS 供應專案的登陸頁面

本文會引導您完成建置免費或試用 SaaS 應用程式的登陸頁面的程式,該應用程式將在 Microsoft 商業市集上銷售。

概觀

您可以將登陸頁面視為軟體即服務 (SaaS) 供應專案的「大廳」。 客戶選擇取得您的應用程式之後,商業市集會將他們導向登陸頁面,以啟用並設定其 SaaS 應用程式的訂用帳戶。 當您在合作夥伴中心建立軟體即服務 (SaaS) 供應專案時,您可以選擇是否要 透過 Microsoft 銷售。 如果您只想在 Microsoft 商業市集中列出您的供應專案,而不是透過 Microsoft 銷售,您可以指定潛在客戶如何與供應專案互動。 當您啟用 [立即取得] (免費) 免費試用 清單選項時,您必須指定使用者可以存取免費訂用帳戶或試用版的登陸頁面 URL。

登陸頁面的目的是要接收使用者,讓他們可以啟用免費試用或免費訂用帳戶。 使用 Azure Active Directory (Azure AD) 和 Microsoft Graph,您將為使用者啟用單一登入 (SSO) ,並取得可用來啟用其免費試用或免費訂閱之使用者的重要詳細資料,包括其名稱、電子郵件地址和組織。

由於啟用訂閱所需的資訊有限,並由 Azure AD 和 Microsoft Graph 提供,因此不需要要求需要超過基本同意的資訊。 如果您需要需要應用程式額外同意的使用者詳細資料,您應該在訂用帳戶啟用完成後要求此資訊。 這可讓使用者啟用無摩擦的訂用帳戶,並降低放棄的風險。

登陸頁面通常包含下列資訊和清單選項:

  • 顯示免費試用或免費訂用帳戶的名稱和詳細資料。 例如,指定試用版的使用限制或持續時間。
  • 顯示使用者帳戶的詳細資料,包括名字和姓氏、組織和電子郵件。
  • 提示使用者確認或替代不同的帳戶詳細資料。
  • 在啟用之後引導使用者進行後續步驟。 例如,收到歡迎電子郵件、管理訂用帳戶、取得支援或閱讀檔。

本文中的下列各節將引導您完成建置登陸頁面的程式:

  1. 為登陸頁面建立Azure AD應用程式註冊
  2. 使用程式碼範例作為應用程式的起點
  3. 從識別碼權杖中編碼的宣告讀取資訊,該權杖是在登入之後從Azure AD接收,該宣告會隨著要求一起傳送。
  4. 視需要使用 Microsoft 圖形 API收集其他資訊。

建立Azure AD應用程式註冊

商業市集已與Azure AD完全整合。 使用者抵達使用Azure AD帳戶或 Microsoft 帳戶驗證的市集, (MSA) 。 透過僅限清單供應專案取得免費或免費試用訂用帳戶之後,使用者會從商業市集移至登陸頁面 URL,以啟用和管理其 SaaS 應用程式的訂用帳戶。 您必須讓使用者使用 Azure AD SSO 登入您的應用程式。 (供應專案的 [技術 設定] 頁面中指定登陸頁面 URL。)

提示

請勿在登陸頁面 URL 中包含井字型大小字元 (#) 。 否則,客戶將無法存取您的登陸頁面。

使用身分識別的第一個步驟是確定您的登陸頁面已註冊為Azure AD應用程式。 註冊應用程式可讓您使用Azure AD來驗證使用者,並要求使用者資源的存取權。 它可以視為應用程式的定義,這可讓服務知道如何根據應用程式的設定向應用程式發出權杖。

使用 Azure 入口網站註冊新的應用程式

若要開始使用,請遵循 註冊新應用程式的指示。 若要讓其他公司的使用者造訪應用程式,您必須選擇任何組織目錄中的帳戶 (任何Azure AD目錄—多租使用者) 和個人 Microsoft 帳戶 (,例如Skype或 Xbox) ,當系統詢問誰可以使用應用程式時。

如果您想要查詢 Microsoft 圖形 API,請設定新的應用程式以存取 Web API。 當您選取此應用程式的 API 許可權時, User.Read 的預設值就足以收集使用者的基本資訊,讓上執行緒序順暢且自動。 請勿要求任何標示 為需要管理員同意的 API 許可權,因為這樣會封鎖所有非系統管理員使用者流覽登陸頁面。

如果您在上線或布建程式中需要提高的許可權,請考慮使用Azure AD的累加同意功能,讓從市集傳送的所有使用者都能一開始與登陸頁面互動。

使用程式碼範例作為起點

Microsoft 提供了數個範例應用程式,可實作已啟用Azure AD登入的簡單網站。 在 Azure AD 中註冊您的應用程式之後,[快速入門] 刀鋒視窗會提供一份常見的應用程式類型和開發堆疊清單, (圖 1) 。 選擇符合您環境的內容,並遵循下載和設定的指示。

圖 1:Azure 入口網站中的快速入門刀鋒視窗

Illustrates the Quickstart blade in the Azure portal.

下載程式代碼並設定開發環境之後,請變更應用程式中的組態設定,以反映您在上一個程式中記錄的應用程式識別碼、租使用者識別碼和用戶端密碼。 請注意,確切步驟會根據您使用的範例而有所不同。

從識別碼權杖中編碼的宣告讀取資訊

OpenID 連線流程中,Azure AD當使用者傳送至登陸頁面時,將識別碼權杖新增至要求。 此權杖包含多個在啟用程式中可能有用的基本資訊,包括此表格中所見的資訊。

描述
aud 此權杖的目標物件。 在此情況下,它應該符合您的應用程式識別碼並經過驗證。
preferred_username 流覽使用者的主要使用者名稱。 這可能是電子郵件地址、電話號碼或其他識別碼。
電子郵件 使用者的電子郵件地址。 請注意,此欄位可能是空的。
NAME 可辨識權杖主體的人類可讀值。 在此情況下,它會是使用者的名稱。
oid Microsoft 身分識別系統中唯一識別使用者跨應用程式的識別碼。 Microsoft Graph會將此值傳回為指定使用者帳戶的識別碼屬性。
tid 識別碼,代表使用者的來源Azure AD租使用者。 在 MSA 身分識別的情況下,這一律為 9188040d-6c67-4c5b-b112-36a304b66dad 。 如需詳細資訊,請參閱下一節中的附注:使用 Microsoft 圖形 API。
sub 可唯一識別此特定應用程式中使用者的識別碼。

使用 Microsoft Graph API

識別碼權杖包含識別使用者的基本資訊,但您的啟用程式可能需要額外的詳細資料,例如使用者的公司,才能完成上執行緒序。 使用Microsoft 圖形 API要求此資訊,以避免使用者再次輸入這些詳細資料。 根據預設,標準 User.Read 許可權包含下列資訊:

描述
displayName 使用者通訊錄中顯示的名稱。
givenName 使用者的名字。
jobTitle 使用者的職稱。
mail 使用者的 SMTP 位址。
mobilePhone 使用者的主要行動電話電話號碼。
preferredLanguage 使用者慣用語言的 ISO 639-1 程式碼。
surname 使用者的姓氏。

您可以選取其他屬性,例如使用者公司的名稱或使用者的位置 (國家/地區) , 以包含在要求中。 如需詳細資訊,請參閱 使用者資源類型的屬性

大部分使用 註冊的應用程式Azure AD會授與委派的許可權,以從其公司的Azure AD租使用者讀取使用者的資訊。 對於該資訊的任何 Microsoft Graph要求都必須伴隨存取權杖作為驗證。 產生存取權杖的特定步驟取決於您所使用的技術堆疊,但範例程式碼將包含範例。 如需詳細資訊,請參閱代表使用者取得存取權

注意

來自 MSA 租使用者 (具有租 9188040d-6c67-4c5b-b112-36a304b66dad 使用者識別碼) 的帳戶不會傳回比使用識別碼權杖所收集的資訊還要多。 因此,您可以略過這些帳戶的圖形 API呼叫。

後續步驟