簡體   English   中英

Cordova/Ionic 應用程序上的 Azure AD B2C 登錄

[英]Azure AD B2C Sign In On Cordova/Ionic App

TL; DR - 是否有一種簡單的方法可以在 ionic 應用程序上顯示自定義 Azure B2C 注冊策略?

我目前正在開發一個混合離子應用程序,它需要使用 Azure AD B2C API 來顯示由我使用的一些后端開發人員定義的自定義登錄頁面。

我已經嘗試為此使用ADAL cordova 插件,但據我所知,無法為新的 Web 視圖添加自定義策略。 我嘗試在acquireTokenAsync() 調用中添加“p=B2C_1_sign-in-up-policy”作為extraQueryParameters 選項,但這給了我一個MethodNotAllowedHttpException

我仍然不確定 ADAL 是否/如何與 B2C 相關,所以我轉而直接嘗試Azure B2C Oauth 2.0實現。 但這似乎是一個錯誤,因為我正在手動執行 ADAL 插件似乎已經在執行的操作。

這些中的任何一個是正確的選擇嗎? 對於 ionic 應用程序,是否有替代 Azure AD B2C 登錄的方法?

提前致謝

編輯:澄清一下,我讓 ADAL 一直工作到彈出 ADAL 的默認 microsoft web 視圖登錄的點,但我想顯示一個自定義的 Azure B2C 策略來代替它。 這可能嗎?

編輯 2:在弄亂 ADAL AuthenticationContext 參數后,azquireTokenAsnyc() 調用在策略上不再失敗。 參數看起來像這樣:

    var authContextConstants = {
        tenant: "[TENANT].onmicrosoft.com",
        resourceUrl: "https://login.microsoftonline.com",
        redirectUrl: "https://[REPLY_URL]",
        clientId: "[AZURE_APP_ID]",
        authority: this.resourceUrl + "/" + this.tenant,
        extraQueryParams: {
            response_mode: "form_post",
            scope: "openid offline_access",
            p: "B2C_1_[SIGN_IN_POLICY]"
        }
    };

我現在的問題是彈出的 webview 覆蓋顯示為空白。 我已經設法將其追溯到這個 ADAL 源文件(在 android 上測試),它使用“/oauth2/authorize”而不是“oauth2/v2.0/authorize”,如B2C Oauth2 文檔所述

目前似乎沒有辦法通過cordova插件自定義它,因為它是在源庫中硬編碼的——我現在再次陷入困境......

事實證明,ADAL cordova 插件的 0.7.1 / 0.7.2-dev 版本使用的 ADAL 庫不符合 B2C 握手 / Oauth2 要求,因此這些版本總是在代碼 -> B2C 端點的令牌部分失敗。

我分叉了插件來制作這個 ADAL 插件 B2C 補丁,直到插件開發者更新插件的 ADAL 庫

使用ADAL Cordova Plugin Patch For B2Cangular-jwt ,我們可以在 Cordova/Ionic App 上實現 Azure AD B2C Sign In

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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