我正在开发一个Python/Flask应用程序,我想使用OAuth进行登录。我的雇主使用Azure Active Directory,所以我正在尝试将其作为OAuth提供商进行集成。
我不是Azure租户管理员。
我创建了一个应用程序注册,并按照微软的文档设置了我的代码,但我是唯一可以成功登录到该应用程序的人。
我像这样构造我的授权URL (我在代码中有正确的租户名称、客户端id和重定向URI ):
import urllib.parse
import uuid
authorization_endpoint = 'https://login.microsoft.com/my-tenant.onmicrosoft.com/oauth2/authorize'
query = {
'client_id': 'my-client-id',
'nonce': uuid.uuid4(),
'redirect_uri': 'https://my-app.example.com/authorize',
'response_mode': 'form_post',
'response_type': 'id_token',
'scope': 'openid',
'state': uuid.uuid4()
}
authorization_url = f'{authorization_endpoint}?{urllib.parse.urlencode(query)}'
当我亲自测试登录到应用程序时,一切都很正常。但当其他任何人尝试时,他们都会访问授权URL,使用自己的凭据登录,然后得到一个包含以下错误的页面:
AADSTS165000:无效请求:请求令牌与用户上下文不匹配。不要在不同的请求或用户会话之间复制用户上下文值(cookies;表单字段;标头);始终维护整个单用户流中提供的所有值。失败原因:Token值不匹配;
为什么它只适用于我,而不适用于其他任何人?
发布于 2019-05-24 03:15:20
授权终结点错误。应该是https://login.microsoftonline.com/...
而不是https://login.microsoft.com/...
。
https://stackoverflow.com/questions/56258855
复制相似问题