警告
此內容適用於較舊的 Azure AD v1.0 端點。 針對新專案使用 Microsoft身分識別平臺。
Azure Active Directory (Azure AD) 支援各種新式應用程式架構的驗證,這些架構全都以業界標準通訊協定 OAuth 2.0 或 OpenID Connect 為基礎。
下圖說明案例和應用程式類型,以及如何新增不同的元件:
以下是 Azure AD 支援的五個主要應用程式案例:
- 單頁應用程式 (SPA):用戶必須登入受 Azure AD 保護的單頁應用程式。
- 網頁瀏覽器到 Web 應用程式:用戶必須登入 Azure AD 所保護的 Web 應用程式。
- 原生應用程式到 Web API:在手機、平板電腦或電腦上執行的原生應用程式必須驗證使用者,才能從 Azure AD 所保護的 Web API 取得資源。
- Web 應用程式到 Web API:Web 應用程式必須從 Azure AD 保護的 Web API 取得資源。
- 精靈或伺服器應用程式到 Web API:精靈應用程式或沒有 Web 使用者介面的伺服器應用程式需要從 Azure AD 保護的 Web API 取得資源。
請遵循連結以深入瞭解每種應用程式類型,並在開始使用程式代碼之前先瞭解高階案例。 您也可以瞭解撰寫使用 v1.0 端點或 v2.0 端點的特定應用程式時需要知道的差異。
備註
v2.0 端點不支援所有 Azure AD 案例和功能。 若要判斷您是否應該使用 v2.0 端點,請閱讀 v2.0 限制。
您可以使用各種語言和平台來開發此處所述的任何應用程式和案例。 這些範例全都由程式代碼範例指南中的完整程式碼範例所支援: 依案例提供的 v1.0 程式代碼範例 和 案例的 v2.0 程式代碼範例。 您也可以直接從對應的 GitHub 範例存放庫下載程式代碼範例。
此外,如果您的應用程式需要端對端案例的特定片段或區段,則在大多數情況下,可以獨立新增功能。 例如,如果您有呼叫 Web API 的原生應用程式,您可以輕鬆地新增也呼叫 Web API 的 Web 應用程式。
應用程式註冊
註冊使用 Azure AD v1.0 端點的應用程式
任何將驗證外包給 Azure AD 的應用程式都必須在目錄中註冊。 此步驟牽涉到告訴 Azure AD 您的應用程式,包括其所在的 URL、驗證後要傳送回復的 URL、用來識別應用程式的 URI 等等。 基於下列幾個主要原因,需要此資訊:
處理登入或交換令牌時,Azure AD 必須與應用程式通訊。 Azure AD 與應用程式之間傳遞的資訊包括下列各項:
- 應用程式識別碼 URI - 應用程式的識別碼。 此值會在驗證期間傳送至 Azure AD,以指出呼叫端想要令牌的應用程式。 此外,這個值會包含在令牌中,讓應用程式知道它是預定的目標。
- 回復 URL 和 重新導向 URI - 對於 Web API 或 Web 應用程式,回復 URL 是 Azure AD 將傳送驗證回應的位置,包括驗證成功時包含令牌。 針對原生應用程式,重新導向 URI 是 Azure AD 將在 OAuth 2.0 要求中重新導向使用者代理程式的唯一標識碼。
- 應用程式識別碼 - 註冊應用程式時由 Azure AD 產生的應用程式識別碼。 要求授權碼或令牌時,應用程式標識碼和金鑰會在驗證期間傳送至 Azure AD。
- 索引鍵 - 向 Azure AD 進行驗證以呼叫 Web API 時,會連同應用程式識別碼一起傳送的密鑰。
Azure AD 需要確保應用程式具有存取目錄資料所需的許可權、組織中的其他應用程式等等。
如需詳細資訊,請了解如何註冊應用程式。
單租戶和多租戶應用程式
當您瞭解有兩種應用程式類別可以開發和與 Azure AD 整合時,布建變得更清楚:
- 單一租用戶應用程式 - 單一租使用者應用程式適用於一個組織。 這些通常是企業開發人員所撰寫的企業營運(LoB)應用程式。 單一租戶應用程式只需要由一個目錄中的使用者存取,因此,它只需要在一個目錄中部署。 這些應用程式通常是由組織中的開發人員註冊。
- 多租用戶應用程式 - 多租使用者應用程式 適用於許多組織,而不只是一個組織。 這些通常是由獨立軟體供應商 (ISV) 撰寫的軟體即服務 (SaaS) 應用程式。 多租戶應用程式必須在它們將被使用的每個目錄中配置,這需要使用者或系統管理員同意註冊。 此同意程序會在應用程式已在目錄中註冊,並授與 Graph API 或其他 Web API 的存取權時啟動。 當來自不同組織的使用者或系統管理員註冊以使用應用程式時,他們會看到一個對話框來顯示應用程式所需的許可權。 然後,使用者或系統管理員可以同意應用程式,讓應用程式能夠存取已陳述的數據,最後在其目錄中註冊應用程式。 如需詳細資訊,請參閱 同意架構概觀。
開發單租戶或多租戶應用程式時的其他考量
開發多租戶應用程式而非單一租戶應用程式時,會有一些額外的考量。 例如,如果您要將應用程式提供給多個目錄中的使用者,您需要一個機制來判斷他們所在的租戶。 單一租使用者應用程式只需要尋找使用者自己的目錄,而多租使用者應用程式需要從 Azure AD 中的所有目錄識別特定使用者。 為了完成這項工作,Azure AD 提供一個共同的驗證端點,任何多租戶應用程式都可以將登入請求引導至此,而不是租戶特定的端點。 此端點適用於 https://login.microsoftonline.com/common Azure AD 中的所有目錄,而租使用者特定端點可能是 https://login.microsoftonline.com/contoso.onmicrosoft.com。 在開發應用程式時,共用端點特別重要,因為您需要具備必需的邏輯,以便在登入、註銷和令牌驗證期間處理多個租戶。
如果您目前正在開發單一租使用者應用程式,但想要讓許多組織使用,您可以輕鬆地變更應用程式及其在 Azure AD 中的設定,使其具備多租使用者功能。 此外,無論您在單一租使用者或多租使用者應用程式中提供驗證,Azure AD 都會對所有目錄中的所有令牌使用相同的簽署密鑰。
本檔所列的每個案例都包含描述其布建需求的子區段。 如需在 Azure AD 中布建應用程式的詳細資訊,以及單一與多租使用者應用程式之間的差異,請參閱 整合應用程式與 Azure Active Directory 以取得詳細資訊。 繼續閱讀以瞭解 Azure AD 中的常見應用程式案例。
後續步驟
- 深入瞭解其他 Azure AD 驗證基本概念