当前,我正在使用应用程序权限在azure AD中注册应用程序。我正在尝试找出是否有更好的选择吗?
当前方法:-
ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var application = new Application
{
DisplayName = "App_One",
RequiredResourceAccess = new List<RequiredResourceAccess>()
{
new RequiredResourceAccess
{
ResourceAppId = "cfa8b339-82a2-471a-a3c9-0fc0be7a4093",
ResourceAccess = new List<ResourceAccess>()
{
new ResourceAccess
{
//API permission :- user_impersonation
Id = Guid.Parse("f53da476-18e3-4152-8e01-aec403e6edc0"),
Type = "Scope"
}
}
}
}
};
//Create(Register) application
var app = await graphClient.Applications
.Request().AddAsync(application);
注意:-我正在将.net core 2.1与OpenIdConnect一起使用。
当前方法的局限性:-
我试图找出其他方法,然后发现下面的堆栈溢出问题已经解答
这给出了有关已授予权限
的一些提示问题:-
答案 0 :(得分:0)
有没有更好的方法可以实现这一目标,而无需使用手册 注册的应用程序(获得许可)?
无论您使用应用程序权限还是委派权限来访问graph api,都必须首先手动创建一个应用程序(或者您必须首先拥有一个应用程序),然后才能向该应用程序授予应用程序权限或委派权限,并且那么您可以使用此应用程序注册其他应用程序。
当前,用户(在Azure AD中)使用OpenIdConnect登录Web应用程序。能够 我使用用户令牌(登录后)注册应用(指用户之后 授权可以使用此令牌创建图形客户端)?如果可以,我该怎么办 这样吗?
是的,您可以在登录用户后使用访问令牌调用MS graph api创建应用程序,请参阅:auth code flow和sample。
是否可以使用“已登录”用户注册应用 委托人(权利要求)在委派权限的帮助下?(我没有 关于这一点的很多知识可以清除我的疑问 问题)?
您可以使用基于委派权限的应用程序来调用MS graph api来注册应用程序。 Here是一个详细的示例,但正如我之前说的,完成操作的不是用户自己,而是由应用程序代表用户完成操作。