Azure注册应用如何获取目标应用的client_id与scope?能否用Graph API查询?
通过DNS名称获取Azure AD应用的client_id和scope
结论先行:仅靠目标应用的DNS域名,可以用Graph API拿到它的client_id,但scope的获取要看目标应用是否暴露了可调用的API。
获取client_id的方法:
Azure AD应用的DNS域名一般和应用的publisherDomain字段对应,或是出现在replyUrls里。你可以用Graph API的applications端点做筛选查询:GET https://graph.microsoft.com/v1.0/applications?$filter=publisherDomain eq '你的目标DNS域名'&$select=id,displayName,publisherDomain返回结果里的
id就是目标应用的client_id。如果目标应用的回调URL包含该域名,也可以把筛选条件换成contains(replyUrls, '你的目标DNS域名')。获取scope的注意事项:
应用的scope对应Graph API里的oauth2PermissionScopes属性,但只有当目标应用主动暴露了可供其他应用调用的API时,这个字段才有内容。你可以扩展查询来获取:GET https://graph.microsoft.com/v1.0/applications?$filter=publisherDomain eq '你的目标DNS域名'&$select=id,oauth2PermissionScopes,displayName如果目标应用没暴露任何API,
oauth2PermissionScopes会是空数组,这种情况下拿不到可用的scope。必要权限:
你的应用必须被授予Application.Read.All(应用权限)或Directory.Read.All(委托权限)的Graph API权限,才能查询组织内所有Azure AD应用的信息。
内容的提问来源于stack exchange,提问作者shuraosipov
相关产品推荐
相关产品推荐

