$lang['tuto'] = "návody"; ?>$lang['tuto'] = "návody"; ?> Integrujte Microsoft 365 Login do Flask Web Apps

Integrujte Microsoft 365 Login do Flask Web Apps

Integrujte Microsoft 365 Login do Flask Web Apps
Integrujte Microsoft 365 Login do Flask Web Apps

Nastavenie overovania Microsoft 365

Pri vývoji webových aplikácií na vzdelávacie účely môže integrácia inštitucionálnych zdrojov, ako je e-mail Microsoft 365, zlepšiť používateľskú skúsenosť a zefektívniť procesy prihlasovania. Táto integrácia je užitočná najmä vtedy, keď sa aplikácie potrebujú zosúladiť s univerzitnými IT politikami, čo môže obmedziť vytváranie aplikácií pod univerzitnými povereniami.

V tomto scenári je použitie osobného účtu Microsoft Azure na nastavenie aplikácie praktickým riešením. Môžu sa však vyskytnúť problémy, ako napríklad problémy s obmedzeniami nájomníkov pri pokuse o prihlásenie pomocou univerzitného e-mailu. To si vyžaduje stratégiu na správu používateľských účtov naprieč rôznymi nájomníkmi bez ohrozenia funkčnosti alebo zabezpečenia aplikácie.

Príkaz Popis
oauth.remote_app() Inicializuje novú inštanciu vzdialenej aplikácie pre OAuth; používa sa na komunikáciu s poskytovateľmi OAuth.
flask_oauthlib.client.OAuth Rozšírenie Flask na integráciu poskytovateľov služieb OAuth, ktoré uľahčuje autentifikáciu prostredníctvom protokolov OAuth.
authorized_response() Táto metóda, ktorá je súčasťou Flask-OAuthlib, získava autorizovanú odpoveď OAuth z funkcie spätného volania.
session['oauth_token'] Používa sa na uloženie tokenu OAuth v relácii pre neskorší prístup, ktorý je kritický pre správu používateľských relácií a stavu autentifikácie.
microsoft.authorize() Metóda, ktorá presmeruje na autorizačnú adresu URL poskytovateľa OAuth, kde môže používateľ autorizovať aplikáciu.
url_for() Pomocná funkcia vo Flasku, ktorá generuje koncový bod pre danú funkciu zobrazenia. Je to užitočné na generovanie adries URL na presmerovanie.

Vysvetlenie integrácie banky s overením Microsoft 365

Frontend a backend skripty spolu uľahčujú integráciu prihlásenia do Microsoft 365 do webovej aplikácie Flask. Na frontende predstavuje jednoduchá HTML stránka tlačidlo, ktoré po kliknutí spustí funkciu JavaScriptu, ktorá presmeruje používateľa na overenie. Tento proces začína s loginWithMicrosoft() funkcia, ktorá mení umiestnenie okna na backendovú cestu, ktorú spravuje Flask. Backendový skript používa Flask a Flask-OAuthlib na správu toku OAuth pomocou platformy identity spoločnosti Microsoft.

V backende, oauth.remote_app() príkaz nastaví spojenie s koncovými bodmi OAuth spoločnosti Microsoft pomocou poverení aplikácie. The microsoft.authorize() Funkcia spustí proces overovania presmerovaním používateľa na autorizačnú stránku spoločnosti Microsoft. Keď sa používateľ prihlási a udelí potrebné povolenia, poskytovateľ OAuth ich odošle späť do aplikácie pomocou adresy URL spätného volania uvedenej v url_for('authorized'). The authorized_response() metóda spracuje toto spätné volanie a získa prístupový token potrebný na potvrdenie autentifikácie a udržiavanie relácie používateľa.

Frontendové rozhranie overovania Microsoft 365

HTML a JavaScript používané pre 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>

Tok overenia backendu s Microsoft 365

Python a Flask používané pre 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)

Rozšírené nastavenie overovania Microsoft 365 vo fľaši

Ak chcete vyriešiť problém integrácie prihlásenia do Microsoft 365 bez použitia univerzitne spravovaného e-mailu, je nevyhnutné pochopiť koncept aplikácií pre viacerých nájomníkov v Azure. Aplikácia pre viacerých nájomníkov umožňuje používateľom z viacerých nájomníkov Azure AD prístup k aplikácii, čo je ideálne pre univerzitné nastavenia, kde môžu mať študenti rôzne doménové e-maily. Toto nastavenie vyžaduje konfiguráciu aplikácie Azure tak, aby prijímala prihlásenia od akéhokoľvek nájomníka Azure AD, čo sa robí nastavením „signInAudience“ v manifeste aplikácie na „AzureADMultipleOrgs“.

Táto zmena konfigurácie umožňuje študentom používať svoje univerzitné e-maily, aj keď bola aplikácia pôvodne vytvorená pomocou osobného e-mailu. Zjednodušuje tiež správu, pretože vývojár nemusí pridávať každého používateľa do nájomníka. Tento prístup využíva flexibilitu služieb správy identít Azure na zabezpečenie širšej dostupnosti a bezproblémovej integrácie vo vzdelávacích aplikáciách.

Bežné otázky o integrácii Microsoft 365 v aplikáciách Flask

  1. Čo je autentifikácia viacerých nájomníkov Azure AD?
  2. Autentifikácia viacerých nájomníkov Azure AD umožňuje aplikáciám slúžiť používateľom viacerých nájomníkov Azure AD, nielen toho, kde bola aplikácia zaregistrovaná.
  3. Ako nakonfigurujem svoju aplikáciu Flask pre viacerých nájomníkov Azure?
  4. Musíte upraviť registráciu aplikácie v Azure, aby ste mohli prijímať prihlásenia od akéhokoľvek nájomníka Azure AD nastavením „signInAudience“ v manifeste.
  5. Aké sú výhody používania oauth.remote_app() vo Fľaši?
  6. Táto funkcia zjednodušuje pripojenie k poskytovateľom OAuth spravovaním toku OAuth vrátane získavania a ukladania tokenov.
  7. Prečo sa môže používateľovi zobraziť chyba, že jeho účet v nájomníkovi neexistuje?
  8. K tomu zvyčajne dochádza, ak aplikácia nie je nastavená na prístup viacerých nájomníkov alebo ak používateľ nie je v nájomníkovi zaregistrovaný ako externý používateľ.
  9. Ako môžem zvládnuť chyby počas procesu autentifikácie vo Flasku?
  10. Implementujte spracovanie chýb v authorized_response() funkcia na zachytenie chýb, ako je odmietnutie prístupu alebo chýbajúce tokeny, a reagovanie na ne.

Záverečné myšlienky o integrácii overovania Microsoft 365

Na záver, integrácia prihlásenia Microsoft 365 do aplikácií Flask bez použitia univerzitného e-mailu zahŕňa nastavenie aplikácie Azure s osobnými prihlasovacími údajmi a jej konfiguráciu pre prístup viacerých nájomníkov. Tento prístup nielenže obchádza obmedzenia, ktoré môžu univerzity uvaliť na používanie oficiálnych e-mailov na vytváranie aplikácií, ale tiež zjednodušuje proces prihlasovania pre používateľov rôznych nájomníkov. Dodržiavaním osvedčených postupov pre OAuth a efektívnym spracovaním potenciálnych chýb môžu vývojári poskytnúť bezproblémovú a bezpečnú používateľskú skúsenosť.