- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Xamarin 上开发一个应用程序。我正在尝试跨多个应用程序实现单点登录。为此,我使用 ADAL 首次通过 Azure AD 对用户进行身份验证,然后用户在 AcquireTokenAsync()
中的 ADAL 显示的 O365 页面中输入凭据。
var authContext = new AuthenticationContext(ServiceConstants.AUTHORITY);
var authResult = await authContext.AcquireTokenAsync(resourceUri, ServiceConstants.CLIENTID, ServiceConstants.RETURNURI, param);
var apiAccessToken = authResult.AccessToken;
成功进行身份验证后,我将收到的 token 保存到一个文件中,即使用户卸载应用程序,该 token 也仍然存在。
现在,下次用户启动应用程序时,我将保存的 token 传递给AcquireTokenAsync()
作为 UserAssertion
//Pass old accessToken
var userAssertion = new UserAssertion(accessToken);
var authResult = await authContext.AcquireTokenAsync(resourceUri, ServiceConstants.CLIENTID, userAssertion);
这按预期工作,并且用户已通过身份验证,而无需显示 O365 登录屏幕。
现在,当用户卸载应用程序并重新安装它时,我希望出现相同的行为。就我而言,当用户卸载并重新安装应用程序时,我尝试以相同的方式获取新 token ,方法是将保存的 token 作为 UserAssertion
添加到 AquireTokenAsync()
。但是我收到这样的错误:-
Invalid JWT token. Token format not valid.
我通过 Postman 交叉检查了 token ,它是一个有效的 token 。
知道如何解决这个问题吗?或者我可以实现相同的更好的方法?非常感谢任何帮助。
最佳答案
如果您已经获得了refresh_token,我们可以使用此 token 直接通过RETS静默获取access_token。
以下是一个示例供您引用:
POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=JqQX2PNo9bpM0uEihUPzyrh // NOTE: Only required for web apps
更多详细信息请参阅下面的链接。
关于azure - 具有旧访问 token ADAL 的 AcquireTokenAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46966983/
我创建了一个获取 Azure token 的控制台应用程序,并且我可以毫无问题地与 Graph API 进行通信。当我在 Windows 或 Web 应用程序中使用相同的逻辑时,AcquireToke
我正在尝试使用下面提到的代码在 Web 应用程序中从 AzureAD 获取所有 office365 用户的列表。但是, authContext.AcquireTokenAsync(resrouce,
我正在尝试使用以下重载:authContext.AcquireTokenAsync(, ) 这适用于简单的控制台应用程序,并且我能够检索 token 。但是当我从 Web 应用程序运行它时,调用不会返
我正在使用 ADAL (Microsoft.IdentityModel.Clients.ActiveDirectory v4.3.0) AuthenticationContext.AcquireTok
我正在尝试使用以下重载:authContext.AcquireTokenAsync(, ) 这适用于简单的控制台应用程序,并且我能够检索 token 。但是当我从 Web 应用程序运行它时,调用不会返
我正在使用 ADAL (Microsoft.IdentityModel.Clients.ActiveDirectory v4.3.0) AuthenticationContext.AcquireTok
我希望能够以编程方式从 Azure 获取 token 。 我调用 GetAToken().Wait(); 但失败了。 方法是: public async Task GetAToken() {
我们正在编写一个必须与 Dynamics CRM 2016 Online 集成的 WCF 服务。我正在尝试使用 ADAL 进行身份验证,方法是 AcquireTokenAsync()。问题是,它会显示
我正在尝试从基于站点的 WebService 调用 Azure 托管 WebAPI。基于站点的服务是 adal-angluar SPA,然后必须调用 Azure 中托管的 REST API。来自 AA
我正在使用Active Directory Authentication Library (ADAL) library for Apache Cordova在 Ionic 移动应用程序上。我在调用 a
首先,我不确定这是否重要,但由于@Simon Mourier 在 him answer 中提到的原因,我正在使用 ADAL 的实验版本, this one . 在下面的代码中,我想同步获取一个Auth
在 Azure AD 中,当我们进行诸如 AuthenticationContext.AcquireTokenAsync(resource, new ClientAssertionCertificat
我正在 Xamarin 上开发一个应用程序。我正在尝试跨多个应用程序实现单点登录。为此,我使用 ADAL 首次通过 Azure AD 对用户进行身份验证,然后用户在 AcquireTokenAsync
我正在 Xamarin 上开发一个应用程序。我正在尝试跨多个应用程序实现单点登录。为此,我使用 ADAL 首次通过 Azure AD 对用户进行身份验证,然后用户在 AcquireTokenAsync
我使用 AcquireTokenAsync 通过 Azure Active Directory 进行身份验证。 下面是代码 var uc = new UserCredential(username,
我有一个在 Multi-Tenancy 场景中使用的 native 应用程序。为了对用户进行身份验证——并征得他们同意允许此应用程序代表他们访问 Azure——我只需实例化一个 Authenticat
我要求使用 Azure AD 通过 OAuth 2.0 对我的 clinet 应用程序进行身份验证。 我们开始使用 Microsoft.IdentityModel.Clients.ActiveDire
TL;DR 使用 AuthenticationContext.AcquireTokenAsync() 和 MobileServiceClient.LoginAsync() 对用户进行身份验证有什么区别
我按照 Microsoft Hello Key Vault 中的示例在 ASP.Net MVC Web 应用程序上设置了 Azure Keyvault示例应用程序。 默认情况下,Azure KeyVa
问题陈述 我正在使用 .NET Core,并且正在尝试使 Web 应用程序与 Web API 通信。两者都需要使用 [Authorize] 进行身份验证属性在他们所有的类上。为了能够在它们之间进行服务
我是一名优秀的程序员,十分优秀!