我正在尝试设置oauth2-proxy以针对Microsoft 德语 Azure云进行身份验证。这是一个很大的旅程,但是我能够进行oauth握手。但是,尝试通过图形API接收用户邮件和名称时出现错误。
我在docker中这样运行代理:
docker run -it -p 8081:8081 \
--name oauth2-proxy --rm \
bitnami/oauth2-proxy:latest \
--upstream=http://localhost:8080 \
--provider=azure \
--email-domain=homefully.de \
--cookie-secret=super-secret-cookie \
--client-id=$CLIENT_ID \
--client-secret="$CLIENT_SECRET" \
--http-address="0.0.0.0:8081" \
--redirect-url="http://localhost:8081/oauth2/callback" \
--login-url="https://login.microsoftonline.de/common/oauth2/authorize" \
--redeem-url="https://login.microsoftonline.de/common/oauth2/token" \
--resource="https://graph.microsoft.de" \
--profile-url="https://graph.microsoft.de/me"
现在,它遇到了配置文件url(用于检索登录用户的身份)
日志输出为:
2019/01/28 09:24:51 api.go:21: 400 GET https://graph.microsoft.de/me {
"error": {
"code": "BadRequest",
"message": "Invalid request.",
"innerError": {
"request-id": "1e55a321-87c2-4b85-96db-e80b2a5af1a3",
"date": "2019-01-28T09:24:51"
}
}
}
我真的很感谢关于我在这里做错什么的建议?到目前为止,文档对我并没有真正帮助。在德国的天蓝色云中,情况似乎有很大不同,但是有关此的文档却很少。天青的文档仅描述了所有网址都不同的美国云这一事实(不幸的是,从逻辑上讲并不是这样),这使事情变得更加艰辛……
最好, 马赛厄斯
答案 0 :(得分:0)
问题在于个人资料网址https://graph.microsoft.de/me
不正确。
https://graph.microsoft.com/me
对美国云有效,而德国云则要求嵌入URL的版本如下:
https://graph.microsoft.de/v1.0/me
。
这对我有用:
docker run -it -p 8081:8081 \
--name oauth2-proxy --rm \
bitnami/oauth2-proxy:latest \
--upstream=http://localhost:8080 \
--provider=azure \
--email-domain=homefully.de \
--cookie-secret=super-secret-cookie \
--client-id=$CLIENT_ID \
--client-secret="$CLIENT_SECRET" \
--http-address="0.0.0.0:8081" \
--redirect-url="http://localhost:8081/oauth2/callback" \
--login-url="https://login.microsoftonline.de/common/oauth2/authorize" \
--redeem-url="https://login.microsoftonline.de/common/oauth2/token" \
--resource="https://graph.microsoft.de" \
--profile-url="https://graph.microsoft.de/v1.0/me"