[英]Azure B2C Login on Xamarin forms app with Face/TouchId/Fingerprint/Keychain integration with API
我們正在使用 Azure B2C 來登錄/驗證我們的用戶。 這在我們的網站上運行良好(社交和 email 登錄等)。 我們的移動應用程序內置於 Xamarin forms 中,我們正在嘗試構建原生登錄體驗(使用原生應用程序控件與 web 視圖集成在應用程序中,用於 B2C 提供的用於指紋登錄的原生 ID)(F登錄)。 可以想象,在 Azure B2C 所需的 webview 中執行此操作不允許本機登錄體驗。 這里的總體目標是 2 倍:
問題:
您需要使用 Webviews,並且可以啟用與 webview 類型體驗的生物識別集成。
您不能將任何服務與社交帳戶和 ROPC 集成。 與社交 IdP 的任何集成都需要 webview。
是的,為長期會話啟用保持登錄狀態。 將生物識別代碼包裹在 acquireTokenSilent() 方法周圍。
然后你有兩個選擇:
您可以隱藏 KMSI 按鈕,並使用 JavaScript 強制 select 使用頁面自定義登錄頁面中的 KMSI 復選框。
您可以在登錄頁面上重命名 KMSI label 以詢問用戶是否要注冊生物識別。 然后在登錄后,無論用戶是否選擇加入,您的應用都會在令牌中收到聲明,使用聲明解析器來實現。
現在您有一個用戶登錄到應用程序,其中:
然后,當用戶重新嘗試打開應用程序或在應用程序中執行某些操作時,您將需要調用acquireTokenSilent()。 此 MSAL 方法獲取所需 API 資源/范圍的新訪問令牌。
如果令牌已過期,或需要不同的 scope,則獲取新令牌。
您可以使用生物識別 SDK 在您的應用程序中封裝任何操作。
if (performingSomeAction && requiresBiometric)
if (challengeBiometric succeeds)
acquireTokenSilent()
//do someAction
現在如果刷新令牌已過期,則 web 視圖將彈出,長期存在的 session cookie 將用於獲取新令牌。 acquireTokenSilent() 方法已經處理了所有這些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.