TL; DR - 是否有一种简单的方法在离子应用上显示自定义Azure B2C注册策略?Azure AD B2C登录Cordova/Ionic App
我目前正在研究混合离子应用程序,它需要使用Azure AD B2C API来显示由我工作的一些后端开发人员定义的自定义登录页面。
我已经尝试过使用ADAL cordova plugin这个,但据我所知,没有办法为新的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叠加层出现空白。我设法跟踪到this ADAL source file(在android上测试),它使用“/ oauth2/authorize”而不是“oauth2/v2.0/authorize”,如B2C Oauth2 Docs所示
看来,目前没有一种通过cordova插件定制的方法,因为它是在源库中进行硬编码的 - 我现在再次卡住了......
如果您只需要FB和Google登录,Ionic就拥有API - 例如,Ionic.Auth.login('google')。你为什么要使用ADAL?你想要一个额外的O365登录功能? – andrew
我正尝试将Azure AD B2C登录集成到离子应用程序中。也许我太过于复杂......?我应该只是使用类似[Aerogear的科尔多瓦插件](https://github.com/aerogear/aerogear-cordova-oauth2)? –
我想我真正要问的是,我如何使[Azure B2C登录](https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-overview/)工作在我的应用程序?? –