【问题标题】:How do I programatically assign a user to an application in AD B2C?如何以编程方式将用户分配给 AD B2C 中的应用程序?
【发布时间】:2017-07-12 14:54:04
【问题描述】:

我将以下结构的 AppRoleAssignment 发布到 Graph API

{
    "id": "00000000-0000-0000-0000-000000000000",
    "principalId": "db243e99-61b3-4e42-9359-91ae9bffa715",
    "resourceId": "e4ea7e05-50e7-4f38-b546-bdb6e9b1d77a"
}

对于资源 ID,我首先尝试了 B2C 门户显示的应用程序 ID。这将失败,并显示找不到资源的错误。我在该租户中获得了应用程序的对象 ID,然后将其发布,但仍然找不到错误资源。

具体错误是
“资源 'e4ea7e05-50e7-4f38-b546-bdb6e9b1d77a' 不存在或其查询的引用属性对象之一不存在。”

如何将用户添加到 B2C 中的应用?

【问题讨论】:

    标签: azure azure-ad-b2c azure-ad-graph-api


    【解决方案1】:

    来自文档:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/entity-and-complex-type-reference#approleassignment-entity

    resourceId 是为其进行分配的目标资源(服务主体)的唯一标识符 (objectId)。

    您可以先通过应用ID查询服务主体对象ID:

    Get https://graph.windows.net/myorganization/servicePrincipalsByAppId/1062a13d-f7e5-4ea7-8d24-427f6ff1e5e1/objectId?api-version=1.6
    

    然后您可以分配一个用户(如果资源未声明任何权限,则必须指定默认 id(零 GUID)):

    {
      "id": "id-of-role",
      "principalId": "objectId-of-user",
      "resourceId": "objectId-of-service-principal"
    }
    

    但是如果你想在用户没有分配给应用程序的情况下限制访问,请参考@Saca的reply,你需要自己实现,Azure AD B2C目前没有对应用程序分配的一流支持。

    【讨论】:

    • 有什么更新吗?如果您在此期间有任何问题,请随时告诉我
    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多