获取授权代码时出现问题-OAUTH-在Azure上

时间:2018-09-19 02:31:01

标签: azure oauth-2.0

我们有一个在Azure VM上运行的Flask Web应用程序,用于处理通过AD进行的身份验证。我们已经在Azure上注册了该应用程序并获得了详细信息。尝试获取授权代码时,我面临以下问题。请帮助。

也-在Azure上注册应用程序后,我获得了客户端ID。还可以从注册页面获取客户秘密吗?此客户端机密应用程序特定吗?我的意思是每次我注册一个新的应用程序时,都会生成并显示给我客户密码吗?

当我的flask应用程序在Linux VM上运行时,浏览器会在哪里弹出?是否基于重定向URI?因为我的重定向URI也在没有用户代理的Linux机器上。

这是获得授权的代码-code      @ APP.route('/ access')      def access():

    auth_state = str(uuid.uuid4())
    SESSION.auth_state = auth_state

    URL = config.AUTHORITY_URL + '/oauth2/authorize?'
    payload = urllib.parse.urlencode({'response_type': 'code',
               'client_id': config.CLIENT_ID,
               'redirect_uri': config.REDIRECT_URI,
               'state': auth_state,
               'resource': config.RESOURCE})

    return redirect(URL + payload)

重定向URI端点是/ login / authorized。

  @APP.route('/login/authorized')
  def authorized():

    cd = flask.request.args['code']
    auth_context = 
    adal.AuthenticationContext(config.AUTHORITY_URL,api_version=None)
    response_with_token =    
    auth_context.acquire_token_with_authorization_code
     (cd,config.REDIRECT_URI,config.RESOURCE,config.CLIENT_ID,
     config.CLIENT_SECRET)
    SESSION.headers.update({'Authorization': f"Bearer 
    {response_with_token['accessToken']}",
                        'Accept': 'application/json',
                        'Content-Type': 'application/json',
                        'return-client-request-id': 'true'})
    return redirect('/dbcall')

方法“访问”为我提供200个状态,并重定向到/ login / authorized。但是方法“授权”给我一个关键错误,即代码未定义。我想我没有收到来自AD服务器的任何响应。那是对的吗?我有什么错误吗?感谢您的所有帮助。

0 个答案:

没有答案