我正在开发一个 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?