Azure广告重定向到登录URL而不是重定向URL

Azure广告重定向到登录URL而不是重定向URL,azure,azure-active-directory,adal,adal4j,Azure,Azure Active Directory,Adal,Adal4j,我正在将Azure AD登录身份验证集成到我的web应用程序中。我已经在azure开发门户中创建了一个帐户,并注册了我的应用程序详细信息。以下详细信息在azure portal中的应用程序注册期间提供。我已为登录URL提供了我的web应用的登录URL 登录URL-> 重定向url是-> 现在,当我登录到portal.office.com并使用凭据登录时,我可以在office 365登录页中看到我的web应用图标。当我选择我的web应用的图标时,我将被重定向到我的web应用的登录页面,而不是重定向

我正在将Azure AD登录身份验证集成到我的web应用程序中。我已经在azure开发门户中创建了一个帐户,并注册了我的应用程序详细信息。以下详细信息在azure portal中的应用程序注册期间提供。我已为登录URL提供了我的web应用的登录URL

登录URL->

重定向url是->

现在,当我登录到portal.office.com并使用凭据登录时,我可以在office 365登录页中看到我的web应用图标。当我选择我的web应用的图标时,我将被重定向到我的web应用的登录页面,而不是重定向到应用注册期间提供的重定向URL

最初我没有提供登录URL,但一旦我测试时没有提供,我就得到了“为应用程序提供的未定义登录URL”错误。所以我为登录URL字段提供了我的web应用的登录URL,现在我将重定向到我的web应用的登录页面,而不是前面提到的重定向URL

我使用ADAL库获取访问令牌。下面是代码

private AuthenticationResult acquireTokenByAuthorizationCode(String authCode) {
    String authority = System.getProperty("dashboard.azure.authority.url", "https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxx/oauth2/token");
    String clientId = System.getProperty("dashboard.azure.client.id", "xxxxxxxxxxxxxxxxxxxxxxxxx");
    String clientSecret = System.getProperty("dashboard.azure.client.secret", "xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    String redirectUrl = System.getProperty("dashboard.azure.redirect.uri", "https://my-sample-app/my.dashboard/azureLogin.html?");
    AuthenticationResult result = null;
    ExecutorService service = null;
    try {
      service = Executors.newFixedThreadPool(1);
      AuthenticationContext context = new AuthenticationContext(authority, false, service);
      ClientCredential credential = new ClientCredential(clientId, clientSecret);
      Future<AuthenticationResult> future = context.acquireTokenByAuthorizationCode(authCode, URI.create(redirectUrl), credential, null);
      result = future.get();
    } catch (Exception e) {
      LOGGER.error("Error occurred while acquiring token from Azure {}", e.getMessage());
      throw new Exception(String.format("Error occurred while acquiring token from Azure. %s", e.getMessage()));
    }
    return result;
  }
private AuthenticationResult acquireTokenByAuthorizationCode(字符串authCode){
字符串authority=System.getProperty(“dashboard.azure.authority.url”https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxx/oauth2/token");
字符串clientId=System.getProperty(“dashboard.azure.client.id”,“xxxxxxxxxxxxxxxxxxxxx”);
字符串clientSecret=System.getProperty(“dashboard.azure.client.secret”、“xxxxxxxxxxxxxxxxxxxxxxxx”);
String redirectUrl=System.getProperty(“dashboard.azure.redirect.uri”https://my-sample-app/my.dashboard/azureLogin.html?");
AuthenticationResult=null;
ExecutorService=null;
试一试{
服务=Executors.newFixedThreadPool(1);
AuthenticationContext=新的AuthenticationContext(authority、false、service);
ClientCredential=新的ClientCredential(clientId,clientSecret);
Future Future=context.acquireTokenByAuthorizationCode(authCode,URI.create(redirectUrl),credential,null);
结果=future.get();
}捕获(例外e){
error(“从Azure{}获取令牌时出错”,e.getMessage());
抛出新异常(String.format(“从Azure.%s获取令牌时出错”,例如getMessage());
}
返回结果;
}

我确信问题不在于代码。请告知我这里缺少的是button Office portal登录URL的问题

?因为这就是该属性的设计目的。我期望的是:登录到portal.office.com并选择“我的应用”按钮后,将调用重定向URL路径中编写的代码并获取访问令牌,将其保存在会话中并重定向到我的应用的登录页(这是我在应用程序中实现单点登录的方式)现在发生的情况:单击office 365中的应用程序按钮,我的应用程序的登录URL将加载到我应该输入应用程序的用户名和密码的位置。通常,登录URL是一个触发AAD登录的URL。因此,如果它发送用户登录并指定正确的重定向uri,一切都应该正常。我还不太清楚在哪里它走错了方向。