使用AppAuth for iOS和Azure AD的受众群体声明不正确

时间:2017-09-07 09:35:46

标签: ios azure jwt azure-active-directory appauth

我正在开发一个iOS应用程序,要求用户针对Azure AD(而不是B2C)进行身份验证,然后使用JWT令牌来调用WebAPI。

我正在使用AppAuth库:

 OIDAuthorizationService.discoverConfiguration(forDiscoveryURL: url) { configuration, error in
   ...
}

然后

let request = OIDAuthorizationRequest(configuration: configuration, clientId:<NativeApp AppID>, scopes: [OIDScopeOpenID], redirectURL: redirectURL, responseType: OIDResponseTypeCode, additionalParameters: ["resource": "<WebAPI AppID>"])
OIDAuthState.authState(byPresenting: request, presenting: presentingViewController) { state, error in
  ...
}

但问题是,我的JWT令牌的受众声明具有我的客户端的AppID,而不是WebAPI的AppID,即使我将资源参数与WebAPI AppID一起传递。

因此,我的WebAPI拒绝JWT令牌,因为受众群体声明不正确。

我需要做些什么才能让JWT令牌的受众声称自己是WebAPI的AppID?

1 个答案:

答案 0 :(得分:0)

请求访问其他资源时,Azure AD会返回ID令牌和访问令牌。我正在使用ID令牌,它始终将您的受众群体声明设置为您的客户。使用访问令牌(也是JWT令牌)可以为您请求访问的资源提供正确的受众声明。