Je développe une application iOS qui nécessite que les utilisateurs s'authentifient sur une Azure AD (non B2C), puis utilisent le jeton JWT pour appeler un WebAPI.Réclamation d'audience incorrecte à l'aide d'AppAuth pour iOS et Azure AD
J'utilise la bibliothèque AppAuth:
OIDAuthorizationService.discoverConfiguration(forDiscoveryURL: url) { configuration, error in
...
}
Et puis
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
...
}
Mais le problème est, ma demande d'audience de JWT jeton a le AppID de mon client, et non la APPID WebAPI, même si je transmets le paramètre de ressource avec le WebAPI AppID. Par conséquent, mon WebAPI rejette le jeton JWT car la revendication d'audience est incorrecte.
Que dois-je faire pour que l'audience de mon jeton JWT soit l'AppID de WebAPI?
Pouvez-vous vérifier vos traces HTTP pour vous assurer que la charge utile envoyée pour récupérer le jeton est correcte? –
Il semble que ce soit, parce que si je mets dans une ressource AppID invalide, alors je reçois une erreur disant que l'application est introuvable. –
Une analyse plus poussée montre que lorsque le point de terminaison/authorize est appelé, le paramètre de ressource est passé, mais lorsque le point de terminaison/token est appelé, ce n'est pas le cas. Donc la question est, comment pouvez-vous faire cela dans AppAuth? –