可能发生此错误的原因列表:OAuth2:: error, invalid_grant: AADSTS65001



我们已经在我们的web应用程序上实现了Microsoft Azure oauth2,我们正在努力解决用户在使用该oauth2方法时出现的常见错误。

错误:OAuth2:: error, invalid_grant: AADSTS65001: No permission to access user information is configured for '…的申请,或已过期或被撤销。与azure oauth流中82%的错误相似。

我们的配置如下:

# ==> Office 365 OAuth2
config.omniauth :azure_oauth2,
  client_id: '...',
  client_secret: '...',
  tenant_id: '...',
  resource: 'https://outlook.office365.com/',
  setup: lambda { |env|
    params = Rack::Utils.parse_query(env['QUERY_STRING'])
    options = env['omniauth.strategy'].options
    case params['state']
    when 'calendar'
      options[:prompt] = 'login'
    when 'select_account'
      options[:prompt] = 'login'
    end 
  }   

我们知道这个错误可以由使用非Office 365帐户引起。因为我们的资源是'https://outlook.office365.com/',因为我们的应用程序需要能够与您的日历交互,用户必须通过office365帐户进行身份验证。其他帐户,如microsoft live帐户,也会导致此错误。

1 -还有什么可能导致这个错误?

2 -有没有办法限制azure oauth流,只允许真正的office 365登录?

原因是:如果用户被锁定并且必须重置他的密码或任何其他无效尝试登录到Azure AD(针对o365对用户进行身份验证)将使您的应用程序具有的刷新令牌无效。因此,应用程序将通过抛出此错误来优雅地处理更改的密码(旧的刷新令牌)。在这种情况下,你的应用程序应该重定向用户到授权页面来验证用户。

最新更新