AAD:是否可以将Microsoft Graph开放扩展插入AD Application Manifest中的optionalClaims?

时间:2018-05-04 15:42:32

标签: azure active-directory microsoft-graph azure-ad-graph-api

我想做什么:邀请新用户加入Active Directory,同时为他指定organisationId的扩展名。当用户登录到同一应用程序时,此扩展属性将在声明中返回。

AD Graph API支持添加目录扩展,我们可以轻松地将其添加到AD Application Manifest中作为OptionalClaims,如下所示:

"optionalClaims": {
    "idToken": [
      {
        "name": "extension_94dd5b3a05a1416f8481eb6713b6ba08_organisationId",
        "source": "user",
        "essential": true,
        "additionalProperties": []
      },
      {
        "name": "extension_organisationId",
        "source": "user",
        "essential": true,
        "additionalProperties": []
      }
    ],
    "accessToken": [
      {
        "name": "extension_94dd5b3a05a1416f8481eb6713b6ba08_organisationId",
        "source": "user",
        "essential": true,
        "additionalProperties": []
      },
      {
        "name": "extension_organisationId",
        "source": "user",
        "essential": true,
        "additionalProperties": []
      }
    ],
    "saml2Token": []
  },

大。 AD Graph API不支持邀请Microsoft Graph API支持的用户的新操作。

所以我构建了整个自定义应用程序以允许邀请用户访问Active Directory,并且您可以使用开放扩展来添加到用户对象。太棒了现在的问题是如何将用户对象上的开放式扩展添加到应用程序清单中的optionalClaims中?

正如你从上面的optionalClaims中看到的那样,我尝试了“extension_organisationId”,但没有运气将它归还给索赔。第一个“extension_94dd5b3a05a1416f8481eb6713b6ba08_organisationId”是使用旧的AD Graph API完成的目录扩展,我在声明中得到它。

是我还是微软做得如此草率?

1 个答案:

答案 0 :(得分:0)

您在Azure AD Graph API中描述的内容是Schema Extensions,而不是Open Extensions。 Microsoft Graph支持两者,它们各自具有不同的行为。

模式扩展是强类型的,并与资源本身一起存储:

  

架构扩展允许您定义要扩展的架构,并将强类型的自定义数据添加到资源类型。自定义数据在扩展资源上显示为复杂类型。

Open Extensions是无类型的,并且资源一起存储

  

Open extensions(以前称为Office 365数据扩展)为您提供了一种直接向Microsoft Graph中的资源添加无类型属性的方法。