針對使用者透過瀏覽器存取的 Web 應用程式 (.NET、PHP、Java、Ruby、Python、Node),您可以使用 OpenID Connect 來執行使用者登入。 在 OpenID Connect 中,網頁應用程式會收到 ID 權杖。 ID 權杖是一種安全性權杖,用於確認使用者的身分,並以宣告的形式提供使用者的相關資訊。
// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
// Partial content of a decoded ID token
{
"name": "Casey Jensen",
"email": "casey.jensen@onmicrosoft.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
...
}
您可以使用 Microsoft 身分識別平台來保護 Web 服務,例如應用程式的 RESTful Web API。 Web API 能夠在多個平台以及使用多種語言實作。 也可以使用 Azure Functions 中的 HTTP 觸發程序來實作。 Web API 使用 OAuth 2.0 存取權杖來保護其資料及驗證傳入請求,而不是使用 ID 權杖和工作階段 Cookie。
Web API 會使用這個存取權杖來驗證 API 呼叫端的身分識別,並從存取權杖中所編碼的宣告擷取呼叫端的相關資訊。 如需 Microsoft 身分識別平台中所使用不同權杖類型的進一步詳細資料,請參閱存取權杖參考和識別碼權杖參考。
Web API 可透過公開權限的方式 (亦稱為範圍),讓使用者能夠選擇加入或退出特定的功能或資料。 為了讓發出呼叫的應用程式取得範圍的權限,使用者必須在流程中對範圍表示同意。 Microsoft 身分識別平台會向使用者要求權限,然後將這些權限記錄在 Web API 接收的所有存取權杖中。 Web API 會驗證它在每次呼叫所收到的存取權杖,並執行授權檢查。
Web API 可以從所有類型的應用程式接收存取權杖,包括 Web 伺服器應用程式、傳統型應用程式和行動應用程式、單頁應用程式、伺服器端精靈,甚至是其他的 Web API。 Web API 的概要流程看起來像這樣:
若要了解如何使用 OAuth2 存取權杖來保護 Web API,請查看受保護的 Web API 教學課程中的 Web API 程式碼範例。
在許多情況下,Web API 也需要對受 Microsoft 身分識別平台保護的其他下游 Web API 發出傳出要求。 若要這樣做,Web API 可以利用「代理 (OBO)」流程,這允許 Web API 將收到的存取權杖換成另一個用於發出要求的存取權杖。 如需詳細資訊,請參閱 Microsoft 身分識別平台和 OAuth 2.0 代理者流程。
行動和原生應用程式
裝置安裝的應用程式 (例如行動應用程式和傳統型應用程式) 通常需要存取儲存資料及代表使用者執行功能的後端服務或 Web API。 這些應用程式可以使用 OAuth 2.0 授權碼流程,將登入和授權新增至後端服務。
在此流程中,應用程式會在使用者登入時,從 Microsoft 身分識別平台接收授權碼。 授權碼代表應用程式具備權限,可代表登入的使用者呼叫後端服務。 應用程式可以在背景中以授權碼交換 OAuth 2.0 存取權杖和重新整理權杖。 應用程式可以使用存取權杖在 HTTP 要求中向 Web API 進行驗證,以及在舊存取權杖到期時,使用重新整理權杖來取得新的存取權杖。
注意
如果應用程式使用預設系統 Web 檢視,則請在 AADSTS50199中查看「確認我的登入」功能和錯誤碼 的相關資訊。
伺服器、精靈和腳本
應用程式如果含有長時間執行的程序,或其運作方式不需要與使用者互動,就也需要一個存取受保護資源 (例如 Web API) 的方法。 這些應用程式可以使用應用程式的身分識別 (而非使用者委派的身分識別) 搭配 OAuth 2.0 用戶端認證流程,來驗證及取得權杖。 您可以使用用戶端密碼或憑證來提供應用程式的身分識別。 如需詳細資訊,請參閱使用 Microsoft 身分識別平台的 .NET 精靈主控台應用程式。