TL; DR-是否有一种简单的方法可以在离子应用程序上显示自定义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插件已经在执行的操作。
这些都是正确的选择吗?是否有替代方法可用于离子应用程序的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”而不是B2C Oauth2文档所述的“ oauth2 / v2.0 / authorize”
似乎目前还没有一种通过cordova插件自定义此方法的方法,因为它已在源库中进行了硬编码-我现在再次陷入困境...
原来ADAL cordova插件的0.7.1 / 0.7.2-dev版本使用了不满足B2C握手/ Oauth2要求的ADAL库,因此这些版本始终在B2C端点的代码->令牌部分中失败。
我暂时分叉了插件,以制作此ADAL插件B2C补丁,直到插件开发者更新插件的ADAL库为止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句