單一和多租使用者應用程式的身分識別和帳戶類型
本文說明您身為開發人員的方式,可以選擇您的應用程式是否只允許來自您Microsoft Entra 租使用者、任何Microsoft Entra 租使用者或具有個人Microsoft帳戶的使用者。 您可以在 Microsoft Entra 中的應用程式註冊期間,將應用程式設定為單一租使用者或多租使用者。 請確定最低許可權存取的 零信任 原則,讓您的應用程式只要求所需的許可權。
Microsoft 身分識別平台 提供特定身分識別類型的支援:
- 當實體在Microsoft Entra標識符中有帳戶時,公司或學校帳戶
- Microsoft個人帳戶 (MSA) 適用於任何擁有 Outlook.com、Hotmail、Live、Skype、Xbox 等帳戶的人員。
- 合作夥伴Microsoft Entra識別碼中的外部身分 識別(貴組織外部的使用者)
- Microsoft Entra Business to Customer (B2C) 可讓您建立解決方案,讓客戶引進其他身分識別提供者。 使用 Azure AD B2C 或訂閱 Microsoft Dynamics 365 Fraud Protection 搭配 Azure Active Directory B2C 的應用程式,可以在嘗試建立新帳戶或登入用戶端生態系統之後評估潛在的詐騙活動。
Microsoft Entra ID 中應用程式註冊的必要部分是您選取支援的帳戶類型。 雖然系統管理員角色中的 IT 專業人員決定誰可以同意其租使用者中的應用程式,但身為開發人員,您可以根據帳戶類型指定誰可以使用您的應用程式。 當租用戶不允許您在 Microsoft Entra ID 中註冊應用程式時,系統管理員會提供一種方式,讓您透過另一個機制將這些詳細數據傳達給他們。
註冊應用程式時,您可以選擇下列支援的帳戶類型選項。
Accounts in this organizational directory only (O365 only - Single tenant)
Accounts in any organizational directory (Any Azure AD directory - Multitenant)
Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
Personal Microsoft accounts only
僅限此組織目錄中的帳戶 - 單一租使用者
當您只選取 此組織目錄中的帳戶(僅限 O365 - 單一租使用者)時,您只允許開發人員註冊其應用程式的租用戶和來賓。 這個選項是企業營運應用程式最常見的選項。
僅限任何組織目錄中的帳戶 - 多租使用者
當您選取 任何組織目錄中的帳戶(任何Microsoft Entra 目錄 - 多租使用者)時,您允許任何來自任何Microsoft Entra 目錄的使用者登入您的多租使用者應用程式。 如果您只想要允許來自特定租使用者的使用者,您可以在程式代碼中篩選這些使用者,方法是檢查 id_token 中的 tid 宣告是否位於您允許的租使用者清單中。 您的應用程式可以使用組織端點或通用端點,登入使用者主租使用者中的使用者。 若要支援來賓使用者登入您的多租使用者應用程式,您可以使用使用者是來賓來登入使用者之租使用者的特定租用戶端點。
任何組織帳戶和個人Microsoft帳戶中的帳戶
當您選取 任何組織帳戶和個人Microsoft帳戶中的帳戶(任何Microsoft Entra 目錄 - 多租使用者)和個人Microsoft帳戶(例如 Skype、Xbox)時,您可以讓使用者使用來自任何Microsoft Entra 租使用者或取用者帳戶的原生身分識別登入您的應用程式。 與先前所述的多租使用者應用程式一樣,相同的租用戶篩選和端點使用方式會套用至這些應用程式。
僅限個人 Microsoft 帳戶
當您只選取 [個人Microsoft帳戶時,只允許具有取用者帳戶的使用者使用您的應用程式。
面向客戶的應用程式
當您在向客戶伸出 Microsoft 身分識別平台 中建置解決方案時,通常您不想使用公司目錄。 相反地,您希望客戶位於不同的目錄中,讓他們無法存取您公司的任何公司資源。 為了滿足此需求,Microsoft Microsoft Entra Business to Customer (B2C) 供應專案。
Azure AD B2C 會提供企業對客戶的身分識別即服務。 您可以讓使用者只針對您的應用程式擁有使用者名稱和密碼。 B2C 支援具有社交身分識別的客戶,以減少密碼。 您可以將 Azure AD B2C 目錄與客戶的Microsoft Entra ID 或任何支援安全性聲明標記語言 (SAML) 的身分識別提供者同盟至 OpenID Connect,以支援企業客戶。 與多租使用者應用程式不同,您的應用程式不會使用客戶的公司目錄來保護其公司資產。 您的客戶可以存取您的服務或功能,而不授與應用程式對其公司資源的存取權。
它不只是由開發人員決定
當您在應用程式註冊中定義誰可以登入您的應用程式時,最後一個發言權來自使用者的個別使用者或使用者主租用戶的系統管理員。 租用戶系統管理員通常想要對應用程式擁有更多的控制權,而不只是可以登入的人員。 例如,他們可能會想要將條件式存取原則套用至應用程式,或控制允許使用應用程式的群組。 若要讓租用戶系統管理員擁有此控件,Microsoft 身分識別平台 中有第二個對象:企業應用程式。 企業應用程式也稱為 服務主體。
具有其他租使用者或其他取用者帳戶中用戶的應用程式
如下圖所示,使用兩個租使用者的範例(針對虛構的組織,Adatum 和 Contoso),支援的帳戶類型包括 多租使用者應用程式的任何組織目錄選項中的帳戶,讓您可以允許組織目錄 使用者。 換句話說,您可以讓使用者使用來自任何Microsoft Entra標識碼的原生身分識別來登入您的應用程式。 從租使用者的第一個使用者向應用程式驗證時,會自動在租使用者中建立服務主體。
只有一個應用程式註冊或應用程式物件。 不過,每個租使用者中有一個企業應用程式或服務主體 (SP),可讓使用者登入應用程式。 租用戶系統管理員可以控制應用程式在其租使用者中的運作方式。
多租使用者應用程式考慮
當應用程式使用一般或組織端點時,多租使用者應用程式會從使用者的主租使用者登入使用者。 應用程式有一個應用程式註冊,如下圖所示。 在此範例中,應用程式會在Adatum租用戶中註冊。 來自 Adatum 的使用者 A 和 Contoso 的使用者 B 都可以使用來自 Adatum 的使用者 A 存取 Adatum 數據,以及來自 Contoso 的使用者 B 存取 Contoso 數據,來登入應用程式。
身為開發人員,您必須負責將租用戶資訊分開。 例如,如果 Contoso 數據來自 Microsoft Graph,Contoso 的使用者 B 只會看到 Contoso 的 Microsoft Graph 數據。 Contoso 的使用者 B 不可能存取 Adatum 租使用者中的 Microsoft Graph 數據,因為 Microsoft 365 具有真正的數據區隔。
在上圖中,Contoso 的使用者 B 可以登入應用程式,而且他們可以存取您應用程式中的 Contoso 資料。 您的應用程式可以使用一般 (或組織) 端點,讓使用者以原生方式登入其租使用者,而不需要邀請程式。 用戶可以執行並登入您的應用程式,並在使用者或租用戶系統管理員授與同意之後運作。
與外部使用者共同作業
當企業想要讓非企業成員的使用者從企業存取數據時,他們會使用 Microsoft Entra Business to Business (B2B) 功能。 如下圖所示,企業可以邀請用戶成為其租使用者中的來賓使用者。 在使用者接受邀請之後,他們可以存取邀請租使用者所保護的數據。 使用者不會在租使用者中建立個別的認證。
來賓使用者登入其主租用戶、個人Microsoft帳戶或其他身分識別提供者 (IDP) 帳戶來進行驗證。 來賓也可以使用任何電子郵件向單次密碼進行驗證。 來賓驗證之後,邀請租使用者的Microsoft Entra標識符會提供令牌,以存取邀請租用戶的數據。
身為開發人員,當您的應用程式支援來賓使用者時,請記住下列考慮:
- 登入來賓使用者時,您必須使用租使用者特定端點。 您無法使用一般、組織或取用者端點。
- 來賓使用者身分識別與其主租使用者或其他IDP中的使用者身分識別不同。
oid
來賓使用者令牌中的宣告與其主租使用者中的相同個人oid
不同。
下一步
- 如何將應用程式新增至 Microsoft Entra ID 說明應用程式物件如何描述應用程式以Microsoft Entra ID。
- Microsoft Entra ID 中應用程式屬性的安全性最佳做法涵蓋重新導向 URI、存取令牌、憑證和秘密、應用程式識別碼 URI 和應用程式擁有權等屬性。
- 使用身分識別 零信任 方法來建置應用程式,提供許可權和存取最佳做法的概觀。
- 取得存取資源的授權可協助您瞭解如何在取得應用程式的資源訪問許可權時,最好確保 零信任。
- 開發委派的許可權策略可協助您實作最佳方法來管理應用程式中的許可權,並使用 零信任 原則進行開發。
- 開發應用程式許可權策略 可協助您決定認證管理的應用程式許可權方法。