Подешавање Мицрософт 365 аутентификације
Приликом развоја веб апликација у образовне сврхе, интеграција институционалних ресурса као што је Мицрософт 365 е-пошта може побољшати корисничко искуство и поједноставити процесе пријављивања. Ова интеграција је посебно корисна када апликације треба да буду усклађене са ИТ политикама универзитета, што може ограничити креирање апликација под универзитетским акредитивима.
У овом сценарију, коришћење личног Мицрософт Азуре налога за подешавање апликације је практично решење. Међутим, могу се појавити изазови, као што су проблеми са ограничењима закупаца када покушавате да се пријавите помоћу универзитетске е-поште. Ово захтева стратегију за управљање корисничким налозима међу различитим закупцима без угрожавања функционалности или безбедности апликације.
Цомманд | Опис |
---|---|
oauth.remote_app() | Иницијализује нову инстанцу удаљене апликације за ОАутх; користи се за управљање комуникацијом са ОАутх провајдерима. |
flask_oauthlib.client.OAuth | Фласк екстензија за интеграцију добављача ОАутх услуга, што олакшава аутентификацију путем ОАутх протокола. |
authorized_response() | Као део Фласк-ОАутхлиб-а, овај метод преузима овлашћени ОАутх одговор из функције повратног позива. |
session['oauth_token'] | Користи се за чување ОАутх токена у сесији за каснији приступ, што је критично за управљање корисничким сесијама и стањем аутентификације. |
microsoft.authorize() | Метода која преусмерава на УРЛ ауторизације ОАутх добављача где корисник може да овласти апликацију. |
url_for() | Помоћна функција у Фласку која генерише крајњу тачку за дату функцију погледа. Користан је за генерисање УРЛ адреса за преусмеравања. |
Објашњење Фласк интеграције са Мицрософт 365 аутентификацијом
Фронтенд и бацкенд скрипте заједно олакшавају интеграцију Мицрософт 365 пријаве у Фласк веб апликацију. На фронтенду, једноставна ХТМЛ страница представља дугме које, када се кликне, покреће ЈаваСцрипт функцију да преусмери корисника на позадину ради провере аутентичности. Овај процес почиње са функција, која мења локацију прозора на позадинску руту којом управља Фласк. Позадинска скрипта користи и да управљате ОАутх током са Мицрософт-овом платформом идентитета.
У позадини, тхе команда поставља везу са Мицрософт-овим ОАутх крајњим тачкама користећи акредитиве апликације. Тхе функција покреће процес аутентификације преусмеравањем корисника на Мицрософтову страницу за ауторизацију. Након што се корисник пријави и додели потребне дозволе, ОАутх провајдер их шаље назад у апликацију користећи УРЛ за повратни позив наведен у . Тхе authorized_response() метода обрађује овај повратни позив, преузимајући приступни токен потребан за потврду аутентификације и одржавање сесије корисника.
Фронтенд Мицрософт 365 интерфејс за потврду идентитета
ХТМЛ и ЈаваСцрипт који се користе за фронтенд
<html>
<head>
<title>Login with Microsoft</title>
</head>
<body>
<button onclick="loginWithMicrosoft()">Sign In with Microsoft</button>
<script>
function loginWithMicrosoft() {
window.location.href = '/auth/microsoft';
}
</script>
</body>
</html>
Ток позадинске аутентикације са Мицрософт 365
Питхон и Фласк се користе за позадину
from flask import Flask, redirect, url_for, session
from flask_oauthlib.client import OAuth
import os
app = Flask(__name__)
app.secret_key = 'development'
oauth = OAuth(app)
microsoft = oauth.remote_app(
'microsoft',
consumer_key='YOUR_APP_ID',
consumer_secret='YOUR_APP_SECRET',
request_token_params={'scope': 'User.Read'}
base_url='https://graph.microsoft.com/v1.0/',
request_token_url=None,
access_token_method='POST',
access_token_url='https://login.microsoftonline.com/common/oauth2/v2.0/token',
authorize_url='https://login.microsoftonline.com/common/oauth2/v2.0/authorize'
)
@app.route('/')
def index():
return '<h1>Welcome to the Flask App</h1>' + '<a href="/login">Login with Microsoft</a>'
@app.route('/login')
def login():
return microsoft.authorize(callback=url_for('authorized', _external=True))
@app.route('/login/authorized')
def authorized():
response = microsoft.authorized_response()
if response is None or response.get('access_token') is None:
return 'Access denied: reason={0} error={1}'.format(
request.args['error'], request.args['error_description'])
session['oauth_token'] = (response['access_token'], '')
return 'Logged in as id={0}'.format(session['oauth_token'])
@microsoft.tokengetter
def get_microsoft_oauth_token():
return session.get('oauth_token')
if __name__ == '__main__':
app.run(debug=True)
Напредно подешавање за Мицрософт 365 аутентификацију у Фласк-у
Да бисте решили проблем интеграције пријављивања на Мицрософт 365 без коришћења е-поште којом управља универзитет, неопходно је разумети концепт апликација са више закупаца у Азуре-у. Апликација за више закупаца омогућава корисницима из више Азуре АД закупаца да приступе апликацији, што је идеално за универзитетска подешавања где студенти могу имати различите имејлове домена. Ово подешавање захтева конфигурисање Азуре апликације да прихвата пријаве од било ког Азуре АД станара, што се ради тако што се „сигнИнАудиенце“ у манифесту апликације постави на „АзуреАДМултиплеОргс“.
Ова промена конфигурације омогућава студентима да користе своје универзитетске имејлове, чак и ако је апликација првобитно креирана помоћу личне е-поште. Такође поједностављује управљање јер програмер не мора појединачно да додаје сваког корисника закупцу. Овај приступ користи флексибилност Азуре услуга управљања идентитетом како би се осигурала шира приступачност и беспрекорна интеграција у образовне апликације.
- Шта је Азуре АД потврда аутентичности више корисника?
- Азуре АД потврда идентитета за више корисника омогућава апликацијама да опслужују кориснике из више Азуре АД закупаца, а не само оног где је апликација регистрована.
- Како да конфигуришем своју Фласк апликацију за Азуре мулти-тенант?
- Морате да измените регистрацију апликације у Азуре-у да бисте прихватили пријаве од било ког Азуре АД станара тако што ћете поставити „сигнИнАудиенце“ у манифесту.
- Које су предности коришћења у Фласку?
- Ова функција поједностављује повезивање са ОАутх провајдерима тако што управља ОАутх током, укључујући преузимање и складиштење токена.
- Зашто корисник може добити грешку у којој се наводи да његов налог не постоји у закупцу?
- Ово се обично дешава ако апликација није подешена за приступ са више корисника или ако корисник није регистрован као спољни корисник у закупцу.
- Како могу да се носим са грешкама током процеса аутентификације у Фласк-у?
- Имплементирајте руковање грешкама у функција за хватање и реаговање на грешке као што су одбијени приступ или недостајући токени.
У закључку, интеграција Мицрософт 365 пријаве у Фласк апликације без коришћења универзитетске е-поште укључује постављање Азуре апликације са личним акредитивима и конфигурисање за приступ са више корисника. Овај приступ не само да заобилази ограничења која универзитети могу наметнути коришћењу службене е-поште за креирање апликација, већ и поједностављује процес пријављивања за кориснике у различитим закупцима. Пратећи најбоље праксе за ОАутх и ефикасно руковање потенцијалним грешкама, програмери могу да обезбеде беспрекорно и безбедно корисничко искуство.