Я изо всех сил пытаюсь проверить наше приложение с Azure Active Directory, чтобы использовать их единый вход.
Для проверки нашего домена они просят сделать JSON-файл доступным по этому адресу: {publisher_domain}/.well-known/microsoft-identity-association.json
В нашем приложении Flask я передаю файл по этому маршруту:
@app.route('/.well-known/microsoft-identity-association.json')
def microsoft_identity_association():
file = '.well-known/microsoft-identity-association.json'
return send_file(file, mimetype='application/json')
Я также пытался загрузить JSON в словарь и вернуть словарь, позволяющий Flask отобразить ответ:
@app.route('/.well-known/microsoft-identity-association.json')
def microsoft_identity_association():
file = '.well-known/microsoft-identity-association.json'
with open(file, encoding="utf-8") as file:
result = ujson.load(file)
response = flask.Response(result, mimetype='application/json')
response.headers.add('content-length' , str(result.__len__()))
return send_file(file, mimetype='application/json')
Но каждый раз я получаю один и тот же результат:
В ответ на запрос GET заголовок content-length
присутствует в моей локальной среде, но исчезает при развертывании моего приложения в Google App Engine Flex. Я проверил их документацию (https://cloud.google.com/appengine/docs/flexible/python/reference/request-headers) и связался с ними, но без особого успеха.
Они говорят: «Похоже, это работает так, как задумано. HTTP / 2 не требует« content-length »и поэтому"
Похоже, что эта процедура проверки приложений Microsoft является новой (май 2019 г.), поэтому трудно найти похожие проблемы.
Кто-то здесь сталкивался с такой же ситуацией и, надеюсь, нашелрешение?