1

我正在尝试设置 oauth2-proxy 以针对微软的德国天蓝色云进行身份验证。这是一段旅程,但我已经能够进行 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"

现在它偶然发现了个人资料网址(用于检索用户登录的身份)

日志输出是这样的:

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"
    }
  }
}

我真的很感激关于我在这里做错了什么的建议?到目前为止,文档对我并没有真正的帮助。似乎德国天蓝色云中的情况略有不同,但文档非常薄。azure 文档仅描述了所有 url 都不同的美国云(不幸的是,这不是很合乎逻辑的意义),这一事实使事情变得更加困难......

最好的,马蒂亚斯

4

1 回答 1

1

问题是个人资料网址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"
于 2019-01-28T12:31:03.177 回答