【问题标题】:AAD: Is it possible to put Microsoft Graph open extension into optionalClaims in AD Application Manifest?AAD:是否可以将 Microsoft Graph 开放扩展放入 AD 应用程序清单中的 optionalClaims 中?
【发布时间】:2018-05-04 15:42:32
【问题描述】:

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

AD Graph API 支持添加目录扩展,我们可以轻松地将其作为 optionalClaims 添加到 AD 应用程序清单中,如下所示:

"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 完成的目录扩展,我在声明中得到了它。

是我还是微软做事这么马虎?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    Open Extensions 是无类型的并存储在旁边资源:

    开放式扩展(以前称为 Office 365 数据扩展)为您提供了一种简单的方法,可以直接将非类型化属性添加到 Microsoft Graph 中的资源。

    【讨论】:

    • 然后您可以使用应用程序清单中的那些作为声明返回吗?在您提供的网址中,我看不到您如何向用户的架构扩展添加新值?
    • Microsoft Graph 的 Schema Extensions 和 Azure AD Graph API 的 Directory Schema Extensions 是相同的资源(与仅存在于 Graph 中的 Open Extensions 不同)。 Graph 文档包括为 group 资源创建和设置架构扩展的演练。 user: developer.microsoft.com/en-us/graph/docs/concepts/… 将使用相同的步骤
    • Authorization_RequestDenied 当我尝试添加架构扩展时,我几乎是管理员,并且是我的 AD 的唯一用户。我试图授予所有权限仍然不起作用。
    • 创建它们需要Directory.AccessAsUser.All 权限。此外,请确保您使用的是身份验证代码或隐式授权(不支持使用客户端凭据授权)。
    • This article 声明:“可选声明不支持架构和开放扩展,仅支持 AAD-Graph 样式目录扩展。”我认为您无法在清单中的 optionalClaims 中执行您所要求的操作。
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2015-09-10
    • 2018-03-11
    相关资源
    最近更新 更多