Azure 来宾 API 属性“赞助商”无效

问题描述 投票:0回答:1

解决方案是使用Web API从Azure AD邀请来宾用户,但是大部分属性都可以添加,但只有赞助商没有添加

DirectoryObject
,这个APP具有所有
User.ReadWrite
所有权限,尝试了很多方法,但无法添加,请任何人帮忙。

财产赞助人异常无效0

这是代码:

Sponsors = new List<DirectoryObject>
{

    new DirectoryObject
    {

         AdditionalData = new Dictionary<string, object>()
         {

             {
                  "sponsors","testuser"
             }
         }

    }
}

我希望邀请一位访客用户,其邀请负载中具有“赞助商”值,以便在访客用户信息中添加赞助商。

azure
1个回答
0
投票

Microsoft Graph 中的

invitation
资源没有直接的“赞助商”字段,这可能就是您遇到
"invalid property 'sponsors'"
错误的原因。

  • "sponsors"
    不是标准属性,您需要使用 Azure AD 中的自定义扩展来定义它。这将允许您将赞助商信息存储为用户个人资料的一部分。

要创建存储

sponsors
字段的扩展,您可以使用 Microsoft Graph 定义架构。

API请求:

POST https://graph.microsoft.com/v1.0/applications/{application-id}/extensionProperties
Content-Type: application/json

{
  "name": "sponsors",
  "dataType": "String",
  "targetObjects": [
    "User"
  ]
}
  • 创建自定义扩展后,您可以在邀请过程中使用它。

以下是如何在邀请访客用户时将“赞助商”信息添加到其个人资料中

var invitation = new Invitation
{
    InvitedUserEmailAddress = "[email protected]",
    InviteRedirectUrl = "https://yourapp.com",
    SendInvitationMessage = true,
    AdditionalData = new Dictionary<string, object>
    {
        // Use the extension schema to add the sponsors value
        { "extension_{app-client-id}_sponsors", "SponsorUserNameOrID" }
    }
};

await graphClient.Invitations.Request().AddAsync(invitation);

邀请来宾用户并将其添加到 Azure AD 后,我们可以通过 Microsoft Graph 检索或更新赞助商信息。

检索具有赞助商的用户:

var user = await graphClient.Users["[email protected]"]
    .Request()
    .Select("id,displayName,extension_{app-client-id}_sponsors")
    .GetAsync();

var sponsors = user.AdditionalData["extension_{app-client-id}_sponsors"];
© www.soinside.com 2019 - 2024. All rights reserved.