Azure active directory 如何从服务获取作用域列表,以便通过客户端身份验证请求进行指定
我有一个UWP应用程序,它使用WebAccountManager进行AAD身份验证。我还有一个服务,托管在Azure中,由UWP应用程序使用。该服务使用UWP应用程序发送的令牌代表令牌获取另一个令牌(我认为这就是它的名称),然后作为用户调用其他服务API(例如Microsoft Graph和Outlook REST API)。换句话说,UWP应用程序调用WebAuthenticationCoreManager.RequestTokenAsync来获取令牌,并将其发送到我的服务,例如,我的服务调用AuthenticationContext.AcquireTokenAsync来获取在调用Outlook REST API时要使用的代表令牌 在“我的服务”的AAD注册中,“所需权限”列出了它可能代表用户进行的所有服务和权限/API调用(例如,“Microsoft Graph”->“完全访问用户日历”)Azure active directory 如何从服务获取作用域列表,以便通过客户端身份验证请求进行指定,azure-active-directory,azure-ad-graph-api,Azure Active Directory,Azure Ad Graph Api,我有一个UWP应用程序,它使用WebAccountManager进行AAD身份验证。我还有一个服务,托管在Azure中,由UWP应用程序使用。该服务使用UWP应用程序发送的令牌代表令牌获取另一个令牌(我认为这就是它的名称),然后作为用户调用其他服务API(例如Microsoft Graph和Outlook REST API)。换句话说,UWP应用程序调用WebAuthenticationCoreManager.RequestTokenAsync来获取令牌,并将其发送到我的服务,例如,我的服务调用
当我的UWP应用程序创建WebTokenRequest以传递到RequestTokenAsync函数时,它当前传递一个空字符串作为“scope”的值。它应该传递什么作为scope参数?它是否应该传递服务声明所需的完整且准确的权限列表?如果是这样,我如何向客户端获取该权限列表?只要硬编码并在服务所需权限列表发生更改时更新列表?在Azure Active Directory中,有两种根本不同的方法来指定应用程序进行身份验证时所需的权限
V2端点中的某些情况仍然需要静态同意,例如具有直接应用程序权限的服务对服务调用。对于这些情况,您将传递范围
/。默认值,如前所述。这可能也适用于委托令牌,但最好只使用动态同意。如何知道我正在使用的端点版本?根据您的回答,我怀疑我们使用的是1.0,因为我们使用的是静态同意。如果使用V1端点,我应该指定什么作为“scope”参数?注意:我还在这里询问了版本:它取决于获取访问令牌时调用的令牌端点<代码>https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
用于AAD v2。请注意url中的v2.0
。否则https://login.microsoftonline.com/{tenant}/oauth2/token
用于V1。注意,使用V1端点时没有范围
参数。从对另一个问题的回答来看,WAM似乎使用V1端点。您说在使用v1端点时没有scope
参数,但是WebTokenRequest
的构造函数中显然有一个scope
参数,它是。你是说它只是被忽略了,不管放在那里的是什么?你有没有想过放在什么范围内?