尝试从Azure AD B2C提取令牌时遇到错误

时间:2018-11-16 15:22:35

标签: azure xamarin azure-ad-b2c

我创建了一个单独的xamarin应用,并尝试在登录后获取令牌。我正在遵循类似于此处

的代码段

https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-xamarin-native/

在我的“租户”设置中是这样

enter image description here

我的重定向URL的格式也正确

 PCA.RedirectUri = $"msal{GlobalSetting.Instance.ClientID}://auth";

但是

IEnumerable<IAccount> accounts = await App.PCA.GetAccountsAsync();
        AuthenticationResult ar = await App.PCA.AcquireTokenAsync(GlobalSetting.Instance.Scopes, GetAccountByPolicy(accounts, GlobalSetting.Instance.PolicySignUpSignIn), App.UiParent);

此呼叫将我带到Azure AD b2c页面,并且在那里配置了facebook。通过facebook登录后,它向我显示错误

这个大网址,然后 ”无法加载,因为 净:ERR_UNKNOWN_URL_SCHEME“

enter image description here

我的android清单文件看起来像这样

    <application android:label="HaveThat" android:roundIcon="@mipmap/icon">
    <application> 
    <activity android:name="microsoft.identity.client.BrowserTabActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="msald6b07784-0e3a-483a-9exxxxxxc524ed1d" android:host="auth" />
        </intent-filter>
    </activity>
</application>
    <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
        <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
    </provider>
</application>

更新

在删除内部应用程序块后,它没有显示错误的网页。相反,它在我的应用程序中显示了一个空白屏幕,代码中的下一行也没有命中。

enter image description here

2 个答案:

答案 0 :(得分:0)

修复程序将true用作UIParent中的第二个参数

           App.UiParent = new UIParent(this, true);

这告诉系统使用嵌入式浏览器。

答案 1 :(得分:0)

聚会晚了一点,但我遇到了同样的问题。原来,在Azure门户的AD应用程序注册中,我没有选中MSAL重定向URI的复选框。

可通过在应用程序注册中单击应用程序的重定向URI来访问。这将带您进入列出了重定向URI的页面。选中要访问的重定向URI的复选框,您应该会很方便。