私は、モバイル以外のデバイスでも動作するが、Oracle MAF経由でモバイルデバイスにデプロイされたADAL4Jを使用したJavaプログラムを使用しています(Cordova、HTML5、CSS )、それはAuthenticationContextメソッドで失敗します。ADALモバイルデバイス上のJava:Promptは使用できません
エラーは次のとおりです。ここで
com.microsoft.aad.adal.AuthenticationException: Prompt is not allowed and failed to get token:
はメインのコードです:
service = Executors.newFixedThreadPool(1);
String url = AUTHORIZATION_ENDPOINT + tenantId + "/oauth2/authorize";
//Next line is where it fails
authContext = new AuthenticationContext(url, false, service);
Future<AuthenticationResult> future =
authContext.acquireToken(ARM_ENDPOINT, clientId, username, credential, null);
result = future.get();
System.out.println("Access Token - " + result.getAccessToken());
System.out.println("ID Token - " + result.getIdToken());
私は私が代わりにAcquireTokenSilentメソッドを使用する必要があります表示されます行ってきた研究に基づいて、しかし、このメソッドは、ADAL for Javaライブラリには存在しません(この記事の最新版ではADAL4J 1.1.3を使用しています)。私はこのメソッドが含まれているADAL for Cordovaライブラリがあることを知りました。しかし、これはNodeJSを使用しています。可能であれば、Javaソリューションを採用することをお勧めします。
助けていただければ幸いです。ありがとう。
EDIT:ADAL4JライブラリがAuthenticationContext.tokenCacheプロパティをサポートしていない場合、またはデバイス固有のADAL実装にあるPromptBehaviorオプションのサポートが含まれていない場合、主な問題だと思います。
本当の場合は、ADAL SDK for Cordovaまたは各デバイスADAL SDKを試してみる必要があります。
ピーター、返信いただきありがとうございます。あなたの理解は正しいです。残念ながら、私はすでに、OAL 2.0認証コードフローをADAL for Javaライブラリ経由で使用しています(authトークンの "/ oauth2/authorize"エンドポイントへの呼び出しに注意してください)。 – SoonersBaby