authentication - 使用 ADAL 请求 Office 365 Government 身份验证令牌时服务器超时
问题描述
将 ADAL 库与政府帐户一起使用,授权令牌请求由于服务器超时而失败。需要令牌才能对服务器进行 EWS 调用。正在使用的权限是“ https://logon.microsoftonline.us ”。资源是“ https://outlook.office.us ”。
从公共租户(我们的公司租户)和我们的产品中检索令牌时没有问题。我们使用“ https://logon.microsoftonline.com ”接收令牌。资源是“ https://outlook.office.com ”。
我们可以在“ https://owa.us.af.mil/f5-w-{REDACTED}/adfs/ls/?client-request-id={REDACTED } ”使用相同的凭据访问服务器。但 ADAL 因“ https://federation.us.af.mil/adfs/ls/?login_hint= {REDACTED}.af.mil&client-request-id={REDACTED}&username={REDACTED}.af.mil&wa= wsignin1.0&wtrealm={已删除}"
政府服务器是否有正确的 ADFS 配置?如果是这样,可能的解决方案是什么?
我们的租户设置是否正确?我们是否需要公共应用程序访问的公共租户和政府客户的政府租户?或者这些可以互换吗?
我们设置了一个公共和政府 AAD 应用程序来处理令牌请求。我们认为这可能是问题所在。没变。我还对请求中使用的权限和资源做了一些修改。没变。我什至利用 ADAL 并使用我们的 HTTPS 协议而不是标准的 Apple HTTPS 协议。
下面是使用的上下文设置和令牌调用方法。
let authContext = ADAuthenticationContext(authority: authority, validateAuthority: true, error: &error)
authContext?.credentialsType = AD_CREDENTIALS_EMBEDDED
authContext?.acquireToken(withResource: self.resource, clientId: self.clientId, redirectUri: self.redirectUri,
userId: self.userID!, completionBlock: { result in })
此时令牌请求将始终超时:
ADAL 2.7.5 iOS Sim 12.1 [2018-12-12 17:14:38 - F06F784C-7F5B-4231-BE34-714AF8204357] -webAuthDidFailWithError: Error Domain=NSURLErrorDomain Code=-1001“请求超时。” UserInfo={NSUnderlyingError=0x600002fa5380 {错误域=kCFErrorDomainCFNetwork Code=-1001“请求超时。” UserInfo={NSErrorFailingURLStringKey= https://federation.us.af.mil/adfs/ls/?login_hint= {REDACTED}.af.mil&client-request-id={REDACTED}&username={REDACTED}.af.mil&wa=wsignin1 .0&wtrealm={已编辑}
用户体验带有空白屏幕的弹出窗口。该窗口通常会显示要求允许使用该应用程序的文本。大约 60 秒后出现超时消息。
解决方案
对此延迟回复表示歉意。您应该使用的资源不是 outlook.office365.us,而是 portal.apps.mil 或 outlook-dod.office365.us。
这有帮助吗?
推荐阅读
- javascript - Javascript中十进制数的计算问题
- c++ - CLion - 无法解决对类中构造函数的未定义引用
- azure - Azure 管道模板示例
- r - 如何在 Rtweet 的 search_fullarchive 查询中包含语言和其他过滤器?
- sql - 有没有办法在 MS SQL 中没有 ORDER BY 子句的有序输出
- html - 在 Angular 运行时动态调用时,toLocaleDateString 不是函数
- vue.js - 从服务器检索用户设置
- php - 无法在 Linux 服务器上使用 PHP 写入文件
- office-js - 如何使用 getTextRanges 分隔段落
- r - .r 文件扩展名的大小限制是多少?