Skip to content

Commit db0321e

Browse files
authored
Merge pull request #1578 from AzureAD/ameyapat/pass-flag-to-indicate-bart-support-to-broker
Add flag to indicate to broker that BART is supported by common-core
2 parents 90fc1c2 + c3ce8f0 commit db0321e

File tree

8 files changed

+181
-1
lines changed

8 files changed

+181
-1
lines changed

IdentityCore/IdentityCore.xcodeproj/project.pbxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,9 @@
783783
72C1EBFC2DEA8199004C40A4 /* MSIDBoundRefreshTokenCacheItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 72C1EBFB2DEA8185004C40A4 /* MSIDBoundRefreshTokenCacheItem.h */; };
784784
72C1EBFE2DEA81A1004C40A4 /* MSIDBoundRefreshTokenCacheItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C1EBFD2DEA819E004C40A4 /* MSIDBoundRefreshTokenCacheItem.m */; };
785785
72C1EBFF2DEA81A1004C40A4 /* MSIDBoundRefreshTokenCacheItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C1EBFD2DEA819E004C40A4 /* MSIDBoundRefreshTokenCacheItem.m */; };
786+
72C6EF0B2EB192CB00AF9AD0 /* MSIDBartFeatureUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 72C6EF0A2EB191E700AF9AD0 /* MSIDBartFeatureUtil.h */; };
787+
72C6EF0D2EB192D800AF9AD0 /* MSIDBartFeatureUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C6EF0C2EB192D600AF9AD0 /* MSIDBartFeatureUtil.m */; };
788+
72C6EF0E2EB192D800AF9AD0 /* MSIDBartFeatureUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C6EF0C2EB192D600AF9AD0 /* MSIDBartFeatureUtil.m */; };
786789
72C764F92E09CFB800043AB1 /* MSIDBoundRefreshTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C764F82E09CFA400043AB1 /* MSIDBoundRefreshTokenTests.m */; };
787790
72C764FA2E09CFB800043AB1 /* MSIDBoundRefreshTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C764F82E09CFA400043AB1 /* MSIDBoundRefreshTokenTests.m */; };
788791
72D961AE2DE12F1F005DED66 /* MSIDCachedNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = 72D961AD2DE12F19005DED66 /* MSIDCachedNonce.h */; };
@@ -2709,6 +2712,8 @@
27092712
72C1EBF62DE91ACC004C40A4 /* MSIDBoundRefreshToken.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSIDBoundRefreshToken.m; sourceTree = "<group>"; };
27102713
72C1EBFB2DEA8185004C40A4 /* MSIDBoundRefreshTokenCacheItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSIDBoundRefreshTokenCacheItem.h; sourceTree = "<group>"; };
27112714
72C1EBFD2DEA819E004C40A4 /* MSIDBoundRefreshTokenCacheItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSIDBoundRefreshTokenCacheItem.m; sourceTree = "<group>"; };
2715+
72C6EF0A2EB191E700AF9AD0 /* MSIDBartFeatureUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSIDBartFeatureUtil.h; sourceTree = "<group>"; };
2716+
72C6EF0C2EB192D600AF9AD0 /* MSIDBartFeatureUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSIDBartFeatureUtil.m; sourceTree = "<group>"; };
27122717
72C764F82E09CFA400043AB1 /* MSIDBoundRefreshTokenTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSIDBoundRefreshTokenTests.m; sourceTree = "<group>"; };
27132718
72D961AD2DE12F19005DED66 /* MSIDCachedNonce.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSIDCachedNonce.h; sourceTree = "<group>"; };
27142719
72D961AF2DE12F2E005DED66 /* MSIDCachedNonce.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSIDCachedNonce.m; sourceTree = "<group>"; };
@@ -5441,6 +5446,8 @@
54415446
D62600091FBD305800EE4487 /* util */ = {
54425447
isa = PBXGroup;
54435448
children = (
5449+
72C6EF0C2EB192D600AF9AD0 /* MSIDBartFeatureUtil.m */,
5450+
72C6EF0A2EB191E700AF9AD0 /* MSIDBartFeatureUtil.h */,
54445451
1E62D0E1228B758B000E2BBC /* mac */,
54455452
96F21AF020A4C895002B87C3 /* ios */,
54465453
23AB37E9235151E5003A6E6C /* ASAuthorizationSingleSignOnProvider+MSIDExtensions.h */,
@@ -6319,6 +6326,7 @@
63196326
B2BE924621A2279A00F5AB8C /* MSIDTelemetryBrokerEvent.h in Headers */,
63206327
230016402371126E00F7D19C /* MSIDProviderType.h in Headers */,
63216328
235480CD20DDF81000246F72 /* MSIDAADTenant.h in Headers */,
6329+
72C6EF0B2EB192CB00AF9AD0 /* MSIDBartFeatureUtil.h in Headers */,
63226330
B26A0B822071B6CC006BD95A /* MSIDAADOauth2Factory.h in Headers */,
63236331
72978AEB2E4C246F00DEA46D /* MSIDBoundRefreshToken+Redemption.h in Headers */,
63246332
B2DD4B2620A7D67C0047A66E /* MSIDLegacyRefreshToken.h in Headers */,
@@ -7339,6 +7347,7 @@
73397347
2A24815F2CB08344006FCB34 /* MSIDXpcSilentTokenRequestController.m in Sources */,
73407348
2AADDAC72DADB84D00CB7740 /* MSIDSSOXpcSilentTokenRequest.m in Sources */,
73417349
23C548062A2A5DBF00633DC0 /* MSIDBrokerOperationBrowserNativeMessageRequest.m in Sources */,
7350+
72C6EF0E2EB192D800AF9AD0 /* MSIDBartFeatureUtil.m in Sources */,
73427351
238D5D8C22B353830091A135 /* MSIDAADV2TokenResponseForV1Request.m in Sources */,
73437352
2352AF342AA7C7B700FA2253 /* MSIDBrowserNativeMessageGetTokenResponse.m in Sources */,
73447353
589BDB292718F18800BF3799 /* MSIDCredentialHeader.m in Sources */,
@@ -8064,6 +8073,7 @@
80648073
23B39A8220993302000AA905 /* MSIDAadAuthorityResolver.m in Sources */,
80658074
609E74C1228CC50E005E3FED /* MSIDMetadataCache.m in Sources */,
80668075
E70C4A30258D68D900A7A07E /* MSIDThrottlingCacheRecord.m in Sources */,
8076+
72C6EF0D2EB192D800AF9AD0 /* MSIDBartFeatureUtil.m in Sources */,
80678077
96F21AEE20A4C6F2002B87C3 /* UIApplication+MSIDExtensions.m in Sources */,
80688078
B253152623DD61FB00432133 /* MSIDSSOExtensionGetDeviceInfoRequest.m in Sources */,
80698079
96CE53EA20C73E3A002E24C9 /* MSIDWebviewFactory.m in Sources */,

IdentityCore/src/MSIDConstants.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ extern NSString * _Nonnull const MSID_FRT_STATUS_DISABLED;
211211
extern NSString * _Nonnull const MSID_BROWSER_RESPONSE_SWITCH_BROWSER;
212212
extern NSString * _Nonnull const MSID_BROWSER_RESPONSE_SWITCH_BROWSER_RESUME;
213213

214+
extern NSString * _Nonnull const MSID_BOUND_RT_REDEEM;
215+
214216
extern NSString * _Nonnull const MSID_FLIGHT_USE_V2_WEB_RESPONSE_FACTORY;
215217
extern NSString * _Nonnull const MSID_FLIGHT_SUPPORT_DUNA_CBA;
216218
extern NSString * _Nonnull const MSID_FLIGHT_DISABLE_JIT_TROUBLESHOOTING_LEGACY_AUTH;
@@ -231,6 +233,7 @@ extern NSString * _Nonnull const MSID_FLIGHT_IGNORE_COOKIES_IN_DUNA_RESUME;
231233
extern NSString * _Nonnull const MSID_FLIGHT_DISABLE_REMOVE_ACCOUNT_ARTIFACTS;
232234

233235
extern NSString * _Nonnull const MSID_FLIGHT_ENABLE_QUERYING_STK;
236+
extern NSString * _Nonnull const MSID_FLIGHT_IS_BART_SUPPORTED;
234237

235238
extern NSString * _Nonnull const MSID_DOMAIN_HINT_KEY;
236239

IdentityCore/src/MSIDConstants.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@
8383
NSString *const MSID_BROWSER_RESPONSE_SWITCH_BROWSER = @"switch_browser";
8484
NSString *const MSID_BROWSER_RESPONSE_SWITCH_BROWSER_RESUME = @"switch_browser_resume";
8585

86+
// Bound App Refresh token constants
87+
NSString *const MSID_BOUND_RT_REDEEM = @"bound_rt_redeem";
88+
8689
NSString *const MSID_FLIGHT_USE_V2_WEB_RESPONSE_FACTORY = @"use_v2_web_response_factory";
8790
NSString *const MSID_FLIGHT_SUPPORT_DUNA_CBA = @"support_duna_cba_v2";
8891
NSString *const MSID_FLIGHT_DISABLE_JIT_TROUBLESHOOTING_LEGACY_AUTH = @"disable_jit_remediation_legacy_auth";
@@ -95,6 +98,7 @@
9598
NSString *const MSID_FLIGHT_DISABLE_REMOVE_ACCOUNT_ARTIFACTS = @"disable_rm_metadata";
9699

97100
NSString *const MSID_FLIGHT_ENABLE_QUERYING_STK = @"enable_querying_stk";
101+
NSString *const MSID_FLIGHT_IS_BART_SUPPORTED = @"is_msal_bart_supported";
98102

99103
NSString *const MSID_DOMAIN_HINT_KEY = @"domain_hint";
100104

IdentityCore/src/requests/broker/MSIDBrokerTokenRequest.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#import "NSMutableDictionary+MSIDExtensions.h"
3434
#import "MSIDClaimsRequest.h"
3535
#import "MSIDAuthenticationScheme.h"
36+
#import "MSIDBartFeatureUtil.h"
3637

3738
#if TARGET_OS_IPHONE
3839
#import "MSIDKeychainTokenCache.h"
@@ -162,6 +163,10 @@ - (NSDictionary *)defaultPayloadContents:(NSError *__autoreleasing*)error
162163
#if TARGET_OS_IPHONE
163164
[queryDictionary msidSetNonEmptyString:self.brokerKey forKey:@"broker_key"];
164165
[queryDictionary msidSetNonEmptyString:self.brokerNonce forKey:@"broker_nonce"];
166+
if ([[MSIDBartFeatureUtil sharedInstance] isBartFeatureEnabled])
167+
{
168+
[queryDictionary msidSetNonEmptyString:@"1" forKey:MSID_BOUND_RT_REDEEM];
169+
}
165170
#endif
166171
[queryDictionary msidSetNonEmptyString:[MSIDVersion sdkVersion] forKey:@"client_version"];
167172
[queryDictionary msidSetNonEmptyString:claimsString forKey:@"claims"];
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
//
2+
// Copyright (c) Microsoft Corporation.
3+
// All rights reserved.
4+
//
5+
// This code is licensed under the MIT License.
6+
//
7+
// Permission is hereby granted, free of charge, to any person obtaining a copy
8+
// of this software and associated documentation files(the "Software"), to deal
9+
// in the Software without restriction, including without limitation the rights
10+
// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
11+
// copies of the Software, and to permit persons to whom the Software is
12+
// furnished to do so, subject to the following conditions :
13+
//
14+
// The above copyright notice and this permission notice shall be included in
15+
// all copies or substantial portions of the Software.
16+
//
17+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
//
22+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23+
// THE SOFTWARE.
24+
25+
#import <Foundation/Foundation.h>
26+
27+
@interface MSIDBartFeatureUtil : NSObject
28+
29+
+ (instancetype)sharedInstance;
30+
- (BOOL)isBartFeatureEnabled;
31+
- (void)setBartSupportInAppCache:(BOOL)isEnabled;
32+
@end
33+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
//
2+
// Copyright (c) Microsoft Corporation.
3+
// All rights reserved.
4+
//
5+
// This code is licensed under the MIT License.
6+
//
7+
// Permission is hereby granted, free of charge, to any person obtaining a copy
8+
// of this software and associated documentation files(the "Software"), to deal
9+
// in the Software without restriction, including without limitation the rights
10+
// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
11+
// copies of the Software, and to permit persons to whom the Software is
12+
// furnished to do so, subject to the following conditions :
13+
//
14+
// The above copyright notice and this permission notice shall be included in
15+
// all copies or substantial portions of the Software.
16+
//
17+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
//
22+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23+
// THE SOFTWARE.
24+
25+
#import "MSIDBartFeatureUtil.h"
26+
#import "MSIDCache.h"
27+
#import "MSIDFlightManager.h"
28+
#import "MSIDConstants.h"
29+
30+
static NSString *const k_bartCacheKey = @"com.microsoft.msid.bart_feature_enabled";
31+
@implementation MSIDBartFeatureUtil
32+
33+
+ (instancetype)sharedInstance
34+
{
35+
static MSIDBartFeatureUtil *sharedInstance = nil;
36+
static dispatch_once_t onceToken;
37+
dispatch_once(&onceToken, ^{
38+
sharedInstance = [[self alloc] init];
39+
[self sharedCache];
40+
});
41+
return sharedInstance;
42+
}
43+
44+
+ (MSIDCache *)sharedCache
45+
{
46+
static MSIDCache *k_nonceCache;
47+
static dispatch_once_t onceToken;
48+
dispatch_once(&onceToken, ^{
49+
k_nonceCache = [MSIDCache new];
50+
});
51+
return k_nonceCache;
52+
}
53+
54+
- (BOOL)isBartFeatureEnabled
55+
{
56+
#if TARGET_OS_IPHONE
57+
// Enable feature if it is enabled by app setting
58+
id cachedValue = [[self.class sharedCache] objectForKey:k_bartCacheKey];
59+
return [cachedValue boolValue];
60+
#else
61+
return NO;
62+
#endif
63+
}
64+
65+
- (void)setBartSupportInAppCache:(BOOL)isEnabled
66+
{
67+
#if TARGET_OS_IPHONE
68+
[[self.class sharedCache] setObject:@(isEnabled) forKey:k_bartCacheKey];
69+
#endif
70+
}
71+
@end

IdentityCore/tests/integration/ios/MSIDBrokerTokenRequestTests.m

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,23 @@
3636
#import "NSDictionary+MSIDTestUtil.h"
3737
#import "MSIDAuthenticationSchemePop.h"
3838
#import "MSIDAuthenticationSchemeSshCert.h"
39+
#import "MSIDBartFeatureUtil.h"
3940
@interface MSIDBrokerTokenRequestTests : XCTestCase
4041

4142
@end
4243

4344
@implementation MSIDBrokerTokenRequestTests
4445

46+
- (void)setUp
47+
{
48+
[self setBoundAppRefreshTokenFlight];
49+
}
50+
4551
- (void)tearDown
4652
{
4753
[MSIDIntuneEnrollmentIdsCache setSharedCache:[[MSIDIntuneEnrollmentIdsCache alloc] initWithDataSource:[[MSIDIntuneInMemoryCacheDataSource alloc] initWithCache:[MSIDCache new]]]];
4854
[MSIDIntuneMAMResourcesCache setSharedCache:[[MSIDIntuneMAMResourcesCache alloc] initWithDataSource:[[MSIDIntuneInMemoryCacheDataSource alloc] initWithCache:[MSIDCache new]]]];
49-
55+
[[MSIDBartFeatureUtil sharedInstance] setBartSupportInAppCache:NO];
5056
[super tearDown];
5157
}
5258

@@ -191,6 +197,7 @@ - (void)testInitBrokerRequest_whenValidParameters_shouldReturnValidPayload
191197
@"client_app_version": @"1.0",
192198
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
193199
@"application_token" : @"brokerApplicationToken",
200+
MSID_BOUND_RT_REDEEM : @"1",
194201
@"client_sku" : [self clientSku],
195202
@"skip_validate_result_account" : @"NO"
196203
};
@@ -238,6 +245,7 @@ - (void)testInitBrokerRequest_whenValidParameters_shouldReturnValidPayload_ATPop
238245
@"application_token" : @"brokerApplicationToken",
239246
@"req_cnf" : @"eyJraWQiOiJlQWkyNE9leml1czc5VlRadDhsZlhldFJTejdsR2thSmloWEJFWkIwMnV3In0",
240247
@"token_type" : @"Pop",
248+
MSID_BOUND_RT_REDEEM : @"1",
241249
@"client_sku" : [self clientSku],
242250
@"skip_validate_result_account" : @"NO"
243251
};
@@ -290,6 +298,7 @@ - (void)testInitBrokerRequest_whenValidParameters_shouldReturnValidPayload_SshCe
290298
@"key_id":@"key_id_value",
291299
@"req_cnf" : [NSString stringWithFormat:@"{\"kty\":\"RSA\",\"n\":\"%@\",\"e\":\"%@\"}", modulus, exponent],
292300
@"token_type" : @"ssh-cert",
301+
MSID_BOUND_RT_REDEEM : @"1",
293302
@"client_sku" : [self clientSku],
294303
@"skip_validate_result_account" : @"NO"
295304
};
@@ -339,6 +348,7 @@ - (void)testInitBrokerRequest_whenValidParameters_andUniversalLinkRequest_should
339348
@"client_app_version": @"1.0",
340349
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
341350
@"application_token" : @"brokerApplicationToken",
351+
MSID_BOUND_RT_REDEEM : @"1",
342352
@"client_sku" : [self clientSku],
343353
@"skip_validate_result_account" : @"NO"
344354
};
@@ -376,6 +386,7 @@ - (void)testInitBrokerRequest_whenParametersWithOptionalParameters_shouldReturnV
376386
@"client_app_version": @"1.0",
377387
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
378388
@"application_token" : @"brokerApplicationToken",
389+
MSID_BOUND_RT_REDEEM : @"1",
379390
@"client_sku" : [self clientSku],
380391
@"skip_validate_result_account" : @"NO"
381392
};
@@ -422,6 +433,7 @@ - (void)testInitBrokerRequest_whenValidParameters_andSDKCapabilities_shouldRetur
422433
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
423434
@"application_token" : @"brokerApplicationToken",
424435
@"sdk_broker_capabilities": @"capability1,capability2",
436+
MSID_BOUND_RT_REDEEM : @"1",
425437
@"client_sku" : [self clientSku],
426438
@"skip_validate_result_account" : @"NO"
427439
};
@@ -505,6 +517,7 @@ - (void)testInitBrokerRequest_whenParametersWithIntuneItems_shouldReturnValidPay
505517
@"client_app_version": @"1.0",
506518
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
507519
@"application_token" : @"brokerApplicationToken",
520+
MSID_BOUND_RT_REDEEM : @"1",
508521
@"client_sku" : [self clientSku],
509522
@"skip_validate_result_account" : @"NO"
510523
};
@@ -592,6 +605,7 @@ - (void)testInitBrokerRequest_whenParametersWithNestedAuthItems_shouldReturnVali
592605
@"application_token" : @"brokerApplicationToken",
593606
@"brk_client_id" : @"123-456-7890-123",
594607
@"brk_redirect_uri" : @"msauth.com.app.id://auth",
608+
MSID_BOUND_RT_REDEEM : @"1",
595609
@"client_sku" : [self clientSku],
596610
@"skip_validate_result_account" : @"NO"
597611
};
@@ -620,4 +634,42 @@ - (void)testInitBrokerRequest_whenParametersWithNestedAuthItems_shouldReturnVali
620634
XCTAssertEqualObjects(expectedResumeDictionary, request.resumeDictionary);
621635
}
622636

