使用 Google Appengine Python (Webapp2) 我需要使用 OpenID Connect 对 Microsoft 的新 V2 端点进行身份验证

Using Google Appengine Python (Webapp2) I need to authenticate to Microsoft's new V2 endpoint using OpenID Connect

内置装饰器可以让我轻松访问 Google 自己的服务,但我如何重载这些装饰器以调用其他端点,特别是 Microsoft 的 V2 Azure 端点(我需要对 Office 365 用户进行身份验证).

我想覆盖以调用其他端点(例如 Microsoft)的代码片段:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize

decorator = OAuth2Decorator(
  client_id='d4ea6ab9-adf4-4aec-9b99-675cf46ad37',
  redirect_uri='',
  client_secret='sW8rJYvWtCBVpge54L8684w',
  scope='')



class Authtest(BaseRequestHandler):

  @decorator.oauth_required

非常感谢任何想法。 谢谢, 伊恩

在这上面浪费了很多时间,我可以确认您可以使用以下代码重载装饰器以定向到 Azure V2 端点:

decorator = OAuth2Decorator(
  client_id='d4ea6ab9-adf4-4aec-9b99-675cf46XXX',
  auth_uri='https://login.microsoftonline.com/common/oauth2/v2.0/authorize',

  response_type='id_token',
  response_mode='form_post',
  client_secret='sW8rJYvWtCBVpgXXXXX',
  extraQueryParameter='nux=1',
  state='12345',
  nonce='678910',
  scope=['openid','email','profile'])

问题是装饰器的编码纯粹是为了处理 Google API,无法解码来自 Microsoft 的响应,虽然可以通过修改 appengine.py 中的代码自己实现它工作太多了。

因此,如果您希望通过 Appengine 向 Microsoft Azure V2 端点进行身份验证,则无法使用内置的 OAuth2Decorator,这仅适用于 Google 自己的服务。