$lang['tuto'] = "tutorijali"; ?>$lang['tuto'] = "tutorijali"; ?> Integrirajte Microsoft 365 Login u Flask Web Apps

Integrirajte Microsoft 365 Login u Flask Web Apps

Integrirajte Microsoft 365 Login u Flask Web Apps
Integrirajte Microsoft 365 Login u Flask Web Apps

Postavljanje Microsoft 365 autentifikacije

Prilikom razvoja web aplikacija u obrazovne svrhe, integracija institucionalnih resursa kao što je Microsoft 365 e-pošta može poboljšati korisničko iskustvo i pojednostaviti procese prijave. Ova je integracija posebno korisna kada se aplikacije moraju uskladiti s IT politikama sveučilišta, što može ograničiti stvaranje aplikacija pod vjerodajnicama sveučilišta.

U ovom je scenariju korištenje osobnog Microsoft Azure računa za postavljanje aplikacije praktično rješenje. Međutim, mogu se pojaviti izazovi, kao što su problemi s ograničenjima stanara kada se pokušavate prijaviti putem sveučilišne e-pošte. To zahtijeva strategiju za upravljanje korisničkim računima među različitim zakupcima bez ugrožavanja funkcionalnosti ili sigurnosti aplikacije.

Naredba Opis
oauth.remote_app() Inicijalizira novu instancu udaljene aplikacije za OAuth; koristi se za upravljanje komunikacijom s pružateljima OAuth.
flask_oauthlib.client.OAuth Flask proširenje za integraciju pružatelja OAuth usluga, što olakšava autentifikaciju putem OAuth protokola.
authorized_response() Dio Flask-OAuthliba, ova metoda dohvaća ovlašteni OAuth odgovor iz funkcije povratnog poziva.
session['oauth_token'] Koristi se za pohranjivanje OAuth tokena u sesiju za kasniji pristup, ključno za upravljanje korisničkim sesijama i stanjem autentifikacije.
microsoft.authorize() Metoda koja preusmjerava na autorizacijski URL pružatelja OAutha gdje korisnik može autorizirati aplikaciju.
url_for() Pomoćna funkcija u Flasku koja generira krajnju točku za danu funkciju prikaza. Korisno je za generiranje URL-ova za preusmjeravanja.

Objašnjenje integracije Flaska s Microsoft 365 autentifikacijom

Frontend i backend skripte zajedno olakšavaju integraciju Microsoft 365 prijave u Flask web aplikaciju. Na sučelju, jednostavna HTML stranica predstavlja gumb koji, kada se klikne, pokreće JavaScript funkciju za preusmjeravanje korisnika na pozadinu radi provjere autentičnosti. Ovaj proces počinje s loginWithMicrosoft() funkcija, koja mijenja lokaciju prozora u pozadinsku rutu kojom upravlja Flask. Pozadinska skripta koristi Flask i Flask-OAuthlib za upravljanje protokom OAuth s Microsoftovom platformom identiteta.

U pozadini, oauth.remote_app() naredba postavlja vezu s Microsoftovim OAuth krajnjim točkama pomoću vjerodajnica aplikacije. The microsoft.authorize() pokreće postupak provjere autentičnosti preusmjeravanjem korisnika na Microsoftovu stranicu za autorizaciju. Nakon što se korisnik prijavi i dodijeli potrebna dopuštenja, OAuth pružatelj ih šalje natrag u aplikaciju pomoću URL-a povratnog poziva navedenog u url_for('authorized'). The authorized_response() metoda obrađuje ovaj povratni poziv, dohvaćajući pristupni token potreban za potvrdu autentifikacije i održavanje korisničke sesije.

Frontend Microsoft 365 Authentication Interface

HTML i JavaScript koji se koriste za sučelje

<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>

Tijek pozadinske provjere autentičnosti s Microsoft 365

Python i Flask korišteni kao backend

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)

Napredno postavljanje za autentifikaciju Microsoft 365 u Flasku

Da biste riješili problem integracije Microsoft 365 prijave bez korištenja e-pošte kojom upravlja sveučilište, bitno je razumjeti koncept aplikacija s više korisnika u Azureu. Aplikacija s više zakupaca omogućuje korisnicima iz više Azure AD zakupaca da pristupe aplikaciji, što je idealno za sveučilišne postavke gdje studenti mogu imati različite adrese e-pošte u domeni. Ova postavka zahtijeva konfiguriranje aplikacije Azure za prihvaćanje prijava od bilo kojeg stanara Azure AD, što se postiže postavljanjem 'signInAudience' u manifestu aplikacije na 'AzureADMultipleOrgs'.

Ova promjena konfiguracije omogućuje studentima korištenje svoje sveučilišne e-pošte, čak i ako je aplikacija inicijalno stvorena s osobnom e-poštom. Također pojednostavljuje upravljanje budući da razvojni programer ne treba pojedinačno dodavati svakog korisnika zakupcu. Ovaj pristup iskorištava fleksibilnost Azureovih usluga upravljanja identitetom kako bi se osigurala šira dostupnost i besprijekorna integracija u obrazovne aplikacije.

Uobičajena pitanja o integraciji Microsoft 365 u Flask Apps

  1. Što je provjera autentičnosti više korisnika Azure AD?
  2. Azure AD provjera autentičnosti više zakupaca omogućuje aplikacijama da poslužuju korisnike iz više Azure AD zakupaca, a ne samo onog na kojem je aplikacija registrirana.
  3. Kako mogu konfigurirati svoju aplikaciju Flask za Azure multi-tenant?
  4. Morate izmijeniti registraciju aplikacije u Azureu da biste prihvatili prijave od bilo kojeg stanara Azure AD postavljanjem 'signInAudience' u manifestu.
  5. Koje su prednosti korištenja oauth.remote_app() u Flasku?
  6. Ova funkcija pojednostavljuje povezivanje s OAuth davateljima upravljanjem OAuth protokom, uključujući dohvaćanje tokena i pohranu.
  7. Zašto bi korisnik mogao dobiti pogrešku da njegov račun ne postoji u zakupcu?
  8. To se obično događa ako aplikacija nije postavljena za pristup s više zakupaca ili ako korisnik nije registriran kao vanjski korisnik u zakupcu.
  9. Kako mogu riješiti pogreške tijekom procesa provjere autentičnosti u Flasku?
  10. Implementirajte obradu pogrešaka u authorized_response() funkcija za hvatanje i reagiranje na pogreške kao što su odbijanje pristupa ili nedostajući tokeni.

Završne misli o integraciji provjere autentičnosti Microsoft 365

Zaključno, integracija Microsoft 365 prijave u Flask aplikacije bez korištenja sveučilišne e-pošte uključuje postavljanje Azure aplikacije s osobnim vjerodajnicama i njezino konfiguriranje za pristup s više korisnika. Ovaj pristup ne samo da zaobilazi ograničenja koja bi sveučilišta mogla nametnuti u korištenju službene e-pošte za kreiranje aplikacija, već i pojednostavljuje postupak prijave za korisnike preko različitih zakupaca. Slijedeći najbolje prakse za OAuth i učinkovito rješavajući moguće pogreške, programeri mogu pružiti besprijekorno i sigurno korisničko iskustvo.