637+
- (void)testInitBrokerRequest_whenValidParameters_andBoundRefreshTokenExchangeNotRequestedWhenFlightEnabledButCacheNotEnabled
638+
{
639+
MSIDInteractiveTokenRequestParameters *parameters = [self defaultTestParameters];
640+
[[MSIDBartFeatureUtil sharedInstance] setBartSupportInAppCache:NO];
641+
XCTAssertFalse([[MSIDBartFeatureUtil sharedInstance] isBartFeatureEnabled]);
642+
643+
NSError *error = nil;
644+
MSIDBrokerTokenRequest *request = [[MSIDBrokerTokenRequest alloc] initWithRequestParameters:parameters brokerKey:@"brokerKey" brokerApplicationToken:@"brokerApplicationToken" sdkCapabilities:@[@"capability1", @"capability2"] error:&error];
645+
XCTAssertNotNil(request);
646+
XCTAssertNil(error);
647+
648+
NSDictionary *expectedRequest = @{@"authority": @"https://login.microsoftonline.com/contoso.com",
649+
@"client_id": @"my_client_id",
650+
@"correlation_id": [parameters.correlationId UUIDString],
651+
@"redirect_uri": @"my-redirect://com.microsoft.test",
652+
@"broker_key": @"brokerKey",
653+
@"client_version": [MSIDVersion sdkVersion],
654+
@"client_app_name": @"MSIDTestsHostApp",
655+
@"client_app_version": @"1.0",
656+
@"broker_nonce" : [MSIDTestIgnoreSentinel sentinel],
657+
@"application_token" : @"brokerApplicationToken",
658+
@"sdk_broker_capabilities": @"capability1,capability2",
659+
@"client_sku" : [self clientSku],
660+
@"skip_validate_result_account" : @"NO"
661+
};
662+
663+
NSURL *actualURL = request.brokerRequestURL;
664+
665+
NSString *expectedUrlString = [NSString stringWithFormat:@"msauthv2://broker?%@", [expectedRequest msidURLEncode]];
666+
NSURL *expectedURL = [NSURL URLWithString:expectedUrlString];
667+
XCTAssertTrue([expectedURL matchesURL:actualURL]);
668+
}
669+
670+
- (void)setBoundAppRefreshTokenFlight
671+
{
672+
[[MSIDBartFeatureUtil sharedInstance] setBartSupportInAppCache:YES];
673+
}
674+
623675
@end

changelog.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
## [TBD]
2+
* Allow duna external idp on MacOs #1593
3+
* Add flag to indicate app is requesting broker for Bound app RT #1578
24
* Add category for redeeming a Bound application refresh token #1565
35

46
Version 1.16.1

0 commit comments

Comments
 (0)