邀请用户在AD B2C中创建一次以在我的应用上签名

时间:2017-03-15 20:31:56

标签: azure azure-ad-b2c

此方案在此tutorial之后在ADB2C上正常运行 我可以使用ADAL创建用户。 (这是context for the scenario

我的目标是发送用户邀请(电子邮件)让他在我的appp上登机。

我发现在graph.microsoft.com(MS Graph而不是AD图表)上有一个可用于此目的的邀请管理器,如果你在上面创建用户,可能就是邀请被触发的方式B2C azure portal。

  • 那么我是否需要为我的应用授予权限(就像我做的那样) 在AD图上访问令牌来管理用户)?
  • 我是否应该按照与AD

    相同的方式获取MS图表上的令牌

    var authenticationContext = new AuthenticationContext(AuthString,        假);
    var clientCred = new ClientCredential(ClientId,        ClientSecret);
        var authenticationResult =        authenticationContext.AcquireTokenAsync(ResourceUrl,clientCred);
        var token = authenticationResult.Result.AccessToken;

    此时ResourceUrl指向https://graph.microsoft.com

这是我的OwinOpenID AuthenticationCodeReceived回调:

AuthorizationCodeReceived = async (context) =>
{
    // get authentication context
    string userObjectID = context.AuthenticationTicket.Identity.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
    AuthenticationContext authContext = new AuthenticationContext($"https://login.microsoftonline.com/{AuthenticationHelper.Tenant}", new NaiveSessionCache(userObjectID));


    ClientCredential credential = new ClientCredential(AuthenticationHelper.ClientId, AuthenticationHelper.AppKey);
    AuthenticationResult result = await authContext.AcquireTokenAsync("https://graph.windows.net", credential);
    // ----> Token used on the authorization header for AD user management and work properly
    AuthenticationHelper.Token = result.AccessToken;


    // Token for MS graph
    ClientCredential MSCredential = new ClientCredential(AuthenticationHelper.MSClientId, AuthenticationHelper.MSAppKey);
    AuthenticationResult resultMSGraph = await authContext.AcquireTokenAsync("https://graph.microsoft.com", MSCredential);
    // ----> Token used on the authorization header for MS Graph and is not working !!
    AuthenticationHelper.MSGraphToken = resultMSGraph.AccessToken;
},

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

Azure AD B2C不支持Microsoft Graph上的邀请管理器API。 目前,邀请管理器API旨在供企业/常规Azure AD租户邀请其他用户作为访客(请参阅Azure AD B2B Collaboration)。

Azure AD B2C UserVoice论坛中已有一个条目要求ability to send email invitation for new users to sign up。我建议您投票支持此条目,以帮助我们确定优先顺序,并及时了解最新动态。

在此期间,您必须自己实施,可以是简单的欢迎电子邮件,也可以是更复杂的"兑换代码"工作流