Nastavitev preverjanja pristnosti Microsoft 365
Pri razvoju spletnih aplikacij za izobraževalne namene lahko integracija institucionalnih virov, kot je e-pošta Microsoft 365, izboljša uporabniško izkušnjo in poenostavi postopke prijave. Ta integracija je še posebej uporabna, ko morajo biti aplikacije usklajene z univerzitetnimi pravilniki IT, kar lahko omeji ustvarjanje aplikacij pod poverilnicami univerze.
V tem primeru je uporaba osebnega računa Microsoft Azure za nastavitev aplikacije praktična rešitev. Vendar pa se lahko pojavijo težave, kot so težave z omejitvami najemnikov, ko se poskušate prijaviti z univerzitetno e-pošto. To zahteva strategijo za upravljanje uporabniških računov v različnih najemnikih brez ogrožanja funkcionalnosti ali varnosti aplikacije.
Ukaz | Opis |
---|---|
oauth.remote_app() | Inicializira nov primerek oddaljene aplikacije za OAuth; uporablja se za upravljanje komunikacije s ponudniki OAuth. |
flask_oauthlib.client.OAuth | Razširitev Flask za integracijo ponudnikov storitev OAuth, kar olajša preverjanje pristnosti prek protokolov OAuth. |
authorized_response() | Ta metoda je del Flask-OAuthlib in pridobi pooblaščen odgovor OAuth iz funkcije povratnega klica. |
session['oauth_token'] | Uporablja se za shranjevanje žetona OAuth v seji za kasnejši dostop, ključnega pomena za upravljanje uporabniških sej in stanja preverjanja pristnosti. |
microsoft.authorize() | Metoda, ki preusmeri na avtorizacijski URL ponudnika OAuth, kjer lahko uporabnik avtorizira aplikacijo. |
url_for() | Pomožna funkcija v Flasku, ki ustvari končno točko za dano funkcijo pogleda. Uporaben je za generiranje URL-jev za preusmeritve. |
Razlaga integracije Flask s preverjanjem pristnosti Microsoft 365
Frontend in backend skripti skupaj olajšajo integracijo prijave Microsoft 365 v spletno aplikacijo Flask. Na sprednjem delu preprosta stran HTML predstavlja gumb, ki ob kliku sproži funkcijo JavaScript za preusmeritev uporabnika v zaledje za preverjanje pristnosti. Ta proces se začne z loginWithMicrosoft() funkcijo, ki spremeni lokacijo okna v zaledno pot, ki jo obravnava Flask. Zaledni skript uporablja Flask in Flask-OAuthlib za upravljanje toka OAuth z Microsoftovo platformo identitete.
V ozadju je oauth.remote_app() ukaz vzpostavi povezavo z Microsoftovimi končnimi točkami OAuth z uporabo poverilnic aplikacije. The microsoft.authorize() funkcija sproži postopek preverjanja pristnosti tako, da uporabnika preusmeri na Microsoftovo avtorizacijsko stran. Ko se uporabnik prijavi in dodeli potrebna dovoljenja, ga ponudnik OAuth pošlje nazaj v aplikacijo z uporabo URL-ja za povratni klic, podanega v url_for('authorized'). The authorized_response() metoda obdela ta povratni klic in pridobi žeton za dostop, potreben za potrditev avtentikacije in vzdrževanje uporabnikove seje.
Frontend Microsoft 365 vmesnik za preverjanje pristnosti
HTML in JavaScript, uporabljena za frontend
<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>
Potek preverjanja pristnosti v ozadju z Microsoft 365
Python in Flask, uporabljena za zaledje
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)
Napredne nastavitve za preverjanje pristnosti Microsoft 365 v Flasku
Če želite rešiti težavo integracije prijave v Microsoft 365 brez uporabe e-pošte, ki jo upravlja univerza, je bistveno razumeti koncept aplikacij z več najemniki v Azure. Aplikacija z več najemniki omogoča uporabnikom iz več najemnikov Azure AD dostop do aplikacije, kar je idealno za univerzitetne nastavitve, kjer imajo lahko študenti različne e-poštne naslove v domeni. Ta nastavitev zahteva konfiguracijo aplikacije Azure za sprejemanje vpisov od katerega koli najemnika Azure AD, kar se izvede tako, da se 'signInAudience' v manifestu aplikacije nastavi na 'AzureADMultipleOrgs'.
Ta sprememba konfiguracije omogoča študentom, da uporabljajo svojo univerzitetno e-pošto, tudi če je bila aplikacija prvotno ustvarjena z osebno e-pošto. Prav tako poenostavi upravljanje, saj razvijalcu ni treba posameznega uporabnika dodati najemniku. Ta pristop izkorišča prilagodljivost storitev upravljanja identitete Azure za zagotavljanje širše dostopnosti in brezhibne integracije v izobraževalne aplikacije.
Pogosta vprašanja o integraciji Microsoft 365 v aplikacije Flask
- Kaj je večnajemniško preverjanje pristnosti Azure AD?
- Preverjanje pristnosti več najemnikov Azure AD omogoča aplikacijam, da služijo uporabnikom iz več najemnikov Azure AD, ne le tistega, kjer je bila aplikacija registrirana.
- Kako konfiguriram svojo aplikacijo Flask za večnajemnika Azure?
- Spremeniti morate registracijo aplikacije v Azure, da bo sprejemala prijave katerega koli najemnika Azure AD, tako da v manifestu nastavite 'signInAudience'.
- Kakšne so prednosti uporabe oauth.remote_app() v Flasku?
- Ta funkcija poenostavlja povezovanje s ponudniki OAuth z upravljanjem toka OAuth, vključno s pridobivanjem žetonov in shranjevanjem.
- Zakaj lahko uporabnik prejme napako, da njegov račun ne obstaja v najemniku?
- To se običajno zgodi, če aplikacija ni nastavljena za večnajemniški dostop ali če uporabnik ni registriran kot zunanji uporabnik v najemniku.
- Kako lahko obravnavam napake med postopkom preverjanja pristnosti v Flasku?
- Izvedite obravnavo napak v authorized_response() funkcijo za lovljenje in odzivanje na napake, kot so zavrnitve dostopa ali manjkajoči žetoni.
Končne misli o integraciji preverjanja pristnosti Microsoft 365
Skratka, integracija prijave Microsoft 365 v aplikacije Flask brez uporabe univerzitetne e-pošte vključuje nastavitev aplikacije Azure z osebnimi poverilnicami in njeno konfiguracijo za dostop z več najemniki. Ta pristop ne le zaobide omejitve, ki bi jih lahko naložile univerze pri uporabi uradnih e-poštnih sporočil za ustvarjanje aplikacij, ampak tudi poenostavlja postopek prijave za uporabnike v različnih najemnikih. Z upoštevanjem najboljših praks za OAuth in učinkovitim obravnavanjem morebitnih napak lahko razvijalci zagotovijo brezhibno in varno uporabniško izkušnjo.