Integrējiet Microsoft 365 pieteikšanos programmā Flask Web Apps

Integrējiet Microsoft 365 pieteikšanos programmā Flask Web Apps
Integrējiet Microsoft 365 pieteikšanos programmā Flask Web Apps

Microsoft 365 autentifikācijas iestatīšana

Izstrādājot tīmekļa lietojumprogrammas izglītības nolūkos, institucionālo resursu, piemēram, Microsoft 365 e-pasta, integrēšana var uzlabot lietotāja pieredzi un racionalizēt pieteikšanās procesus. Šī integrācija ir īpaši noderīga, ja lietojumprogrammām ir jāatbilst universitātes IT politikām, kas var ierobežot lietojumprogrammu izveidi ar universitātes akreditācijas datiem.

Šajā scenārijā praktisks risinājums ir personiskā Microsoft Azure konta izmantošana lietojumprogrammas iestatīšanai. Tomēr var rasties problēmas, piemēram, problēmas ar nomnieku ierobežojumiem, mēģinot pieteikties, izmantojot universitātes e-pastu. Tāpēc ir nepieciešama stratēģija dažādu nomnieku lietotāju kontu pārvaldībai, neapdraudot lietotnes funkcionalitāti vai drošību.

Komanda Apraksts
oauth.remote_app() Inicializē jaunu attālās lietojumprogrammas gadījumu OAuth; to izmanto, lai apstrādātu saziņu ar OAuth nodrošinātājiem.
flask_oauthlib.client.OAuth Flask paplašinājums OAuth pakalpojumu sniedzēju integrēšanai, atvieglojot autentifikāciju, izmantojot OAuth protokolus.
authorized_response() Šī metode, kas ir daļa no Flask-OAuthlib, izgūst autorizēto OAuth atbildi no atzvanīšanas funkcijas.
session['oauth_token'] Izmanto OAuth pilnvaras glabāšanai sesijā vēlākai piekļuvei, kas ir ļoti svarīga lietotāju sesiju un autentifikācijas stāvokļa pārvaldībai.
microsoft.authorize() Metode, kas novirza uz OAuth nodrošinātāja autorizācijas URL, kur lietotājs var autorizēt lietotni.
url_for() Flask palīgfunkcija, kas ģenerē galapunktu noteiktai skata funkcijai. Tas ir noderīgi, lai ģenerētu URL novirzīšanai.

Kolbas integrācijas ar Microsoft 365 autentifikāciju skaidrojums

Priekšgala un aizmugures skripti kopā atvieglo Microsoft 365 pieteikšanās integrāciju Flask tīmekļa lietojumprogrammā. Priekšgalā vienkārša HTML lapa parāda pogu, uz kuras noklikšķinot, tiek aktivizēta JavaScript funkcija, lai novirzītu lietotāju uz aizmugursistēmu autentifikācijai. Šis process sākas ar loginWithMicrosoft() funkcija, kas maina loga atrašanās vietu uz aizmugures maršrutu, ko apstrādā Flask. Aizmugursistēmas skripts izmanto Flask un Flask-OAuthlib lai pārvaldītu OAuth plūsmu, izmantojot Microsoft identitātes platformu.

Aizmugurējā programmā oauth.remote_app() komanda izveido savienojumu ar Microsoft OAuth galapunktiem, izmantojot lietojumprogrammas akreditācijas datus. The microsoft.authorize() funkcija uzsāk autentifikācijas procesu, novirzot lietotāju uz Microsoft autorizācijas lapu. Pēc tam, kad lietotājs piesakās un piešķir nepieciešamās atļaujas, OAuth nodrošinātājs nosūta tās atpakaļ uz lietojumprogrammu, izmantojot atzvanīšanas URL, kas norādīts url_for('authorized'). The authorized_response() metode apstrādā šo atzvanīšanu, izgūstot piekļuves pilnvaru, kas nepieciešama, lai apstiprinātu autentifikāciju un uzturētu lietotāja sesiju.

Frontend Microsoft 365 autentifikācijas saskarne

Priekšgalam izmantots HTML un JavaScript

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

