TL; DR - Ionic アプリでカスタム Azure B2C サインアップ ポリシーを表示する簡単な方法はありますか?
私は現在、Azure AD B2C API を使用して、私が協力しているいくつかのバックエンド開発者によって定義されたカスタム サインイン ページを表示する必要があるハイブリッド ionic アプリに取り組んでいます。
これにはADAL cordova プラグインを使用してみましたが、私が知る限り、新しい Web ビューのカスタム ポリシーを追加する方法はありません。acquireTokenAsync() 呼び出しの extraQueryParameters オプションとして "p=B2C_1_sign-in-up-policy" を追加しようとしましたが、 MethodNotAllowedHttpException が返されます。
ADAL が B2C とどのように関連しているかはまだわからないので、Azure B2C Oauth 2.0の実装を直接試すことに切り替えました。ADAL プラグインが既に行っているように見えることを手動で行っているため、これは間違いのように思えます。
これらのいずれかが正しいオプションですか? Ionic アプリの Azure AD B2C サインインに別の方法はありますか?
前もって感謝します
編集:明確にするために、ADAL からの既定の Microsoft Web ビュー ログインがポップアップするところまで ADAL を動作させていますが、これの代わりにカスタム 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 オーバーレイが空白になることです。B2C Oauth2 Docsで説明されているように、「oauth2/v2.0/authorize」の代わりに「/oauth2/authorize」を使用するこの ADAL ソース ファイル(Android でのテスト) までこれを追跡することができました。
ソースライブラリにハードコードされているため、現在、コルドバプラグインを介してこれをカスタマイズする方法はないようです-私は今また立ち往生しています...