为什么我不能使用Trust of Platform的Identity API删除个人和团体身份之间的链接?

问题描述

我已经在Sandbox上创建了帐户

然后我与创建了一个小组

curl -i -X POST \
   -H "Authorization: Bearer <ACCESS_TOKEN>" \
   -H "Content-Type: application/json" \
   -d \
"{
  \"context\": \"https://standards.oftrust.net/v2/Context/Identity/Group/\",\"type\": \"Group\",\"data\": {
    \"name\": \"Company Oy\"
  }
}" "https://api-sandBox.oftrust.net/identities/v1"

我还创建了个人和群组之间的链接,我使用了MemberOf

curl -i --request POST \
  --url https://api-sandBox.oftrust.net/identities/v1/{fromIdentityId}/link/{toIdentityId} \
  --header 'Authorization: Bearer <ACCESS_TOKEN>' \
  --header 'content-type: application/json' \
  --data '{
  "context": "https://standards.oftrust.net/v2/Context/Link/Role/MemberOf/","type": "Member"
}'

我成功地获得了在这些身份之间建立链接的答案。

现在尝试删除链接,但得到回复 404 和消息未找到链接

我尝试的是根据documentation

中的示例
curl -i -X DELETE \
   -H "Authorization: Bearer <ACCESS_TOKEN>" \
 "https://api-sandBox.oftrust.net/identities/v1/{fromIdentityId}/link/{toIdentityId}/MemberOf"

[更新]:我也在Identity API documentation中发现了可以列出所有身份链接的信息。 并以此为组标识:

curl -i -X GET \
   -H "Authorization: Bearer <ACCESS_TOKEN>" \
 "https://api-sandBox.oftrust.net/identities/v1/<group_id>/links"

响应显示组和个人身份之间的联系。

解决方法

首先,请确保您遵守“发件人”和“收件人”的id值(其顺序)。它们应该与您对https://api-sandbox.oftrust.net/identities/v1/<group_id>/links

的响应相同

第二,如示例所示,delete Link端点需要与一种类型一起使用。在这种情况下,MemberOf。但是,查看链接的创建有一个错字:使用的上下文是正确的,但是类型是Member。类型应与上下文中名称的最后部分匹配=> MemberOf

在这种情况下,由于您要删除它,只需使用Member

curl -i -X DELETE \
   -H "Authorization: Bearer <ACCESS_TOKEN>" \
 "https://api-sandbox.oftrust.net/identities/v1/{fromIdentityId}/link/{toIdentityId}/Member"