Azure active directory 可编程Azure AD应用程序发现

Azure active directory 可编程Azure AD应用程序发现,azure-active-directory,azure-ad-graph-api,Azure Active Directory,Azure Ad Graph Api,我有一项服务将作为应用程序在Azure广告中注册。每个地区(美国西部、美国东部等)将有一个应用程序注册。调用此服务的客户端需要获取访问令牌。访问令牌的访问群体必须是该区域的相应服务。服务在区域上被隔离,因此一个区域中的服务的访问令牌不能用于访问另一个区域中的服务。这是故意的 是否有适当的方法/推荐的最佳实践用于应用程序发现 我探讨了使用Graph API的想法。在模型中: 每个注册的服务都将使用模板化命名约定创建,例如-。这里有一个问题是,如果在注册这些应用程序的租户内部没有适当的协调,我们可能

我有一项服务将作为应用程序在Azure广告中注册。每个地区(美国西部、美国东部等)将有一个应用程序注册。调用此服务的客户端需要获取访问令牌。访问令牌的访问群体必须是该区域的相应服务。服务在区域上被隔离,因此一个区域中的服务的访问令牌不能用于访问另一个区域中的服务。这是故意的

是否有适当的方法/推荐的最佳实践用于应用程序发现

我探讨了使用Graph API的想法。在模型中:

  • 每个注册的服务都将使用模板化命名约定创建,例如-。这里有一个问题是,如果在注册这些应用程序的租户内部没有适当的协调,我们可能会最终导致名称冲突

  • “发现应用程序”(仅注册用于发现的应用程序)将具有图形API的application.Read权限。此处的身份验证将基于X509证书,以提高安全性

  • 使用针对discovery应用程序获取的访问令牌,客户端将查询Graph API,查找与名称匹配的预期服务应用程序受众。一旦获得该应用程序信息,我们将获得服务应用程序id。同样,上面的#1仍然存在问题-还将找到另一个注册了相同名称的应用程序

  • 然后,客户端将使用获得的服务应用程序id获取访问令牌,以与该服务对话


  • 任何帮助/指导都将不胜感激。如果已经有了合适的模式,我想确保我没有重新发明车轮。

    您的设计是可行的。当然,您需要对应用程序注册的名称进行合理调整,以消除名称冲突的影响

    我有一个建议,您可以将这些服务应用程序注册添加到安全组中,并使用Microsoft Graph(测试版)通过过滤器(模板化命名约定)列出它们

    参考:

    请注意,
    $count=true
    和请求头
    一致性级别:最终
    是必需的


    响应中有一个属性
    appId
    ,这正是您所需要的。通过这种方式,可以尽可能避免名称冲突的影响。

    如果我的答案对您有帮助,您可以将其作为答案接受(单击答案旁边的复选标记,将其从灰色变为填充)。看见这可能对其他社区成员有益。谢谢。嗨,你有机会了解我的答案吗?它有用吗?谢谢@AllenWu,是的,我看过了。我还没有尝试将这些应用程序放到一个组中,但是你的回答很有帮助。我知道我提出的解决方案是可行的;我在这里关心的是,是否有一个建议(一个更合适的方法)来代替我的建议。结果,我又等了几天,想看看是否还有其他人插话。当然:)但根据我的经验,你的设计可以,而且微软目前没有现成的解决方案。
    GET https://graph.microsoft.com/beta/groups/{id}/members?$count=true&$filter=startswith(displayName, 'a')
    ConsistencyLevel: eventual