首页 > 解决方案 > 从 Azure AD B2C 自定义策略调用 Azure AD Graph API?

问题描述

Azure AD B2C 自定义策略中的 REST API 调用在“ServiceUrl”字段中定义了一个固定 URL。

用于读取的 Graph API 调用的形式如下:

.../用户/对象ID

所以 URL 需要是动态的。

您可以将 objectID 添加为输入声明,但它如何进入 URL?

输出是一个 JSON 对象。我认为您可以对其进行声明转换以获取输出声明中定义的特定属性。

写入 Graph API 需要 PATCH,但自定义策略 REST API 调用仅允许 GET 和 POST。

似乎没有声明转换来构建 JSON 对象以从输出声明中写入。

是否可以从自定义策略调用 Azure AD Graph API?

标签: azure-ad-b2c

解决方案


3月1日编辑: 关于你的问题

是否可以从自定义策略调用 Azure AD Graph API?

要调用 azure AD,您必须使用 AzureActiveDirectoryProvider。restful 提供程序用于调用您可以自己设置和控制的任意 rest api。

要使用 AAD 提供程序,您可以按照此处的文档进行操作。https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom

以下是我关于 Restful Provider 功能的原始答案:

使用元数据键“SendClaimsAs”=“Url”的 Restful Provider 可以支持动态 URL

如果你使用它,你可以指定一个像这样的 url “ https://my.tld/ {partnerClaim1}/{partnerClaim2}” 并且声明将被填充到 url 中。

但是,如果您这样做,请求将始终是 Get 请求。

输出是一个 JSON 对象。我认为您可以对其进行声明转换以获取输出声明中定义的特定属性。

没错,您可以使用声明转换从 json 获取声明。

写入 Graph API 需要 PATCH,但自定义策略 REST API 调用仅允许 GET 和 POST。

似乎没有声明转换来构建 JSON 对象以从输出声明中写入。

你说得对,今天我们没有输出声明的声明转换,rest api 不支持补丁请求。


推荐阅读