Aizmugursistēmas autentifikācijas plūsma, izmantojot Microsoft 365

Python un Flask tiek izmantoti aizmugursistēmai

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)

Papildu iestatīšana Microsoft 365 autentifikācijai in Flask

Lai risinātu problēmu, kas saistīta ar Microsoft 365 pieteikšanās integrēšanu, neizmantojot universitātes pārvaldītu e-pastu, ir svarīgi izprast vairāku nomnieku lietojumprogrammu koncepciju pakalpojumā Azure. Vairāku nomnieku lietojumprogramma ļauj lietotājiem no vairākiem Azure AD nomniekiem piekļūt lietotnei, kas ir ideāli piemērota universitātes iestatījumiem, kur studentiem var būt dažādi domēna e-pasta adreses. Lai veiktu šo iestatījumu, ir jākonfigurē Azure lietojumprogramma, lai tā pieņemtu pierakstīšanos no jebkura Azure AD nomnieka, kas tiek darīts, lietojumprogrammas manifestā iestatot “signInAudience” uz “AzureADMultipleOrgs”.

Šīs konfigurācijas izmaiņas ļauj studentiem izmantot savus universitātes e-pastus, pat ja lietojumprogramma sākotnēji tika izveidota ar personīgo e-pastu. Tas arī vienkāršo pārvaldību, jo izstrādātājam nav atsevišķi jāpievieno katrs lietotājs nomniekam. Šī pieeja izmanto Azure identitātes pārvaldības pakalpojumu elastību, lai nodrošinātu plašāku pieejamību un netraucētu integrāciju izglītības lietojumprogrammās.

Bieži uzdotie jautājumi par Microsoft 365 integrāciju Flask Apps

  1. Kas ir Azure AD vairāku nomnieku autentifikācija?
  2. Azure AD vairāku nomnieku autentifikācija ļauj lietojumprogrammām apkalpot lietotājus no vairākiem Azure AD nomniekiem, nevis tikai no tā, kurā lietojumprogramma tika reģistrēta.
  3. Kā konfigurēt savu Flask lietotni Azure vairākiem nomniekiem?
  4. Lai pieņemtu pierakstīšanos no jebkura Azure AD nomnieka, ir jāmaina lietojumprogrammas reģistrācija pakalpojumā Azure, manifestā iestatot “signInAudience”.
  5. Kādas ir lietošanas priekšrocības oauth.remote_app() Kolbā?
  6. Šī funkcija vienkāršo savienojuma izveidi ar OAuth nodrošinātājiem, pārvaldot OAuth plūsmu, tostarp marķiera izgūšanu un glabāšanu.
  7. Kāpēc lietotājs var saņemt kļūdas ziņojumu, norādot, ka viņa konts īrniekā nepastāv?
  8. Tas parasti notiek, ja lietojumprogramma nav iestatīta vairāku nomnieku piekļuvei vai ja lietotājs nav reģistrēts kā ārējs nomnieka lietotājs.
  9. Kā es varu rīkoties ar kļūdām autentifikācijas procesa laikā programmā Flask?
  10. Ieviesiet kļūdu apstrādi authorized_response() funkcija, lai uztvertu un reaģētu uz kļūdām, piemēram, piekļuves liegumiem vai trūkstošiem marķieriem.

Pēdējās domas par Microsoft 365 autentifikācijas integrāciju

Visbeidzot, Microsoft 365 pieteikšanās integrēšana Flask lietojumprogrammās, neizmantojot universitātes e-pastu, ietver Azure lietojumprogrammas iestatīšanu ar personīgajiem akreditācijas datiem un tās konfigurēšanu vairāku nomnieku piekļuvei. Šī pieeja ne tikai apiet ierobežojumus, ko universitātes var noteikt oficiālo e-pasta ziņojumu izmantošanai lietojumprogrammu izveidei, bet arī vienkāršo pieteikšanās procesu dažādiem nomniekiem. Ievērojot OAuth paraugpraksi un efektīvi apstrādājot iespējamās kļūdas, izstrādātāji var nodrošināt nevainojamu un drošu lietotāja pieredzi.