@@ -52,20 +52,21 @@ + (NSString*) createDeviceAuthResponse:(NSString*) authorizationServer
5252 NSString * pKeyAuthHeader = @" " ;
5353 BOOL challengeSuccessful = false ;
5454
55- if (challengeType == AD_ISSUER){
56-
57- NSString * certAuths = [challengeData valueForKey: @" CertAuthorities" ];
58- certAuths = [[certAuths adUrlFormDecode ] stringByReplacingOccurrencesOfString: @" "
59- withString: @" " ];
60- NSString * issuerOU = [ADPkeyAuthHelper getOrgUnitFromIssuer: [info certificateIssuer ]];
61- challengeSuccessful = [self isValidIssuer: certAuths keychainCertIssuer: issuerOU];
62- }else {
63- NSString * expectedThumbprint = [challengeData valueForKey: @" CertThumbprint" ];
64- if (expectedThumbprint){
65- challengeSuccessful = [NSString adSame: expectedThumbprint toString: [ADPkeyAuthHelper computeThumbprint: [info certificateData ]]];
55+ if ([info isWorkPlaceJoined ]) {
56+ if (challengeType == AD_ISSUER){
57+
58+ NSString * certAuths = [challengeData valueForKey: @" CertAuthorities" ];
59+ certAuths = [[certAuths adUrlFormDecode ] stringByReplacingOccurrencesOfString: @" "
60+ withString: @" " ];
61+ NSString * issuerOU = [ADPkeyAuthHelper getOrgUnitFromIssuer: [info certificateIssuer ]];
62+ challengeSuccessful = [self isValidIssuer: certAuths keychainCertIssuer: issuerOU];
63+ }else {
64+ NSString * expectedThumbprint = [challengeData valueForKey: @" CertThumbprint" ];
65+ if (expectedThumbprint){
66+ challengeSuccessful = [NSString adSame: expectedThumbprint toString: [ADPkeyAuthHelper computeThumbprint: [info certificateData ]]];
67+ }
6668 }
6769 }
68-
6970 if (challengeSuccessful){
7071 pKeyAuthHeader = [NSString stringWithFormat: @" AuthToken=\" %@ \" ," , [ADPkeyAuthHelper createDeviceAuthResponse: authorizationServer nonce: [challengeData valueForKey: @" nonce" ] identity: info]];
7172 }
@@ -97,7 +98,7 @@ + (BOOL) isValidIssuer:(NSString*) certAuths
9798 keychainCertIssuer = [keychainCertIssuer uppercaseString ];
9899 certAuths = [certAuths uppercaseString ];
99100 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern: regexString options: 0 error: NULL ];
100-
101+
101102 for (NSTextCheckingResult * myMatch in [regex matchesInString: certAuths options: 0 range: NSMakeRange (0 , [certAuths length ])]){
102103 for (NSUInteger i = 0 ; i < myMatch.numberOfRanges ; ++i)
103104 {
@@ -115,7 +116,7 @@ + (BOOL) isValidIssuer:(NSString*) certAuths
115116+ (NSString *) createDeviceAuthResponse : (NSString *) audience
116117 nonce : (NSString *) nonce
117118 identity : (ADRegistrationInformation *) identity {
118-
119+
119120 NSArray *arrayOfStrings = @[[NSString stringWithFormat: @" %@ " , [[identity certificateData ] base64EncodedStringWithOptions: 0 ]]];
120121 NSDictionary *header = @{
121122 @" alg" : @" RS256" ,
0 commit comments