如何使用或访问Azure广告公开API(MyAPI)?

如何使用或访问Azure广告公开API(MyAPI)?,azure,asp.net-web-api,azure-active-directory,Azure,Asp.net Web Api,Azure Active Directory,我在AAD注册了我的机密客户和资源客户。 机密客户端具有访问资源客户端的API权限。 使用凭据从机密客户端登录后,如何向资源客户端发出请求 基于 例如,如果web API的应用程序ID为URI,而作用域名称为Employees.Read.All,则整个作用域为: 这个例子不足以让我理解访问令牌在哪里?您可以使用它来获取访问令牌 首先,通过浏览器中的url获取code。您需要在此步骤中登录 https://login.microsoftonline.com/{tenant}/oauth2/v2.

我在AAD注册了我的机密客户和资源客户。 机密客户端具有访问资源客户端的API权限。 使用凭据从机密客户端登录后,如何向资源客户端发出请求

基于

例如,如果web API的应用程序ID为URI,而作用域名称为Employees.Read.All,则整个作用域为:

这个例子不足以让我理解访问令牌在哪里?

您可以使用它来获取访问令牌

首先,通过浏览器中的url获取
code
。您需要在此步骤中登录

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=https://contoso.com/api/Employees.Read.All
&state=12345
然后,使用代码获取访问令牌

POST  https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

client_id={your-client-id}
&scope=https://contoso.com/api/Employees.Read.All
&code={the code from the previous step}
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret={your-client-secret}


关于隐性赠款流动:

此流程通常用于单页应用程序,并且隐式授权比其他授权具有更大的风险。请检查隐式授权是否适合您的应用,请参阅。如果不是,我仍然建议您使用auth代码流

注意:要让它工作,您需要首先在门户的隐式授权部分下选择访问令牌,导航到应用程序注册->应用程序->身份验证

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=https://contoso.com/api/Employees.Read.All
&response_mode=fragment
&state=12345
&nonce=678910
&prompt=none
您可以使用来获取访问令牌

首先,通过浏览器中的url获取
code
。您需要在此步骤中登录

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=https://contoso.com/api/Employees.Read.All
&state=12345
然后,使用代码获取访问令牌

POST  https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

client_id={your-client-id}
&scope=https://contoso.com/api/Employees.Read.All
&code={the code from the previous step}
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret={your-client-secret}


关于隐性赠款流动:

此流程通常用于单页应用程序,并且隐式授权比其他授权具有更大的风险。请检查隐式授权是否适合您的应用,请参阅。如果不是,我仍然建议您使用auth代码流

注意:要让它工作,您需要首先在门户的隐式授权部分下选择访问令牌,导航到应用程序注册->应用程序->身份验证

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=https://contoso.com/api/Employees.Read.All
&response_mode=fragment
&state=12345
&nonce=678910
&prompt=none

这是客户端凭据流吗?我不能使用Microsoft登录页获取访问令牌吗?不,它只是身份验证代码流。客户端凭据流用于应用程序,而不是用户。@RonaldAbellano“使用Microsoft登录页获取访问令牌”。你的意思是用浏览器调用URL,然后直接获取访问令牌吗?是的。因此,用户是我的AAD中的租户成员。我已经注册了一个用户可以登录的机密客户端。我有一个公开的资源应用程序API。从客户端,我将使用资源应用程序api。可能吗?正如我的回答所示,您需要通过第一个URL登录才能获得代码。然后使用此代码获取访问令牌。如果您想在一个步骤中登录并获得访问令牌,您可以使用。我将在回复中添加它。这是客户端凭据流吗?我不能使用Microsoft登录页获取访问令牌吗?不,它只是身份验证代码流。客户端凭据流用于应用程序,而不是用户。@RonaldAbellano“使用Microsoft登录页获取访问令牌”。你的意思是用浏览器调用URL,然后直接获取访问令牌吗?是的。因此,用户是我的AAD中的租户成员。我已经注册了一个用户可以登录的机密客户端。我有一个公开的资源应用程序API。从客户端,我将使用资源应用程序api。可能吗?正如我的回答所示,您需要通过第一个URL登录才能获得代码。然后使用此代码获取访问令牌。如果您想在一个步骤中登录并获得访问令牌,您可以使用。我会在答覆中加上。