我正在尝试邀请 Azure B2B 活动目录中的用户。我无法找到使用 Client SDK 的方法。
有没有办法做到这一点?
提前感谢您的帮助。:)
我正在尝试邀请 Azure B2B 活动目录中的用户。我无法找到使用 Client SDK 的方法。
有没有办法做到这一点?
提前感谢您的帮助。:)
有没有办法做到这一点?
我找不到用Microsoft.Azure.ActiveDirectory.GraphClient邀请用户的方法。
但我们可以使用 Microsoft.Graph做到这一点。而且 Azure 官方文档也建议你使用 Microsoft Graph 而不是Azure AD Graph API。
我们强烈建议您使用 Microsoft Graph 而不是 Azure AD Graph API 来访问 Azure Active Directory 资源。 https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-graph-api
我也为它做了一个演示。我在我身边工作正常。
在此之前,我在 Azure 目录中创建 Web 应用程序。将所需的邀请来宾用户添加到Microsoft Graph 的组织权限
演示代码:
string authority = "https://login.microsoftonline.com/{0}";
string graphResourceId = "https://graph.microsoft.com";
string tenantId = "tenant id";
string clientId = "client Id";
string secret = "sercet key";
authority = String.Format(authority, tenantId);
AuthenticationContext authContext = new AuthenticationContext(authority);
var accessToken = authContext.AcquireTokenAsync(graphResourceId, new ClientCredential(clientId, secret)).Result.AccessToken;
var graphserviceClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
requestMessage =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.FromResult(0);
}));
var dic = new Dictionary<string, object> {{"@odata.type", "microsoft.graph.invitedUserMessageInfo"}};
Invitation invitation = new Invitation
{
InvitedUserEmailAddress = "email address",
InvitedUserMessageInfo = new InvitedUserMessageInfo{AdditionalData = dic },
InvitedUserDisplayName = "xxx",
SendInvitationMessage = false,
InviteRedirectUrl = "xxxxx"
};
var result = graphserviceClient.Invitations.Request().AddAsync(invitation).Result;