如何扩展Azure的Contoso Insurance演示以使用自定义身份验证?

时间:2017-03-16 16:58:48

标签: azure authentication azure-mobile-services openid-connect azure-ad-b2c

Contoso Insurance sample显示了许多很棒的示例,但是我想创建一个自定义身份验证方法,该方法可以插入以下code

 internal static async Task<ProviderCredentials> GetCurrentCredentialAsync(HttpRequestMessage request, IPrincipal user)
    {
        var principal = user as ClaimsPrincipal;
        var claim = principal.FindFirst("http://schemas.microsoft.com/identity/claims/identityprovider");
        if (claim == null) return null;

        var provider = claim.Value;
        ProviderCredentials creds = null;
        if (provider.IgnoreCaseEqualsTo("microsoftaccount"))
            creds = await user.GetAppServiceIdentityAsync<MicrosoftAccountCredentials>(request);
        else if (provider.IgnoreCaseEqualsTo("facebook"))
            creds = await user.GetAppServiceIdentityAsync<FacebookCredentials>(request);
        else if (provider.IgnoreCaseEqualsTo("aad"))
            creds = await user.GetAppServiceIdentityAsync<AzureActiveDirectoryCredentials>(request);
        return creds;
    }

我想在MVC应用程序和移动应用程序上实现这一点。

任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:2)

查看书籍 - http://aka.ms/zumobook - 它包含有关移动和MVC应用程序身份验证的信息。

您的主要问题是您的自定义身份验证不会集成到/.auth/me端点,因此您将无法从GetAppServiceIdentityAsync<>()方法获取信息。您需要编写一个与您的自定义身份验证方案一起使用的自定义库。