簡體   English   中英

Azure B2C 在 Xamarin 上登錄

[英]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 倍:

  1. 構建原生登錄體驗
  2. 與生物識別技術集成。

問題

  1. Azure B2C 是否具有啟用此功能的 API,尤其是我們可以在沒有 UI 的情況下使用授權代碼流 ROPC存在,但它是否也與社交賬戶集成?
  2. 如果沒有,當登錄屏幕顯示在 webview 中時,是否有辦法將生物識別登錄與移動設備上的 Azure B2C 集成? 這樣當 webview 中的 B2C 登錄頁面出現時,用戶可以使用 touch/faceId 登錄並將該信息保存到他們的鑰匙串(在 iOS 和 Android 上的等效項)

您需要使用 Webviews,並且可以啟用與 webview 類型體驗的生物識別集成。

  1. 您不能將任何服務與社交帳戶和 ROPC 集成。 與社交 IdP 的任何集成都需要 webview。

  2. 是的,為長期會話啟用保持登錄狀態。 將生物識別代碼包裹在 acquireTokenSilent() 方法周圍。

然后你有兩個選擇:

  1. 您可以隱藏 KMSI 按鈕,並使用 JavaScript 強制 select 使用頁面自定義登錄頁面中的 KMSI 復選框。

  2. 您可以在登錄頁面上重命名 KMSI label 以詢問用戶是否要注冊生物識別。 然后在登錄后,無論用戶是否選擇加入,您的應用都會在令牌中收到聲明,使用聲明解析器來實現。

現在您有一個用戶登錄到應用程序,其中:

  1. 1 小時訪問令牌
  2. 可能長達無限長的刷新令牌
  3. 多天/年 Azure AD B2C session cookie

然后,當用戶重新嘗試打開應用程序或在應用程序中執行某些操作時,您將需要調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM