如何在不使用客户端ID和客户端密钥的情况下为webapi生成oauth令牌

时间:2019-05-31 10:28:59

标签: azure asp.net-web-api oauth azure-active-directory

我已经将一个webapi部署到了Azure中。之后,我将我的API注册到Azure AD。

我有我的API客户ID和客户秘密,现在我只想测试我的API 第3个应用程序将对其进行访问,因此在这种情况下,这将是资源ID。

我已使用oauth对该Webapi进行身份验证。

我想测试该webapi,以便在POSTMAN中使用此URL生成oauth令牌

我将其作为标头Authentication承载令牌传递。

步骤1- https://login.microsoftonline.com/ {{OAuth_Tenant}} / oauth2 / token

标题-

grant_type:client_credentials
client_id:{{client_id}}           // i have my API client-id
client_secret:{{client_secret}}   // i have my API client-secret
resource:{{resource}}             // i have my API client-id

当我使用上述值生成令牌并发送该承载令牌时,它将失败且未授权错误。

1 个答案:

答案 0 :(得分:1)

您需要在Azure Active Directory中注册一个应用程序以获取访问令牌。

在此处注册一个应用,然后您可以在此处找到客户端ID /应用ID。 然后,您可以为应用创建密钥,这就是您的客户秘密。 最后,资源应该是用于Azure AD中API的应用程序注册的客户端ID或应用程序ID URI。

要根据最佳做法实施此操作,您还需要研究为API定义应用程序权限,以便为应用程序分配权限以调用API。