使用ADAL请求Office 365政府身份验证令牌时服务器超时

时间:2018-12-22 00:16:31

标签: authentication azure-active-directory exchangewebservices adal azure-gov

使用带有政府帐户的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- {已编辑} / adfs / ls /?client-request-id = {已编辑}”中的相同凭据访问服务器。但是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 = {REDACTED}”

政府服务器是否具有正确的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 {Error Domain = kCFErrorDomainCFNetwork代码= -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 = {REDACTED}

用户会遇到一个空白屏幕的弹出窗口。该窗口通常会显示文本,询问是否允许使用该应用程序。约60秒后,出现超时消息。

1 个答案:

答案 0 :(得分:1)

对于对此延迟的响应,我们深表歉意。您应该使用的资源是portal.apps.mil或Outlook-dod.office365.us,而不是outlook.office365.us。

有帮助吗?