我尝试用Azure OAuth2保护Spring Boot web应用程序。此应用程序基于Azure SDK示例Azure spring boot示例active directory webapp。
我将应用程序作为Web应用程序构建并部署到Azure。我的MS证书受到质疑,我同意分享我的信息。我得到以下错误:
AADSTS50011:请求中指定的回复URL与为应用程序配置的回复URL不匹配:'**客户端id**'。
我确信问题在于注册应用程序的重定向URL。我注册了样本告诉我要注册的URL,但我仍然得到了错误。我已经删除了Azure广告注册应用并重新开始,行为没有改变。
我看到这个错误与边缘和Chrome。
环境类
Spring引导父:2.3.8。发布
- Azure入门AD: 3.1.0
- OS:Linux
- Java:Java11
- Web服务器堆栈:JavaSE
Active Directory应用程序注册
支持的帐户类型:仅在此组织目录中的帐户(单个租户)
- 认证:Web:重定向url:https://myapp.azurewebsites.net/login/oauth2/code/azure
- 认证:Web:重定向url:https://myapp.azurewebsites.net/login/oauth2/code/arm
- 创建的秘密
- API权限:Azure服务管理:user_impersonation
- API权限:Microsoft图形:目录。AccessAsUser.所有(默认目录授予)
- API权限:Microsoft图形:用户。读取(默认目录授予)
- API权限:Office 365管理API:ActivityFeed。读取(默认目录授予)
- API权限:Office 365管理API:ActivityFeed。ReadDlp(授予默认目录)
- API权限:Office 365管理API:ServiceHealth。读取(默认目录授予)
application.yaml
azure:
activedirectory:
authorization-clients:
arm:
on-demand: true
scopes: https://management.core.windows.net/user_impersonation
graph:
scopes:
- https://graph.microsoft.com/User.Read
- https://graph.microsoft.com/Directory.Read.All
office:
scopes:
- https://manage.office.com/ActivityFeed.Read
- https://manage.office.com/ActivityFeed.ReadDlp
- https://manage.office.com/ServiceHealth.Read
client-id: my-client-id
client-secret: my-client-secret
tenant-id: my-tenant-id
user-group:
allowed-groups: group1, group2
post-logout-redirect-uri: https://myapp.azurewebsites.net/
波姆。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.8.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>mygroup</groupId>
<artifactId>adoauthdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>adoauthdemo</name>
<description>Demonstration of integrating a spring boot application with Azure AD OAuth</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-active-directory</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.12.0</version>
<configuration>
<authType>azure_cli</authType>
<resourceGroup>adoauthdemo-rg</resourceGroup>
<appName>adoauthdemo</appName>
<pricingTier>B1</pricingTier>
<region>eastus</region>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
<runtime>
<os>Linux</os>
<javaVersion>Java 11</javaVersion>
<webContainer>Java SE</webContainer>
</runtime>
</configuration>
</plugin>
</plugins>
</build>
</project>
我不得不在我的申请中添加以下内容。亚马尔。
server:
forward-headers-strategy: native
作为解释
我打开了应用程序的调试,终于看到了问题的根源:
重定向到'https://login.microsoftonline.com/**租户id**/oauth2/v2。0/授权?响应类型=代码
重要的部分是
redirect_uri
参数:http://myapp.azurewebsites.net/login/oauth2/code/azure
我的Spring Boot应用程序使用http而不是https。
现在我找到了一篇文章,解决了这个问题,他们修复了这个问题,正如我上面所指出的。
当我运行部署到Azure应用程序服务的应用程序时,会出现此错误。请求中指定的回复URL与为应用程序配置的回复URL不匹配。快把我逼疯了。我不知道回复URL应该是什么。
我已经为Azure B2C创建了一个新策略,带有自定义身份提供程序。但我看到了一些像这样的错误 “请求中指定的回复url与为应用程序配置的回复url不匹配”我在策略中看到回复url,并且身份提供程序的应用程序的回复url具有相同的url。 可能缺少什么? 谢啦!
我有一个.NET Core 2应用程序模板,配置为使用Azure广告开箱即用。 配置为: 在我的门户中,我有一个Azure应用程序注册,其id与相同。它具有回复URL。 只有当我将回复URL设置为< code >[LocalhostURL]/sign in-oidc 时,localhost应用程序才能工作,尽管我已经知道该配置不应该影响localhost上的登录。 Azure应用在任何情况下都不起
我已经按照文档配置了活动目录登录,但它总是给我错误“请求中指定的回复URL与为应用程序配置的回复URL不匹配” 我的配置和设置如下。 Startup.cs ConfigureServices方法 它总是要求我登录,但在登录后,我得到了下面的错误消息抱歉,但我们在登录时遇到问题。 AADSTS50011:请求中指定的回复URL与为应用程序配置的回复URL不匹配:'94652b2b-ac2d-470c
我创建了一个使用Azure Active Directory身份验证的Web应用程序。 在本地主机上一切正常,但是当我将应用程序发布到 Azure 中时,我收到以下错误: AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:“656cc46c-f858-4a45-bf83-698791e052f1”。 我所尝试的: 在 Azure 中,我将相关应用程序的回复
我已经使用spring boot构建了应用程序,并遵循了上面提到的类似步骤https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory 但我得到的是“请求中指定的回复URL与为应用程序配