gpt4 book ai didi

azure - ADAL 身份验证 token 与 Postman token Oauth2 不同

转载 作者:行者123 更新时间:2023-12-02 04:33:56 27 4
gpt4 key购买 nike

我正在尝试将我的 api 连接到 Dynamics 365 crm。当我通过 postman 获取 token 时,我可以访问,但是当我通过 ADAL 获取 token 时,请求返回 401 未经授权。如果我在我的应用程序上对 postman 获得的 token 进行硬编码,它就可以正常工作。我看到 postman 返回给我的信息不是 ADAL(例如刷新 token 、 token ID)

Get token with postman

使用 ADAL 获取 token

string resource = "https://******.crm2.dynamics.com/";
string clientId = "**************";
string clientSecret = "************";
string authority = "https://login.microsoftonline.com/*****/oauth2/authorize";

ClientCredential credential = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(authority, true);
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, credential);

最佳答案

通过 postman ,您可以使用 OAuth 2.0 authorization code flow 获取 token 。成功响应后,Azure AD 将返回访问 token 、刷新 token 、id token 。

使用 ADAL authContext.AcquireTokenAsync(resource, credential); 函数,您可以使用 client credentials flow 获取 token 。通过此流程,应用程序向 OAuth2 token 发布端点提供其客户端凭据,并作为返回获取代表应用程序本身的访问 token ,而无需任何用户信息,因此您将无法获取 id_token,因为不存在用户信息。此外,应用程序不需要获取刷新 token 。当访问 token 过期时,它只是返回到 OAuth2 token 颁发端点以获取新的 token 。

您可以通过ADAL使用授权码流程获取 token ,请点击here代码示例。

关于azure - ADAL 身份验证 token 与 Postman token Oauth2 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com