Microsoft 365 autentimise seadistamine
Hariduslikel eesmärkidel veebirakenduste arendamisel võib institutsionaalsete ressursside (nt Microsoft 365 meili) integreerimine parandada kasutajakogemust ja lihtsustada sisselogimisprotsesse. See integreerimine on eriti kasulik, kui rakendused peavad ühtima ülikooli IT-poliitikaga, mis võib piirata rakenduste loomist ülikooli volikirja alusel.
Selle stsenaariumi korral on praktiline lahendus isikliku Microsoft Azure'i konto kasutamine rakenduse seadistamiseks. Siiski võivad tekkida väljakutsed, näiteks probleemid üürniku piirangutega, kui proovite ülikooli e-postiga sisse logida. See nõuab strateegiat erinevate rentnike kasutajakontode haldamiseks, ilma et see kahjustaks rakenduse funktsioone või turvalisust.
Käsk | Kirjeldus |
---|---|
oauth.remote_app() | Lähtestab OAuthi jaoks uue kaugrakenduse eksemplari; seda kasutatakse OAuthi pakkujatega suhtlemiseks. |
flask_oauthlib.client.OAuth | Flask-laiendus OAuthi teenusepakkujate integreerimiseks, mis muudab OAuthi protokollide kaudu autentimise lihtsamaks. |
authorized_response() | See meetod Flask-OAuthlibi osana hangib tagasihelistamisfunktsioonist volitatud OAuthi vastuse. |
session['oauth_token'] | Kasutatakse OAuthi märgi salvestamiseks seansis hilisemaks juurdepääsuks, mis on kasutajaseansside ja autentimisoleku haldamiseks ülioluline. |
microsoft.authorize() | Meetod, mis suunab ümber OAuthi pakkuja autoriseerimise URL-ile, kus kasutaja saab rakenduse autoriseerida. |
url_for() | Abifunktsioon Flaskis, mis loob antud vaatefunktsiooni jaoks lõpp-punkti. See on kasulik ümbersuunamiste jaoks URL-ide loomiseks. |
Kolvi integreerimise selgitus Microsoft 365 autentimisega
Esi- ja tagaprogrammi skriptid koos hõlbustavad Microsoft 365 sisselogimise integreerimist Flaski veebirakendusse. Esiküljel on lihtne HTML-leht nupp, millel klõpsamisel käivitatakse JavaScripti funktsioon, mis suunab kasutaja autentimiseks taustaprogrammi. See protsess algab loginWithMicrosoft() funktsioon, mis muudab akna asukohta Flaski hallatava tausta marsruudi järgi. Taustaprogrammi skript kasutab Flask ja Flask-OAuthlib OAuthi voo haldamiseks Microsofti identiteediplatvormiga.
Tagaprogrammis on oauth.remote_app() käsk loob rakenduse mandaatide abil ühenduse Microsofti OAuthi lõpp-punktidega. The microsoft.authorize() funktsioon käivitab autentimisprotsessi, suunates kasutaja Microsofti autoriseerimislehele. Pärast kasutaja sisselogimist ja vajalike õiguste andmist saadab OAuthi pakkuja need rakendusele tagasi, kasutades jaotises määratud tagasihelistamise URL-i. url_for('authorized'). The authorized_response() meetod töötleb seda tagasihelistamist, hankides autentimise kinnitamiseks ja kasutaja seansi säilitamiseks vajaliku juurdepääsuloa.
Esikülje Microsoft 365 autentimisliides
Esikülje jaoks kasutatakse HTML-i ja JavaScripti
<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>
Tausta autentimise voog Microsoft 365-ga
Taustaprogrammi jaoks kasutatud Python ja Flask
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)
Täpsem häälestus Microsoft 365 autentimiseks in Flask
Microsoft 365 sisselogimise integreerimise probleemi lahendamiseks ilma ülikooli hallatavat meili kasutamata on oluline mõista Azure'i mitme rentniku rakenduste kontseptsiooni. Mitme rentnikuga rakendus võimaldab mitme Azure AD rentniku kasutajatel rakendusele juurde pääseda, mis sobib ideaalselt ülikoolide jaoks, kus üliõpilastel võivad olla erinevad domeenimeilid. See seadistus nõuab Azure'i rakenduse konfigureerimist, et see võtaks vastu sisselogimisi mis tahes Azure AD rentnikult, mis tehakse, määrates rakenduse manifestis „signInAudience” väärtuseks „AzureADMultipleOrgs”.
See konfiguratsioonimuudatus võimaldab üliõpilastel kasutada oma ülikooli e-kirju, isegi kui rakendus loodi algselt isikliku e-postiga. Samuti lihtsustab see haldamist, kuna arendaja ei pea iga kasutajat rentnikusse eraldi lisama. See lähenemisviis kasutab Azure'i identiteedihaldusteenuste paindlikkust, et tagada laiem juurdepääsetavus ja sujuv integreerimine haridusrakendustesse.
Levinud küsimused Microsoft 365 integreerimise kohta Flask Apps
- Mis on Azure AD mitme rentniku autentimine?
- Azure AD mitme rentniku autentimine võimaldab rakendustel teenindada kasutajaid mitmest Azure AD rentnikust, mitte ainult sellest, kus rakendus registreeriti.
- Kuidas konfigureerida Flaski rakendust Azure'i mitme rentniku jaoks?
- Peate muutma rakenduse registreerimist Azure'is, et aktsepteerida sisselogimisi mis tahes Azure AD rentnikult, määrates manifestis „signInAudience”.
- Mis kasu on kasutamisest oauth.remote_app() kolvis?
- See funktsioon lihtsustab ühenduse loomist OAuthi pakkujatega, haldades OAuthi voogu, sealhulgas lubade otsimist ja salvestamist.
- Miks võib kasutaja saada veateate, mis ütleb, et tema kontot pole rentnikul olemas?
- See juhtub tavaliselt siis, kui rakendus pole mitme rentniku juurdepääsu jaoks seadistatud või kui kasutaja pole rentnikus väliskasutajana registreeritud.
- Kuidas ma saan Flaskis autentimisprotsessi ajal tekkivaid vigu käsitleda?
- Rakendage vigade käsitlemist authorized_response() funktsioon vigade tabamiseks ja neile reageerimiseks, nagu juurdepääsu keelamine või puuduvad märgid.
Viimased mõtted Microsoft 365 autentimise integreerimise kohta
Kokkuvõtteks võib öelda, et Microsoft 365 sisselogimise integreerimine Flaski rakendustesse ilma ülikooli e-posti aadressi kasutamata hõlmab isiklike mandaatidega Azure'i rakenduse seadistamist ja selle konfigureerimist mitme rentniku juurdepääsuks. See lähenemisviis mitte ainult ei väldi piiranguid, mida ülikoolid võivad kehtestada ametlike e-kirjade kasutamisele rakenduste loomiseks, vaid lihtsustab ka erinevate rentnike kasutajate sisselogimisprotsessi. Järgides OAuthi parimaid tavasid ja käsitledes tõhusalt võimalikke vigu, saavad arendajad pakkuda sujuvat ja turvalist kasutuskogemust.